24#define LFS_VERSION 0x0002000a
25#define LFS_VERSION_MAJOR (0xffff & (LFS_VERSION >> 16))
26#define LFS_VERSION_MINOR (0xffff & (LFS_VERSION >> 0))
31#define LFS_DISK_VERSION 0x00020001
32#define LFS_DISK_VERSION_MAJOR (0xffff & (LFS_DISK_VERSION >> 16))
33#define LFS_DISK_VERSION_MINOR (0xffff & (LFS_DISK_VERSION >> 0))
51#define LFS_NAME_MAX 255
58#define LFS_FILE_MAX 2147483647
65#define LFS_ATTR_MAX 1022
286#ifdef LFS_MULTIVERSION
291 uint32_t disk_version;
552 uint8_t type,
const void *buffer,
lfs_size_t size);
575 const char *path,
int flags);
592 const char *path,
int flags,
int lfs_file_open(lfs_t *lfs, lfs_file_t *file, const char *path, int flags)
Definition lfs.c:6112
int lfs_fs_grow(lfs_t *lfs, lfs_size_t block_count)
Definition lfs.c:6475
int lfs_dir_read(lfs_t *lfs, lfs_dir_t *dir, struct lfs_info *info)
Definition lfs.c:6341
lfs_open_flags
Definition lfs.h:124
@ LFS_O_CREAT
Definition lfs.h:130
@ LFS_F_DIRTY
Definition lfs.h:138
@ LFS_F_ERRED
Definition lfs.h:143
@ LFS_F_READING
Definition lfs.h:141
@ LFS_O_EXCL
Definition lfs.h:131
@ LFS_O_APPEND
Definition lfs.h:133
@ LFS_F_WRITING
Definition lfs.h:139
@ LFS_O_TRUNC
Definition lfs.h:132
@ LFS_O_RDWR
Definition lfs.h:129
@ LFS_O_WRONLY
Definition lfs.h:128
@ LFS_O_RDONLY
Definition lfs.h:126
@ LFS_F_INLINE
Definition lfs.h:145
uint32_t lfs_block_t
Definition lfs.h:45
int lfs_unmount(lfs_t *lfs)
Definition lfs.c:6001
lfs_ssize_t lfs_fs_size(lfs_t *lfs)
Definition lfs.c:6413
lfs_error
Definition lfs.h:70
@ LFS_ERR_NOMEM
Definition lfs.h:83
@ LFS_ERR_NOTDIR
Definition lfs.h:76
@ LFS_ERR_NAMETOOLONG
Definition lfs.h:85
@ LFS_ERR_NOTEMPTY
Definition lfs.h:78
@ LFS_ERR_ISDIR
Definition lfs.h:77
@ LFS_ERR_IO
Definition lfs.h:72
@ LFS_ERR_NOATTR
Definition lfs.h:84
@ LFS_ERR_NOSPC
Definition lfs.h:82
@ LFS_ERR_INVAL
Definition lfs.h:81
@ LFS_ERR_FBIG
Definition lfs.h:80
@ LFS_ERR_BADF
Definition lfs.h:79
@ LFS_ERR_CORRUPT
Definition lfs.h:73
@ LFS_ERR_OK
Definition lfs.h:71
@ LFS_ERR_NOENT
Definition lfs.h:74
@ LFS_ERR_EXIST
Definition lfs.h:75
int lfs_setattr(lfs_t *lfs, const char *path, uint8_t type, const void *buffer, lfs_size_t size)
Definition lfs.c:6078
int lfs_removeattr(lfs_t *lfs, const char *path, uint8_t type)
Definition lfs.c:6096
lfs_ssize_t lfs_file_read(lfs_t *lfs, lfs_file_t *file, void *buffer, lfs_size_t size)
Definition lfs.c:6181
lfs_ssize_t lfs_file_write(lfs_t *lfs, lfs_file_t *file, const void *buffer, lfs_size_t size)
Definition lfs.c:6199
lfs_soff_t lfs_file_tell(lfs_t *lfs, lfs_file_t *file)
Definition lfs.c:6252
struct lfs_mdir lfs_mdir_t
int32_t lfs_ssize_t
Definition lfs.h:42
int lfs_file_rewind(lfs_t *lfs, lfs_file_t *file)
Definition lfs.c:6267
int lfs_dir_seek(lfs_t *lfs, lfs_dir_t *dir, lfs_off_t off)
Definition lfs.c:6356
#define LFS_NAME_MAX
Definition lfs.h:51
struct lfs_file lfs_file_t
struct lfs_gstate lfs_gstate_t
int lfs_dir_close(lfs_t *lfs, lfs_dir_t *dir)
Definition lfs.c:6327
int lfs_stat(lfs_t *lfs, const char *path, struct lfs_info *info)
Definition lfs.c:6047
int lfs_fs_stat(lfs_t *lfs, struct lfs_fsinfo *fsinfo)
Filesystem-level filesystem operations.
Definition lfs.c:6399
struct lfs_cache lfs_cache_t
internal littlefs data structures ///
lfs_ssize_t lfs_getattr(lfs_t *lfs, const char *path, uint8_t type, void *buffer, lfs_size_t size)
Definition lfs.c:6061
lfs_soff_t lfs_dir_tell(lfs_t *lfs, lfs_dir_t *dir)
Definition lfs.c:6371
int lfs_dir_rewind(lfs_t *lfs, lfs_dir_t *dir)
Definition lfs.c:6385
int lfs_fs_mkconsistent(lfs_t *lfs)
Definition lfs.c:6443
int lfs_fs_gc(lfs_t *lfs)
Definition lfs.c:6459
lfs_type
Definition lfs.h:89
@ LFS_TYPE_FCRC
Definition lfs.h:115
@ LFS_TYPE_REG
Definition lfs.h:91
@ LFS_TYPE_DIRSTRUCT
Definition lfs.h:108
@ LFS_TYPE_SUPERBLOCK
Definition lfs.h:107
@ LFS_TYPE_MOVESTATE
Definition lfs.h:113
@ LFS_TYPE_CTZSTRUCT
Definition lfs.h:109
@ LFS_TYPE_TAIL
Definition lfs.h:100
@ LFS_FROM_MOVE
Definition lfs.h:119
@ LFS_TYPE_GLOBALS
Definition lfs.h:101
@ LFS_TYPE_USERATTR
Definition lfs.h:98
@ LFS_FROM_NOOP
Definition lfs.h:118
@ LFS_TYPE_DIR
Definition lfs.h:92
@ LFS_TYPE_INLINESTRUCT
Definition lfs.h:110
@ LFS_TYPE_CRC
Definition lfs.h:102
@ LFS_TYPE_STRUCT
Definition lfs.h:97
@ LFS_TYPE_SPLICE
Definition lfs.h:95
@ LFS_TYPE_SOFTTAIL
Definition lfs.h:111
@ LFS_TYPE_HARDTAIL
Definition lfs.h:112
@ LFS_TYPE_NAME
Definition lfs.h:96
@ LFS_TYPE_CREATE
Definition lfs.h:105
@ LFS_TYPE_DELETE
Definition lfs.h:106
@ LFS_TYPE_CCRC
Definition lfs.h:114
@ LFS_TYPE_FROM
Definition lfs.h:99
@ LFS_FROM_USERATTRS
Definition lfs.h:120
int lfs_dir_open(lfs_t *lfs, lfs_dir_t *dir, const char *path)
Definition lfs.c:6312
struct lfs_superblock lfs_superblock_t
int lfs_file_opencfg(lfs_t *lfs, lfs_file_t *file, const char *path, int flags, const struct lfs_file_config *config)
File operations ///.
Definition lfs.c:6129
int lfs_remove(lfs_t *lfs, const char *path)
General operations ///.
Definition lfs.c:6016
int lfs_file_close(lfs_t *lfs, lfs_file_t *file)
Definition lfs.c:6149
int lfs_mkdir(lfs_t *lfs, const char *path)
Directory operations ///.
Definition lfs.c:6297
int lfs_file_sync(lfs_t *lfs, lfs_file_t *file)
Definition lfs.c:6165
int lfs_fs_traverse(lfs_t *lfs, int(*cb)(void *, lfs_block_t), void *data)
Definition lfs.c:6427
int lfs_file_truncate(lfs_t *lfs, lfs_file_t *file, lfs_off_t size)
Definition lfs.c:6235
lfs_whence_flags
Definition lfs.h:149
@ LFS_SEEK_END
Definition lfs.h:152
@ LFS_SEEK_CUR
Definition lfs.h:151
@ LFS_SEEK_SET
Definition lfs.h:150
int lfs_rename(lfs_t *lfs, const char *oldpath, const char *newpath)
Definition lfs.c:6032
lfs_soff_t lfs_file_seek(lfs_t *lfs, lfs_file_t *file, lfs_soff_t off, int whence)
Definition lfs.c:6217
int32_t lfs_soff_t
Definition lfs.h:43
lfs_soff_t lfs_file_size(lfs_t *lfs, lfs_file_t *file)
Definition lfs.c:6281
int lfs_format(lfs_t *lfs, const struct lfs_config *config)
Filesystem functions ///.
Definition lfs.c:5942
int lfs_mount(lfs_t *lfs, const struct lfs_config *config)
Definition lfs.c:5972
uint32_t lfs_off_t
Definition lfs.h:40
uint32_t lfs_size_t
Definitions ///.
Definition lfs.h:39
uint8_t * buffer
Definition lfs.h:457
lfs_block_t ckpoint
Definition lfs.h:456
lfs_block_t size
Definition lfs.h:454
lfs_block_t next
Definition lfs.h:455
lfs_block_t start
Definition lfs.h:453
struct lfs_mlist * next
Definition lfs.h:441
lfs_mdir_t m
Definition lfs.h:444
uint16_t id
Definition lfs.h:442
uint8_t type
Definition lfs.h:443
void * buffer
Definition lfs.h:339
lfs_size_t size
Definition lfs.h:342
uint8_t type
Definition lfs.h:336
internal littlefs data structures ///
Definition lfs.h:370
uint8_t * buffer
Definition lfs.h:374
lfs_off_t off
Definition lfs.h:372
lfs_size_t size
Definition lfs.h:373
lfs_block_t block
Definition lfs.h:371
lfs_size_t lookahead_size
Definition lfs.h:230
void * context
Definition lfs.h:160
int(* sync)(const struct lfs_config *c)
Definition lfs.h:181
int(* prog)(const struct lfs_config *c, lfs_block_t block, lfs_off_t off, const void *buffer, lfs_size_t size)
Definition lfs.h:170
lfs_size_t attr_max
Definition lfs.h:269
lfs_size_t block_count
Definition lfs.h:209
void * read_buffer
Definition lfs.h:245
void * prog_buffer
Definition lfs.h:249
lfs_size_t file_max
Definition lfs.h:264
lfs_size_t prog_size
Definition lfs.h:199
lfs_size_t cache_size
Definition lfs.h:224
int(* read)(const struct lfs_config *c, lfs_block_t block, lfs_off_t off, void *buffer, lfs_size_t size)
Definition lfs.h:164
lfs_size_t read_size
Definition lfs.h:195
lfs_size_t metadata_max
Definition lfs.h:275
lfs_size_t inline_max
Definition lfs.h:284
lfs_size_t block_size
Definition lfs.h:205
int(* erase)(const struct lfs_config *c, lfs_block_t block)
Definition lfs.h:177
lfs_size_t compact_thresh
Definition lfs.h:241
lfs_size_t name_max
Definition lfs.h:259
int32_t block_cycles
Definition lfs.h:217
void * lookahead_buffer
Definition lfs.h:253
struct lfs_dir * next
Definition lfs.h:390
lfs_block_t head[2]
Definition lfs.h:396
lfs_off_t pos
Definition lfs.h:395
uint8_t type
Definition lfs.h:392
lfs_mdir_t m
Definition lfs.h:393
uint16_t id
Definition lfs.h:391
lfs_size_t size
Definition lfs.h:408
lfs_block_t head
Definition lfs.h:407
struct lfs_attr * attrs
Definition lfs.h:362
lfs_size_t attr_count
Definition lfs.h:365
void * buffer
Definition lfs.h:349
struct lfs_file * next
Definition lfs.h:401
const struct lfs_file_config * cfg
Definition lfs.h:417
lfs_cache_t cache
Definition lfs.h:415
struct lfs_file::lfs_ctz ctz
lfs_off_t off
Definition lfs.h:414
lfs_off_t pos
Definition lfs.h:412
lfs_block_t block
Definition lfs.h:413
lfs_mdir_t m
Definition lfs.h:404
uint8_t type
Definition lfs.h:403
uint16_t id
Definition lfs.h:402
uint32_t flags
Definition lfs.h:411
lfs_size_t file_max
Definition lfs.h:325
lfs_size_t attr_max
Definition lfs.h:328
lfs_size_t block_count
Definition lfs.h:319
lfs_size_t name_max
Definition lfs.h:322
lfs_size_t block_size
Definition lfs.h:316
uint32_t disk_version
Definition lfs.h:313
uint32_t tag
Definition lfs.h:430
lfs_block_t pair[2]
Definition lfs.h:431
uint8_t type
Definition lfs.h:298
char name[LFS_NAME_MAX+1]
Definition lfs.h:307
lfs_size_t size
Definition lfs.h:301
bool split
Definition lfs.h:384
uint32_t etag
Definition lfs.h:381
uint16_t count
Definition lfs.h:382
lfs_block_t pair[2]
Definition lfs.h:378
bool erased
Definition lfs.h:383
uint32_t rev
Definition lfs.h:379
lfs_off_t off
Definition lfs.h:380
lfs_block_t tail[2]
Definition lfs.h:385
uint32_t version
Definition lfs.h:421
lfs_size_t attr_max
Definition lfs.h:426
lfs_size_t block_count
Definition lfs.h:423
lfs_size_t file_max
Definition lfs.h:425
lfs_size_t block_size
Definition lfs.h:422
lfs_size_t name_max
Definition lfs.h:424
lfs_block_t root[2]
Definition lfs.h:439
lfs_size_t inline_max
Definition lfs.h:465
lfs_cache_t pcache
Definition lfs.h:437
lfs_size_t file_max
Definition lfs.h:463
const struct lfs_config * cfg
Definition lfs.h:460
lfs_size_t name_max
Definition lfs.h:462
uint32_t seed
Definition lfs.h:446
lfs_size_t block_count
Definition lfs.h:461
lfs_cache_t rcache
Definition lfs.h:436
lfs_gstate_t gstate
Definition lfs.h:448
struct lfs::lfs_mlist * mlist
lfs_gstate_t gdelta
Definition lfs.h:450
lfs_gstate_t gdisk
Definition lfs.h:449
lfs_size_t attr_max
Definition lfs.h:464
struct lfs::lfs_lookahead lookahead