X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=fs%2Fbattfs.h;h=846027271b2a484c9f95c915a10bee5ab5828f00;hb=HEAD;hp=4b8fcbe850ca0536ab2e61c7d772998356152f9c;hpb=7b338608c4e6e687e403d5484b42a277d1874024;p=bertos.git diff --git a/fs/battfs.h b/fs/battfs.h deleted file mode 100644 index 4b8fcbe8..00000000 --- a/fs/battfs.h +++ /dev/null @@ -1,142 +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 filled_t; -typedef uint16_t page_off_t; -typedef uint8_t inode_t; -typedef uint8_t seqnum_t; -typedef rotating_t battfs_crc_t; - -typedef uint16_t battfs_page_t; - -/** - * BattFS page header. - * \note fields order is chosen to comply - * with CPU alignment. - */ -typedef struct BattFsPageHeader -{ - inode_t inode; ///< File inode (file identifier). - seqnum_t seqnum; ///< bit[1:0]: Page sequence number; bit[7:2] unused for now, must be set to 1. - filled_t filled; ///< Filled bytes in page. - page_off_t page_off; ///< Page offset inside file. - battfs_crc_t crc; ///< CRC of the page header. -} BattFsPageHeader; - -/* Ensure structure has no padding added */ -STATIC_ASSERT(sizeof(BattFsPageHeader) == sizeof(filled_t) + sizeof(page_off_t) - + sizeof(inode_t) + sizeof(seqnum_t) + siezof(BattFsDisk)); - -/** - * Reset page sequence number of struct \a m to default value (0xFF). - */ -#define RESET_SEQ(m) ((m).seqnum = 0xFF) - -/** - * Get page sequence number from struct \a m. - */ -#define SEQ(m) ((m).seqnum & 0x03) - -/** - * Set sequence number of struct \a m to \a d. - */ -#define SET_SEQ(m, d) ((m).seqnum = ((m).seqnum & 0xFC) | ((d) & 0x03)) - -/** - * Increment sequence number of struct \a m. - */ -#define INC_SEQ(m) SET_SEQ((m), SEQ(m) + 1) - -/* Fwd decl */ -struct BattFsDisk; - -/** - * Type interface for disk init function. - * \return true if all is ok, false otherwise. - */ -typedef bool (*disk_init_t) (struct BattFsDisk *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 BattFsDisk *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 BattFsDisk *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 BattFsDisk *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 BattFsDisk -{ - 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_space; ///< Free space on the disk, in bytes. - /* TODO add other fields. */ -} BattFsDisk; - -#endif /* FS_BATTFS_H */