X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=fs%2Fbattfs.h;h=d3088847a4a3b3b26c7bcdbae6beee67e0632e1f;hb=HEAD;hp=e5538fa2fe3e53d22a72fbd47bd9a1dab008fbc7;hpb=44ecce45ba07c10fa966d5cfa152c488f78f3751;p=bertos.git diff --git a/fs/battfs.h b/fs/battfs.h deleted file mode 100644 index e5538fa2..00000000 --- a/fs/battfs.h +++ /dev/null @@ -1,127 +0,0 @@ -/** - * \file - * - * - * \version $Id:$ - * - * \author Francesco Sacchi - * - * \brief BattFS: a filesystem for embedded platforms (interface). - * TODO: Add detailed filesystem description. - */ - -#ifndef FS_BATTFS_H -#define FS_BATTFS_H - -#include // uintXX_t; STATIC_ASSERT -#include // CPU_BITS_PER_CHAR - -typedef uint16_t fill_t; -typedef uint16_t pgoff_t; -typedef pgoff_t mark_t; -typedef uint8_t inode_t; -typedef uint8_t seq_t; -typedef uint16_t fcs_t; - -/** - * BattFS page header. - * \note fields order is chosen to comply - * with CPU alignment. - */ -typedef struct BattFsPageHeader -{ - inode_t inode; ///< File inode (file identifier). - seq_t seq; ///< Page sequence number. - mark_t mark; ///< Marker used to keep trace of free/used pages. - pgoff_t pgoff; ///< Page offset inside file. - fill_t fill; ///< Filled bytes in page. - uint16_t rfu; ///< Reserved for future use, 0xFFFF for now. - fcs_t fcs; ///< FCS (Frame Check Sequence) of the page header. -} BattFsPageHeader; - -/* Ensure structure has no padding added */ -STATIC_ASSERT(sizeof(BattFsPageHeader) == 12); - -/* Fwd decl */ -struct BattFsSuper; - -/** - * Type for disk page addressing. - */ -typedef uint32_t battfs_page_t; - -/** - * Type interface for disk init function. - * \return true if all is ok, false otherwise. - */ -typedef bool (*disk_init_t) (struct BattFsSuper *d); - -/** - * Type interface for disk page read function. - * \a page is the page address, \a size the lenght to be read. - * \return the number of bytes read. - */ -typedef size_t (*disk_page_read_t) (struct BattFsSuper *d, void *buf, battfs_page_t page, size_t size); - -/** - * Type interface for disk page write function. - * \a page is the page address, \a size the lenght to be written. - * \return the number of bytes written. - */ -typedef size_t (*disk_page_write_t) (struct BattFsSuper *d, const void *buf, battfs_page_t page, size_t size); - -/** - * Type interface for disk page erase function. - * \a page is the page address. - * \return true if all is ok, false otherwise. - */ -typedef bool (*disk_page_erase_t) (struct BattFsSuper *d, battfs_page_t page); - -typedef uint32_t disk_size_t; ///< Type for disk sizes. - -/** - * Context used to describe a disk. - * This context structure will be used to access disk. - * Must be initialized by hw memory driver. - */ -typedef struct BattFsSuper -{ - disk_init_t init; ///< Disk init. - disk_page_read_t read; ///< Page read. - disk_page_write_t write; ///< Page write. - disk_page_erase_t erase; ///< Page erase. - - disk_size_t disk_size; ///< Size of the disk, in bytes. - disk_size_t free_bytes; ///< Free space on the disk. - /* TODO add other fields. */ -} BattFsSuper; - -#endif /* FS_BATTFS_H */