X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=fs%2Fbattfs.h;h=846027271b2a484c9f95c915a10bee5ab5828f00;hb=HEAD;hp=b7f5ebeb4a3fa054e6c1e2638199a8a64ef84d46;hpb=f542f689032dbfb0765af41351427e99c6bd8f1f;p=bertos.git diff --git a/fs/battfs.h b/fs/battfs.h deleted file mode 100644 index b7f5ebeb..00000000 --- a/fs/battfs.h +++ /dev/null @@ -1,131 +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 - -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 uint8_t fsc_t; - -/** - * Reserve 2 bits from fill field to allocate seq number. - */ -#define FILLSIZE ((sizeof(fill_t) * CPU_BITS_PER_CHAR) - 2) - -/** - * BattFS page header. - * \note fields order is chosen to comply - * with CPU alignment. - */ -typedef struct BattFsPageHeader -{ - mark_t mark; ///< Marker used to keep trace of free/used pages. - pgoff_t pgoff; ///< Page offset inside file. - fill_t fill:FILLSIZE; ///< Filled bytes in page. - seq_t seq:2; ///< bit[1:0]: Page sequence number; bit[7:2] unused for now, must be set to 1. - inode_t inode; ///< File inode (file identifier). - fsc_t fsc; ///< FSC of the page header. -} BattFsPageHeader; - -/* Ensure structure has no padding added */ -STATIC_ASSERT(sizeof(BattFsPageHeader) == 8); - -/* 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 */