Adopted ctz skip-list structure earlier than expected

The primary data structure backing the little fs was planned
to be a little ctz based skip-list for O(logn) lookup and
O(1) append.

Was initially planning to start with a simple linked list of
index blocks, but was having trouble implementing the free-list
on top of the structure. Went ahead and adopted the skip-list
structure since it may have actually been easier.
This commit is contained in:
Christopher Haster
2017-02-26 21:00:39 -06:00
parent 160299d35c
commit c28a280c8d
4 changed files with 127 additions and 141 deletions

7
lfs.h
View File

@@ -11,11 +11,10 @@
#include "lfs_bd.h"
struct lfs_free_list {
lfs_word_t rev[2];
lfs_ino_t phead;
lfs_ino_t head;
lfs_ino_t tip;
lfs_off_t off;
lfs_word_t ioff;
lfs_word_t icount;
lfs_word_t rev;
};
typedef struct lfs {