+typedef struct BattFsSuper
+{
+ disk_open_t open; ///< Disk init.
+ disk_page_read_t read; ///< Page read.
+ disk_page_write_t write; ///< Page write.
+ disk_page_erase_t erase; ///< Page erase.
+ disk_close_t close; ///< Disk deinit.
+
+ pgaddr_t page_size; ///< Size of a disk page, in bytes.
+ pgcnt_t page_count; ///< Number of pages on disk.
+
+ /**
+ * Page allocation array.
+ * This array must be allocated somewhere and
+ * must have enough space for page_count elements.
+ * Is used by the filesystem to represent
+ * the entire disk in memory.
+ */
+ pgcnt_t *page_array;
+
+ mark_t min_free; ///< Lowest sequence number of free page
+ mark_t max_free; ///< Highest sequence number of free page
+
+ disk_size_t disk_size; ///< Size of the disk, in bytes (page_count * page_size).
+ disk_size_t free_bytes; ///< Free space on the disk.
+
+ /* TODO add other fields. */
+} BattFsSuper;