Christopher Haster
fbd25ac533
WIP minor change to fix rename issue
2018-05-27 11:46:22 -05:00
Christopher Haster
de0b719b56
WIP progress so far
2018-05-27 10:15:28 -05:00
Christopher Haster
ca9e43158d
WIP fixed enough things to pass basic file testing
2018-05-26 13:50:06 -05:00
Christopher Haster
cd045ed2eb
WIP Moved move things into a better place
2018-05-25 19:22:19 -05:00
Christopher Haster
39267fd8b2
WIP file stuff
2018-05-22 23:57:19 -05:00
Christopher Haster
6c2c7e3f3d
WIP more progressed
2018-05-22 21:58:14 -05:00
Christopher Haster
2759f012c0
WIP progressed more
2018-05-21 00:56:20 -05:00
Christopher Haster
f4d6ca5552
WIP fixed up dir find
2018-05-20 14:01:11 -05:00
Christopher Haster
57fbc52cfc
WIP added wip journalling things for dirs
2018-05-19 18:25:47 -05:00
Christopher Haster
c8323112ee
WIP Added tests over entries + attributes
2018-04-16 02:37:32 -05:00
Christopher Haster
7d3c2be49a
WIP Fixed big-endian support
2018-04-11 01:29:59 -05:00
Christopher Haster
0e4eb788fe
WIP added test config for no inline files
2018-04-11 01:29:59 -05:00
Christopher Haster
6af43aec5b
Added lfs_fs_size function for finding a count of used blocks
...
This has existed for some time in the form of the lfs_traverse
function, however lfs_traverse is relatively unconventional and
has proven to not have been the most intuitive for users.
2018-04-11 01:29:59 -05:00
Christopher Haster
9af404db09
WIP added file/fs set/get attr implementations
2018-04-11 01:29:59 -05:00
Christopher Haster
0347416b89
WIP simplified attribute handling a bit to better match commit regions
2018-04-11 01:29:59 -05:00
Christopher Haster
eb70143469
WIP Clumsy setattrs/getattrs
2018-04-11 01:29:59 -05:00
Christopher Haster
2aee22aa49
WIP custom attributes
2018-04-11 01:29:59 -05:00
Christopher Haster
a82ea60658
WIP added some comments
2018-04-11 01:29:59 -05:00
Christopher Haster
7c0f32dc0b
WIP Bumped versions
2018-04-11 01:29:59 -05:00
Christopher Haster
e48a2c488b
WIP cleaned up TODOs
2018-04-11 01:29:59 -05:00
Christopher Haster
f37fa75d66
WIP added support for inline files up to 1023 bytes
2018-04-11 01:29:59 -05:00
Christopher Haster
bba71b23f4
WIP Added limits on name/attrs/inline sizes
2018-04-11 01:29:59 -05:00
Christopher Haster
e4a35b78e7
WIP Refactored lfs_dir_set function to umbrella append/update/remove
2018-04-11 01:29:59 -05:00
Christopher Haster
b56d82ff34
WIP Added lfs_dir_get
2018-04-11 01:29:59 -05:00
Christopher Haster
ab9750f5ed
WIP moved superblock to entry append
2018-04-11 01:29:59 -05:00
Christopher Haster
2f32222914
WIP fixed bugs
2018-04-11 01:29:59 -05:00
Christopher Haster
7ad2d58ed0
WIP Fixed issue with modifying dir after append in update
2018-04-11 01:29:59 -05:00
Christopher Haster
689159e31d
WIP Better implementation of inline files, now with overflowing
2018-04-11 01:29:59 -05:00
Christopher Haster
9a97a97e4c
WIP moved asserts out
2018-04-11 01:29:59 -05:00
Christopher Haster
345f7f3235
WIP added hacky taped on inline files
2018-04-11 01:29:59 -05:00
Christopher Haster
a418c2068d
WIP Fixed big-endian support
2018-04-11 01:29:59 -05:00
Christopher Haster
d7ed7a41e9
WIP added entry size field
2018-04-11 01:29:59 -05:00
Christopher Haster
960e152261
WIP separated dir_remove for two types of arguments
2018-04-11 01:29:59 -05:00
Christopher Haster
28a5a27bb9
WIP minor improvement to from-memory commits
2018-04-11 01:29:59 -05:00
Christopher Haster
72475f64f6
WIP Allowed taking advantage of empty space earlier in dir search
2018-04-11 01:29:59 -05:00
Christopher Haster
8773d7c81f
WIP added callbacks for stuff
2018-04-11 01:29:59 -05:00
Christopher Haster
d636299daf
WIP Moved entry tag updates out
2018-04-11 01:29:59 -05:00
Christopher Haster
2d6a37f775
WIP Naive implementation of resizable entries
2018-04-11 01:29:59 -05:00
Christopher Haster
f58408c974
WIP something something flexible updates
2018-04-11 01:29:59 -05:00
Christopher Haster
e1f05ee046
WIP adopted lisp-like dsl for more flexibility
2018-04-11 01:29:59 -05:00
Christopher Haster
f54ad304fc
WIP Changed commit DSL to support disk->disk copies
2018-04-11 01:29:59 -05:00
Christopher Haster
2a738463b3
Separated type/struct fields in dir entries
...
The separation of data-structure vs entry type has been implicit for a
while now, and even taken advantage of to simplify the traverse logic.
2018-04-11 01:29:59 -05:00
Christopher Haster
9637b96069
Fixed lookahead overflow and removed unbounded lookahead pointers
...
As pointed out by davidefer, the lookahead pointer modular arithmetic
does not work around integer overflow when the pointer size is not a
multiple of the block count.
To avoid overflow problems, the easy solution is to stop trying to
work around integer overflows and keep the lookahead offset inside the
block device. To make this work, the ack was modified into a resetable
counter that is decremented every block allocation.
As a plus, quite a bit of the allocation logic ended up simplified.
2018-04-11 14:38:25 -05:00
Christopher Haster
89a7630d84
Fixed issue with lookahead trusting old lookahead blocks
...
One of the big simplifications in littlefs's implementation is the
complete lack of tracking free blocks, allowing operations to simply
drop blocks that are no longer in use.
However, this means the lookahead buffer can easily contain outdated
blocks that were previously deleted. This is usually fine, as littlefs
will rescan the storage if it can't find a free block in the lookahead
buffer, but after changes that caused littlefs to more conservatively
respect the alloc acks (e611cf5 ), any scanned blocks after an ack would
be incorrectly trusted.
The fix is to eagerly scan ahead in the lookahead when we allocate so
that alloc acks are better able to discredit old lookahead blocks. Since
usually alloc acks are tightly coupled to allocations of one or two blocks,
this allows littlefs to properly rescan every set of allocations.
This may still be a concern if there is a long series of worn out
blocks, but in the worst case littlefs will conservatively avoid using
blocks it's not sure about.
Found by davidefer
2018-04-09 14:37:35 -05:00
Christopher Haster
43eac3083b
Renamed test_parallel tests to test_interespersed
...
The name test_parallel gave off the incorrect impression that these
tests are multithreaded.
2018-04-08 17:31:09 -05:00
Christopher Haster
dbc3cb1798
Fixed Travis rate-limit issue with Github requests
...
Using credentials avoids rate-limiting based on Travis's IP address
2018-04-08 17:31:09 -05:00
Christopher Haster
93ece2e87a
Removed outdated note about moves and powerloss
2018-04-08 17:31:05 -05:00
Christopher Haster
d9c076d909
Removed the uninitialized read for invalid superblocks
2018-03-19 00:39:40 -05:00
Christopher Haster
58f3bb1f08
Merge pull request #37 from jrast/patch-1
...
Added a note about the callback functions
2018-03-13 00:13:44 -05:00
Christopher Haster
f72f6d6a05
Removed out of date note about endianness
2018-03-12 21:27:39 -05:00