|
static void | lfs_cache_drop (lfs_t *lfs, lfs_cache_t *rcache) |
| Caching block device operations ///.
|
|
static void | lfs_cache_zero (lfs_t *lfs, lfs_cache_t *pcache) |
|
static int | lfs_bd_read (lfs_t *lfs, const lfs_cache_t *pcache, lfs_cache_t *rcache, lfs_size_t hint, lfs_block_t block, lfs_off_t off, void *buffer, lfs_size_t size) |
|
static int | lfs_bd_cmp (lfs_t *lfs, const lfs_cache_t *pcache, lfs_cache_t *rcache, lfs_size_t hint, lfs_block_t block, lfs_off_t off, const void *buffer, lfs_size_t size) |
|
static int | lfs_bd_crc (lfs_t *lfs, const lfs_cache_t *pcache, lfs_cache_t *rcache, lfs_size_t hint, lfs_block_t block, lfs_off_t off, lfs_size_t size, uint32_t *crc) |
|
static int | lfs_bd_flush (lfs_t *lfs, lfs_cache_t *pcache, lfs_cache_t *rcache, bool validate) |
|
static int | lfs_bd_sync (lfs_t *lfs, lfs_cache_t *pcache, lfs_cache_t *rcache, bool validate) |
|
static int | lfs_bd_prog (lfs_t *lfs, lfs_cache_t *pcache, lfs_cache_t *rcache, bool validate, lfs_block_t block, lfs_off_t off, const void *buffer, lfs_size_t size) |
|
static int | lfs_bd_erase (lfs_t *lfs, lfs_block_t block) |
|
static lfs_size_t | lfs_path_namelen (const char *path) |
| Small type-level utilities ///.
|
|
static bool | lfs_path_islast (const char *path) |
|
static bool | lfs_path_isdir (const char *path) |
|
static void | lfs_pair_swap (lfs_block_t pair[2]) |
|
static bool | lfs_pair_isnull (const lfs_block_t pair[2]) |
|
static int | lfs_pair_cmp (const lfs_block_t paira[2], const lfs_block_t pairb[2]) |
|
static bool | lfs_pair_issync (const lfs_block_t paira[2], const lfs_block_t pairb[2]) |
|
static void | lfs_pair_fromle32 (lfs_block_t pair[2]) |
|
static void | lfs_pair_tole32 (lfs_block_t pair[2]) |
|
static bool | lfs_tag_isvalid (lfs_tag_t tag) |
|
static bool | lfs_tag_isdelete (lfs_tag_t tag) |
|
static uint16_t | lfs_tag_type1 (lfs_tag_t tag) |
|
static uint16_t | lfs_tag_type2 (lfs_tag_t tag) |
|
static uint16_t | lfs_tag_type3 (lfs_tag_t tag) |
|
static uint8_t | lfs_tag_chunk (lfs_tag_t tag) |
|
static int8_t | lfs_tag_splice (lfs_tag_t tag) |
|
static uint16_t | lfs_tag_id (lfs_tag_t tag) |
|
static lfs_size_t | lfs_tag_size (lfs_tag_t tag) |
|
static lfs_size_t | lfs_tag_dsize (lfs_tag_t tag) |
|
static void | lfs_gstate_xor (lfs_gstate_t *a, const lfs_gstate_t *b) |
|
static bool | lfs_gstate_iszero (const lfs_gstate_t *a) |
|
static bool | lfs_gstate_hasorphans (const lfs_gstate_t *a) |
|
static uint8_t | lfs_gstate_getorphans (const lfs_gstate_t *a) |
|
static bool | lfs_gstate_hasmove (const lfs_gstate_t *a) |
|
static bool | lfs_gstate_needssuperblock (const lfs_gstate_t *a) |
|
static bool | lfs_gstate_hasmovehere (const lfs_gstate_t *a, const lfs_block_t *pair) |
|
static void | lfs_gstate_fromle32 (lfs_gstate_t *a) |
|
static void | lfs_gstate_tole32 (lfs_gstate_t *a) |
|
static void | lfs_fcrc_fromle32 (struct lfs_fcrc *fcrc) |
|
static void | lfs_fcrc_tole32 (struct lfs_fcrc *fcrc) |
|
static void | lfs_ctz_fromle32 (struct lfs_ctz *ctz) |
|
static void | lfs_ctz_tole32 (struct lfs_ctz *ctz) |
|
static void | lfs_superblock_fromle32 (lfs_superblock_t *superblock) |
|
static void | lfs_superblock_tole32 (lfs_superblock_t *superblock) |
|
static bool | lfs_mlist_isopen (struct lfs_mlist *head, struct lfs_mlist *node) |
|
static void | lfs_mlist_remove (lfs_t *lfs, struct lfs_mlist *mlist) |
|
static void | lfs_mlist_append (lfs_t *lfs, struct lfs_mlist *mlist) |
|
static uint32_t | lfs_fs_disk_version (lfs_t *lfs) |
|
static uint16_t | lfs_fs_disk_version_major (lfs_t *lfs) |
|
static uint16_t | lfs_fs_disk_version_minor (lfs_t *lfs) |
|
static int | lfs_dir_commit (lfs_t *lfs, lfs_mdir_t *dir, const struct lfs_mattr *attrs, int attrcount) |
| Internal operations predeclared here ///.
|
|
static int | lfs_dir_compact (lfs_t *lfs, lfs_mdir_t *dir, const struct lfs_mattr *attrs, int attrcount, lfs_mdir_t *source, uint16_t begin, uint16_t end) |
|
static lfs_ssize_t | lfs_file_flushedwrite (lfs_t *lfs, lfs_file_t *file, const void *buffer, lfs_size_t size) |
|
static lfs_ssize_t | lfs_file_write_ (lfs_t *lfs, lfs_file_t *file, const void *buffer, lfs_size_t size) |
|
static int | lfs_file_sync_ (lfs_t *lfs, lfs_file_t *file) |
|
static int | lfs_file_outline (lfs_t *lfs, lfs_file_t *file) |
|
static int | lfs_file_flush (lfs_t *lfs, lfs_file_t *file) |
|
static int | lfs_fs_deorphan (lfs_t *lfs, bool powerloss) |
|
static int | lfs_fs_preporphans (lfs_t *lfs, int8_t orphans) |
|
static void | lfs_fs_prepmove (lfs_t *lfs, uint16_t id, const lfs_block_t pair[2]) |
|
static int | lfs_fs_pred (lfs_t *lfs, const lfs_block_t dir[2], lfs_mdir_t *pdir) |
|
static lfs_stag_t | lfs_fs_parent (lfs_t *lfs, const lfs_block_t dir[2], lfs_mdir_t *parent) |
|
static int | lfs_fs_forceconsistency (lfs_t *lfs) |
|
static void | lfs_fs_prepsuperblock (lfs_t *lfs, bool needssuperblock) |
|
static int | lfs_dir_rewind_ (lfs_t *lfs, lfs_dir_t *dir) |
|
static lfs_ssize_t | lfs_file_flushedread (lfs_t *lfs, lfs_file_t *file, void *buffer, lfs_size_t size) |
|
static lfs_ssize_t | lfs_file_read_ (lfs_t *lfs, lfs_file_t *file, void *buffer, lfs_size_t size) |
|
static int | lfs_file_close_ (lfs_t *lfs, lfs_file_t *file) |
|
static lfs_soff_t | lfs_file_size_ (lfs_t *lfs, lfs_file_t *file) |
|
static lfs_ssize_t | lfs_fs_size_ (lfs_t *lfs) |
|
static int | lfs_fs_traverse_ (lfs_t *lfs, int(*cb)(void *data, lfs_block_t block), void *data, bool includeorphans) |
|
static int | lfs_deinit (lfs_t *lfs) |
|
static int | lfs_unmount_ (lfs_t *lfs) |
|
static void | lfs_alloc_ckpoint (lfs_t *lfs) |
| Block allocator ///.
|
|
static void | lfs_alloc_drop (lfs_t *lfs) |
|
static int | lfs_alloc_lookahead (void *p, lfs_block_t block) |
|
static int | lfs_alloc_scan (lfs_t *lfs) |
|
static int | lfs_alloc (lfs_t *lfs, lfs_block_t *block) |
|
static lfs_stag_t | lfs_dir_getslice (lfs_t *lfs, const lfs_mdir_t *dir, lfs_tag_t gmask, lfs_tag_t gtag, lfs_off_t goff, void *gbuffer, lfs_size_t gsize) |
| Metadata pair and directory operations ///.
|
|
static lfs_stag_t | lfs_dir_get (lfs_t *lfs, const lfs_mdir_t *dir, lfs_tag_t gmask, lfs_tag_t gtag, void *buffer) |
|
static int | lfs_dir_getread (lfs_t *lfs, const lfs_mdir_t *dir, const lfs_cache_t *pcache, lfs_cache_t *rcache, lfs_size_t hint, lfs_tag_t gmask, lfs_tag_t gtag, lfs_off_t off, void *buffer, lfs_size_t size) |
|
static int | lfs_dir_traverse_filter (void *p, lfs_tag_t tag, const void *buffer) |
|
static int | lfs_dir_traverse (lfs_t *lfs, const lfs_mdir_t *dir, lfs_off_t off, lfs_tag_t ptag, const struct lfs_mattr *attrs, int attrcount, lfs_tag_t tmask, lfs_tag_t ttag, uint16_t begin, uint16_t end, int16_t diff, int(*cb)(void *data, lfs_tag_t tag, const void *buffer), void *data) |
|
static lfs_stag_t | lfs_dir_fetchmatch (lfs_t *lfs, lfs_mdir_t *dir, const lfs_block_t pair[2], lfs_tag_t fmask, lfs_tag_t ftag, uint16_t *id, int(*cb)(void *data, lfs_tag_t tag, const void *buffer), void *data) |
|
static int | lfs_dir_fetch (lfs_t *lfs, lfs_mdir_t *dir, const lfs_block_t pair[2]) |
|
static int | lfs_dir_getgstate (lfs_t *lfs, const lfs_mdir_t *dir, lfs_gstate_t *gstate) |
|
static int | lfs_dir_getinfo (lfs_t *lfs, lfs_mdir_t *dir, uint16_t id, struct lfs_info *info) |
|
static int | lfs_dir_find_match (void *data, lfs_tag_t tag, const void *buffer) |
|
static lfs_stag_t | lfs_dir_find (lfs_t *lfs, lfs_mdir_t *dir, const char **path, uint16_t *id) |
|
static int | lfs_dir_commitprog (lfs_t *lfs, struct lfs_commit *commit, const void *buffer, lfs_size_t size) |
|
static int | lfs_dir_commitattr (lfs_t *lfs, struct lfs_commit *commit, lfs_tag_t tag, const void *buffer) |
|
static int | lfs_dir_commitcrc (lfs_t *lfs, struct lfs_commit *commit) |
|
static int | lfs_dir_alloc (lfs_t *lfs, lfs_mdir_t *dir) |
|
static int | lfs_dir_drop (lfs_t *lfs, lfs_mdir_t *dir, lfs_mdir_t *tail) |
|
static int | lfs_dir_split (lfs_t *lfs, lfs_mdir_t *dir, const struct lfs_mattr *attrs, int attrcount, lfs_mdir_t *source, uint16_t split, uint16_t end) |
|
static int | lfs_dir_commit_size (void *p, lfs_tag_t tag, const void *buffer) |
|
static int | lfs_dir_commit_commit (void *p, lfs_tag_t tag, const void *buffer) |
|
static bool | lfs_dir_needsrelocation (lfs_t *lfs, lfs_mdir_t *dir) |
|
static int | lfs_dir_splittingcompact (lfs_t *lfs, lfs_mdir_t *dir, const struct lfs_mattr *attrs, int attrcount, lfs_mdir_t *source, uint16_t begin, uint16_t end) |
|
static int | lfs_dir_relocatingcommit (lfs_t *lfs, lfs_mdir_t *dir, const lfs_block_t pair[2], const struct lfs_mattr *attrs, int attrcount, lfs_mdir_t *pdir) |
|
static int | lfs_dir_orphaningcommit (lfs_t *lfs, lfs_mdir_t *dir, const struct lfs_mattr *attrs, int attrcount) |
|
static int | lfs_mkdir_ (lfs_t *lfs, const char *path) |
| Top level directory operations ///.
|
|
static int | lfs_dir_open_ (lfs_t *lfs, lfs_dir_t *dir, const char *path) |
|
static int | lfs_dir_close_ (lfs_t *lfs, lfs_dir_t *dir) |
|
static int | lfs_dir_read_ (lfs_t *lfs, lfs_dir_t *dir, struct lfs_info *info) |
|
static int | lfs_dir_seek_ (lfs_t *lfs, lfs_dir_t *dir, lfs_off_t off) |
|
static lfs_soff_t | lfs_dir_tell_ (lfs_t *lfs, lfs_dir_t *dir) |
|
static int | lfs_ctz_index (lfs_t *lfs, lfs_off_t *off) |
| File index list operations ///.
|
|
static int | lfs_ctz_find (lfs_t *lfs, const lfs_cache_t *pcache, lfs_cache_t *rcache, lfs_block_t head, lfs_size_t size, lfs_size_t pos, lfs_block_t *block, lfs_off_t *off) |
|
static int | lfs_ctz_extend (lfs_t *lfs, lfs_cache_t *pcache, lfs_cache_t *rcache, lfs_block_t head, lfs_size_t size, lfs_block_t *block, lfs_off_t *off) |
|
static int | lfs_ctz_traverse (lfs_t *lfs, const lfs_cache_t *pcache, lfs_cache_t *rcache, lfs_block_t head, lfs_size_t size, int(*cb)(void *, lfs_block_t), void *data) |
|
static int | lfs_file_opencfg_ (lfs_t *lfs, lfs_file_t *file, const char *path, int flags, const struct lfs_file_config *cfg) |
| Top level file operations ///.
|
|
static int | lfs_file_open_ (lfs_t *lfs, lfs_file_t *file, const char *path, int flags) |
|
static int | lfs_file_relocate (lfs_t *lfs, lfs_file_t *file) |
|
static lfs_soff_t | lfs_file_seek_ (lfs_t *lfs, lfs_file_t *file, lfs_soff_t off, int whence) |
|
static int | lfs_file_truncate_ (lfs_t *lfs, lfs_file_t *file, lfs_off_t size) |
|
static lfs_soff_t | lfs_file_tell_ (lfs_t *lfs, lfs_file_t *file) |
|
static int | lfs_file_rewind_ (lfs_t *lfs, lfs_file_t *file) |
|
static int | lfs_stat_ (lfs_t *lfs, const char *path, struct lfs_info *info) |
| General fs operations ///.
|
|
static int | lfs_remove_ (lfs_t *lfs, const char *path) |
|
static int | lfs_rename_ (lfs_t *lfs, const char *oldpath, const char *newpath) |
|
static lfs_ssize_t | lfs_getattr_ (lfs_t *lfs, const char *path, uint8_t type, void *buffer, lfs_size_t size) |
|
static int | lfs_commitattr (lfs_t *lfs, const char *path, uint8_t type, const void *buffer, lfs_size_t size) |
|
static int | lfs_setattr_ (lfs_t *lfs, const char *path, uint8_t type, const void *buffer, lfs_size_t size) |
|
static int | lfs_removeattr_ (lfs_t *lfs, const char *path, uint8_t type) |
|
static int | lfs_init (lfs_t *lfs, const struct lfs_config *cfg) |
| Filesystem operations ///.
|
|
static int | lfs_format_ (lfs_t *lfs, const struct lfs_config *cfg) |
|
static int | lfs_tortoise_detectcycles (const lfs_mdir_t *dir, struct lfs_tortoise_t *tortoise) |
|
static int | lfs_mount_ (lfs_t *lfs, const struct lfs_config *cfg) |
|
static int | lfs_fs_stat_ (lfs_t *lfs, struct lfs_fsinfo *fsinfo) |
| Filesystem filesystem operations ///.
|
|
static int | lfs_fs_parent_match (void *data, lfs_tag_t tag, const void *buffer) |
|
static int | lfs_fs_desuperblock (lfs_t *lfs) |
|
static int | lfs_fs_demove (lfs_t *lfs) |
|
static int | lfs_fs_mkconsistent_ (lfs_t *lfs) |
|
static int | lfs_fs_size_count (void *p, lfs_block_t block) |
|
static int | lfs_fs_gc_ (lfs_t *lfs) |
|
static int | lfs_fs_grow_ (lfs_t *lfs, lfs_size_t block_count) |
|
int | lfs_format (lfs_t *lfs, const struct lfs_config *cfg) |
| Filesystem functions ///.
|
|
int | lfs_mount (lfs_t *lfs, const struct lfs_config *cfg) |
|
int | lfs_unmount (lfs_t *lfs) |
|
int | lfs_remove (lfs_t *lfs, const char *path) |
| General operations ///.
|
|
int | lfs_rename (lfs_t *lfs, const char *oldpath, const char *newpath) |
|
int | lfs_stat (lfs_t *lfs, const char *path, struct lfs_info *info) |
|
lfs_ssize_t | lfs_getattr (lfs_t *lfs, const char *path, uint8_t type, void *buffer, lfs_size_t size) |
|
int | lfs_setattr (lfs_t *lfs, const char *path, uint8_t type, const void *buffer, lfs_size_t size) |
|
int | lfs_removeattr (lfs_t *lfs, const char *path, uint8_t type) |
|
int | lfs_file_open (lfs_t *lfs, lfs_file_t *file, const char *path, int flags) |
|
int | lfs_file_opencfg (lfs_t *lfs, lfs_file_t *file, const char *path, int flags, const struct lfs_file_config *cfg) |
| File operations ///.
|
|
int | lfs_file_close (lfs_t *lfs, lfs_file_t *file) |
|
int | lfs_file_sync (lfs_t *lfs, lfs_file_t *file) |
|
lfs_ssize_t | lfs_file_read (lfs_t *lfs, lfs_file_t *file, void *buffer, lfs_size_t size) |
|
lfs_ssize_t | lfs_file_write (lfs_t *lfs, lfs_file_t *file, const void *buffer, lfs_size_t size) |
|
lfs_soff_t | lfs_file_seek (lfs_t *lfs, lfs_file_t *file, lfs_soff_t off, int whence) |
|
int | lfs_file_truncate (lfs_t *lfs, lfs_file_t *file, lfs_off_t size) |
|
lfs_soff_t | lfs_file_tell (lfs_t *lfs, lfs_file_t *file) |
|
int | lfs_file_rewind (lfs_t *lfs, lfs_file_t *file) |
|
lfs_soff_t | lfs_file_size (lfs_t *lfs, lfs_file_t *file) |
|
int | lfs_mkdir (lfs_t *lfs, const char *path) |
| Directory operations ///.
|
|
int | lfs_dir_open (lfs_t *lfs, lfs_dir_t *dir, const char *path) |
|
int | lfs_dir_close (lfs_t *lfs, lfs_dir_t *dir) |
|
int | lfs_dir_read (lfs_t *lfs, lfs_dir_t *dir, struct lfs_info *info) |
|
int | lfs_dir_seek (lfs_t *lfs, lfs_dir_t *dir, lfs_off_t off) |
|
lfs_soff_t | lfs_dir_tell (lfs_t *lfs, lfs_dir_t *dir) |
|
int | lfs_dir_rewind (lfs_t *lfs, lfs_dir_t *dir) |
|
int | lfs_fs_stat (lfs_t *lfs, struct lfs_fsinfo *fsinfo) |
| Filesystem-level filesystem operations.
|
|
lfs_ssize_t | lfs_fs_size (lfs_t *lfs) |
|
int | lfs_fs_traverse (lfs_t *lfs, int(*cb)(void *, lfs_block_t), void *data) |
|
int | lfs_fs_mkconsistent (lfs_t *lfs) |
|
int | lfs_fs_gc (lfs_t *lfs) |
|
int | lfs_fs_grow (lfs_t *lfs, lfs_size_t block_count) |
|