Home
last modified time | relevance | path

Searched full:is (Results 1 – 23 of 23) sorted by relevance

/littlefs-2.7.6/
DSPEC.md3 This is the technical specification of the little filesystem. This document
4 covers the technical details of how the littlefs is stored on disk for
20 - littlefs is a block-based filesystem. The disk is divided into an array of
36 distributed atomic updates. Even the superblock is stored in a metadata pair.
38 As their name suggests, a metadata pair is stored in two blocks, with one block
39 providing a backup during erase cycles in case power is lost. These two blocks
41 metadata pair is stored as two block pointers.
49 The high-level layout of a metadata block is fairly simple:
103 blob of data. But exactly how these tags are stored is a little bit tricky.
137 tag contains a valid bit used to indicate if the tag and containing commit is
[all …]
Dlfs.h63 // Maximum size of custom attributes in bytes, may be redefined, but there is
77 LFS_ERR_NOTDIR = -20, // Entry is not a dir
78 LFS_ERR_ISDIR = -21, // Entry is a dir
79 LFS_ERR_NOTEMPTY = -39, // Dir is not empty
168 // The state of an erased block is undefined. Negative error codes
211 // lookahead buffer is stored as a compact bitmap, so each byte of RAM
216 // By default lfs_malloc is used to allocate this buffer.
220 // By default lfs_malloc is used to allocate this buffer.
224 // and aligned to a 32-bit boundary. By default lfs_malloc is used to
229 // larger names except the size of the info struct which is controlled by
[all …]
DREADME.md14 **Power-loss resilience** - littlefs is designed to handle random power
16 power is lost the filesystem will fall back to the last known good state.
18 **Dynamic wear leveling** - littlefs is designed with flash in mind, and
22 **Bounded RAM/ROM** - littlefs is designed to work with a small amount of
23 memory. RAM usage is strictly bounded, which means RAM consumption does not
25 recursion and dynamic memory is limited to configurable buffers that can be
41 // configuration of the filesystem is provided by this struct
81 // remember the storage is not updated until the file is closed successfully
94 Detailed documentation (or at least as much detail as is currently available)
103 The state of the littlefs is stored in the `lfs_t` type which is left up
[all …]
DDESIGN.md16 filesystem that is resilient to power-loss and flash wear without using
19 This document covers the high-level design of littlefs, how it is different
31 Flash itself is an interesting piece of technology with its own quirks and
33 operations: erasing and programming. Programming (setting bits to 0) is
39 systems to lose power at any time. Usually, microcontroller code is simple and
51 1. **Wear leveling** - Writing to flash is destructive. If a filesystem
62 were possible. For RAM we have a stronger requirement, all RAM usage is
77 Here storage is divided into blocks, with each file being stored in a
79 power-loss resilient, so updating a file is a simple as rewriting the blocks
105 and smallest. However the lack of power resilience is not great, and the
[all …]
DLICENSE.md15 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
D.travis.yml76 | capture(\"code size is (?<size>[0-9]+)\").size" \
79 STATUS="Passed, code size is ${CURR}B"
135 # note this is still tested in the native tests
164 # note this is still tested in the native tests
193 # note this is still tested in the native tests
414 # this isn't perfect but is probably good enough
Dlfs.c15 // do not zero, cheaper if cache is readonly or only going to be in lfs_cache_drop()
43 // is already in pcache? in lfs_bd_read()
60 // is already in rcache? in lfs_bd_read()
459 // Invalidate the lookahead buffer. This is done during mounting and
599 // is already in pcache? in lfs_dir_getread()
616 // is already in rcache? in lfs_dir_getread()
775 // if either block address is invalid we return LFS_ERR_CORRUPT here, in lfs_dir_fetchmatch()
1083 // only equal if our size is still the same in lfs_dir_find_match()
1271 // padding is not crced, which lets fetches skip padding but in lfs_dir_commitcrc()
1365 // zero for reproducability in case initial block is unreadable in lfs_dir_alloc()
[all …]
Dlfs_util.h13 // If LFS_CONFIG is used, none of the default utils will be emitted and must be
188 // Find the sequence comparison of a and b, this is the distance
/littlefs-2.7.6/bd/
Dlfs_testbd.h33 // Not that read-noop is not allowed. Read _must_ return a consistent (but
47 // testbd config, this is required for testing
55 // of bad blocks is controlled by the badblock_mode.
97 // Note that filebd is used if a path is provided, if path is NULL
119 // state of an erased block is undefined.
Dlfs_testbd.c153 // check if read is valid in lfs_testbd_read()
178 // check if write is valid in lfs_testbd_prog()
224 // check if erase is valid in lfs_testbd_erase()
281 // check if block is valid in lfs_testbd_getwear()
294 // check if block is valid in lfs_testbd_setwear()
Dlfs_filebd.c78 // check if read is valid in lfs_filebd_read()
83 // zero for reproducability (in case file is truncated) in lfs_filebd_read()
114 // check if write is valid in lfs_filebd_prog()
166 // check if erase is valid in lfs_filebd_erase()
Dlfs_rambd.c78 // check if read is valid in lfs_rambd_read()
97 // check if write is valid in lfs_rambd_prog()
121 // check if erase is valid in lfs_rambd_erase()
Dlfs_rambd.h29 // occurs, which is still a valid block device
64 // state of an erased block is undefined.
Dlfs_filebd.h62 // state of an erased block is undefined.
/littlefs-2.7.6/scripts/
Dreadmdir.py198 # is valid commit?
219 if tag in self and self[tag] is tag:
222 # id could have change, I know this is messy and slow
226 if ntag in self and self[ntag] is tag:
313 if block is None:
332 if b is not None),
Dtest.py174 if (self.filter is not None and
178 elif (self.filter is not None and
182 elif args.get('no_internal', False) and self.in_ is not None:
184 elif self.if_ is not None:
270 if m and assert_ is None:
380 if self.code is not None:
472 if self.code is not None:
528 if path is None:
732 if failure is not None:
747 help="Description of test(s) to run. By default, this is all tests \
[all …]
Dreadtree.py70 if mdir.tail is None or not mdir.tail.is_('hardtail'):
74 if mdir.tail is None:
Dexplode_asserts.py234 if m is not None:
/littlefs-2.7.6/tests/
Dtest_relocations.toml146 [[case]] # reentrant testing for relocations, this is the same as the
192 // is valid dir?
196 // try to delete path in reverse order, ignore if dir is not empty
268 // stop once some dir is renamed
292 // ignore if dir is not empty
Dtest_orphans.toml103 // is valid dir?
107 // try to delete path in reverse order, ignore if dir is not empty
Dtest_exhaustion.toml168 # of wear-leveling is that increasing a block device's space translates directly
169 # into increasing the block devices lifetime. This is something we can actually
435 // skip 0 and 1 as superblock movement is intentionally avoided
Dtest_move.toml58 [[case]] # noop move, yes this is legal
1018 // rename file while everything is open, this triggers both
1077 // rename file while everything is open, this triggers both
1169 // rename file while everything is open, this triggers both
1234 // rename file while everything is open, this triggers both
1333 // rename file while everything is open, this triggers both
1436 // rename file while everything is open, this triggers both
1586 // the worst case is if we need to relocate and we need to implicit
Dtest_alloc.toml363 // but mark the head of our file as a "bad block", this is force our