Restructured directory code

After quite a bit of prototyping, settled on the following functions:
- lfs_dir_alloc  - create a new dir
- lfs_dir_fetch  - load and check a dir pair from disk
- lfs_dir_commit - save a dir pair to disk
- lfs_dir_shift  - shrink a dir pair to disk
- lfs_dir_append - add a dir entry, creating dirs if needed
- lfs_dir_remove - remove a dir entry, dropping dirs if needed

Additionally, followed through with a few other tweaks
This commit is contained in:
Christopher Haster
2017-04-17 22:27:06 -05:00
parent bd817abb00
commit 3b9d6630c8
6 changed files with 441 additions and 598 deletions

View File

@@ -31,7 +31,7 @@ static inline int lfs_scmp(uint32_t a, uint32_t b) {
return (int)(unsigned)(a - b);
}
uint32_t lfs_crc(const void *buffer, lfs_size_t size, uint32_t crc);
uint32_t lfs_crc(uint32_t crc, lfs_size_t size, const void *buffer);