Tweaked LFSR_TAG_STICKYNOTE encoding 0x205 -> 0x203
Now that LFS_TYPE_STICKYNOTE is a real type users can interact with, it
makes sense to group it with REG/DIR. This also has the side-effect of
making these contiguous.
---
LFSR_TAG_BOOKMARKs, however, are still hidden from the user. This
unfortunately means there will be a bit of a jump if we ever add
LFS_TYPE_SYMLINK in the future, but I'm starting to wonder if that's the
best way to approach symlinks in littlefs...
If instead LFS_TYPE_SYMLINKS were implied via custom attribute, you
could avoid the headache that comes with adding a new tag encoding, and
allow perfect compatibility with non-symlink drivers. Win win.
This seems like a better approach for _all_ of the theoretical future
types (compressed files, device files, etc), and avoids the risk of
oversaturating the type space.
---
This had a surprising impact on code for just a minor encoding tweak. I
guess the contiguousness pushed the compiler to use tables/ranges for
more things? Or maybe 3 vs 5 is just an easier constant to encode?
code stack ctx
before: 35952 2440 640
after: 35928 (-0.1%) 2440 (+0.0%) 640 (+0.0%)
This commit is contained in:
+2
-2
@@ -39,8 +39,8 @@ FLAGS = [
|
||||
('o', 'TYPE', 0xf0000000, "The file's type" ),
|
||||
('^', 'REG', 0x10000000, "Type = regular-file" ),
|
||||
('^', 'DIR', 0x20000000, "Type = directory" ),
|
||||
('^', 'STICKYNOTE',0x30000000, "Type = stickynote" ),
|
||||
('^', 'BOOKMARK', 0x40000000, "Type = bookmark" ),
|
||||
('^', 'STICKYNOTE',0x50000000, "Type = stickynote" ),
|
||||
('^', 'TRAVERSAL', 0x90000000, "Type = traversal" ),
|
||||
('o', 'UNFLUSH', 0x01000000, "File's data does not match disk" ),
|
||||
('o', 'UNSYNC', 0x02000000, "File's metadata does not match disk" ),
|
||||
@@ -130,8 +130,8 @@ FLAGS = [
|
||||
('t', 'TYPE', 0xf0000000, "The file's type" ),
|
||||
('^', 'REG', 0x10000000, "Type = regular-file" ),
|
||||
('^', 'DIR', 0x20000000, "Type = directory" ),
|
||||
('^', 'STICKYNOTE',0x30000000, "Type = stickynote" ),
|
||||
('^', 'BOOKMARK', 0x40000000, "Type = bookmark" ),
|
||||
('^', 'STICKYNOTE',0x50000000, "Type = stickynote" ),
|
||||
('^', 'TRAVERSAL', 0x90000000, "Type = traversal" ),
|
||||
('t', 'TSTATE', 0x0000000f, "The traversal's current tstate" ),
|
||||
('^', 'MROOTANCHOR',
|
||||
|
||||
Reference in New Issue
Block a user