Lines Matching refs:dir
429 static int lfs_dir_commit(lfs_t *lfs, lfs_mdir_t *dir,
432 lfs_mdir_t *dir, const struct lfs_mattr *attrs, int attrcount,
439 static int lfs_fs_pred(lfs_t *lfs, const lfs_block_t dir[2],
441 static lfs_stag_t lfs_fs_parent(lfs_t *lfs, const lfs_block_t dir[2],
533 static lfs_stag_t lfs_dir_getslice(lfs_t *lfs, const lfs_mdir_t *dir, in lfs_dir_getslice() argument
536 lfs_off_t off = dir->off; in lfs_dir_getslice()
537 lfs_tag_t ntag = dir->etag; in lfs_dir_getslice()
540 if (lfs_gstate_hasmovehere(&lfs->gdisk, dir->pair) && in lfs_dir_getslice()
553 dir->pair[0], off, &ntag, sizeof(ntag)); in lfs_dir_getslice()
581 dir->pair[0], off+sizeof(tag)+goff, gbuffer, diff); in lfs_dir_getslice()
595 static lfs_stag_t lfs_dir_get(lfs_t *lfs, const lfs_mdir_t *dir, in lfs_dir_get() argument
597 return lfs_dir_getslice(lfs, dir, in lfs_dir_get()
602 static int lfs_dir_getread(lfs_t *lfs, const lfs_mdir_t *dir, in lfs_dir_getread() argument
653 int err = lfs_dir_getslice(lfs, dir, gmask, gtag, in lfs_dir_getread()
692 const lfs_mdir_t *dir, lfs_off_t off, lfs_tag_t ptag, in lfs_dir_traverse() argument
702 if (off+lfs_tag_dsize(ptag) < dir->off) { in lfs_dir_traverse()
706 dir->pair[0], off, &tag, sizeof(tag)); in lfs_dir_traverse()
712 disk.block = dir->pair[0]; in lfs_dir_traverse()
735 dir, off, ptag, attrs, attrcount, in lfs_dir_traverse()
786 lfs_mdir_t *dir, const lfs_block_t pair[2], in lfs_dir_fetchmatch() argument
817 dir->pair[0] = pair[(r+0)%2]; in lfs_dir_fetchmatch()
818 dir->pair[1] = pair[(r+1)%2]; in lfs_dir_fetchmatch()
819 dir->rev = revs[(r+0)%2]; in lfs_dir_fetchmatch()
820 dir->off = 0; // nonzero = found some commits in lfs_dir_fetchmatch()
832 dir->rev = lfs_tole32(dir->rev); in lfs_dir_fetchmatch()
833 uint32_t crc = lfs_crc(0xffffffff, &dir->rev, sizeof(dir->rev)); in lfs_dir_fetchmatch()
834 dir->rev = lfs_fromle32(dir->rev); in lfs_dir_fetchmatch()
842 dir->pair[0], off, &tag, sizeof(tag)); in lfs_dir_fetchmatch()
846 dir->erased = false; in lfs_dir_fetchmatch()
857 dir->erased = (lfs_tag_type1(ptag) == LFS_TYPE_CRC && in lfs_dir_fetchmatch()
858 dir->off % lfs->cfg->prog_size == 0); in lfs_dir_fetchmatch()
861 dir->erased = false; in lfs_dir_fetchmatch()
872 dir->pair[0], off+sizeof(tag), &dcrc, sizeof(dcrc)); in lfs_dir_fetchmatch()
875 dir->erased = false; in lfs_dir_fetchmatch()
883 dir->erased = false; in lfs_dir_fetchmatch()
896 dir->off = off + lfs_tag_dsize(tag); in lfs_dir_fetchmatch()
897 dir->etag = ptag; in lfs_dir_fetchmatch()
898 dir->count = tempcount; in lfs_dir_fetchmatch()
899 dir->tail[0] = temptail[0]; in lfs_dir_fetchmatch()
900 dir->tail[1] = temptail[1]; in lfs_dir_fetchmatch()
901 dir->split = tempsplit; in lfs_dir_fetchmatch()
913 dir->pair[0], off+j, &dat, 1); in lfs_dir_fetchmatch()
916 dir->erased = false; in lfs_dir_fetchmatch()
946 dir->pair[0], off+sizeof(tag), &temptail, 8); in lfs_dir_fetchmatch()
949 dir->erased = false; in lfs_dir_fetchmatch()
959 dir->pair[0], off+sizeof(tag)}); in lfs_dir_fetchmatch()
962 dir->erased = false; in lfs_dir_fetchmatch()
985 if (dir->off > 0) { in lfs_dir_fetchmatch()
987 if (lfs_gstate_hasmovehere(&lfs->gdisk, dir->pair)) { in lfs_dir_fetchmatch()
998 *id = lfs_min(lfs_tag_id(besttag), dir->count); in lfs_dir_fetchmatch()
1003 } else if (lfs_tag_id(besttag) < dir->count) { in lfs_dir_fetchmatch()
1011 lfs_pair_swap(dir->pair); in lfs_dir_fetchmatch()
1012 dir->rev = revs[(r+1)%2]; in lfs_dir_fetchmatch()
1016 dir->pair[0], dir->pair[1]); in lfs_dir_fetchmatch()
1021 lfs_mdir_t *dir, const lfs_block_t pair[2]) { in lfs_dir_fetch() argument
1024 return (int)lfs_dir_fetchmatch(lfs, dir, pair, in lfs_dir_fetch()
1028 static int lfs_dir_getgstate(lfs_t *lfs, const lfs_mdir_t *dir, in lfs_dir_getgstate() argument
1031 lfs_stag_t res = lfs_dir_get(lfs, dir, LFS_MKTAG(0x7ff, 0, 0), in lfs_dir_getgstate()
1046 static int lfs_dir_getinfo(lfs_t *lfs, lfs_mdir_t *dir, in lfs_dir_getinfo() argument
1055 lfs_stag_t tag = lfs_dir_get(lfs, dir, LFS_MKTAG(0x780, 0x3ff, 0), in lfs_dir_getinfo()
1064 tag = lfs_dir_get(lfs, dir, LFS_MKTAG(0x700, 0x3ff, 0), in lfs_dir_getinfo()
1110 static lfs_stag_t lfs_dir_find(lfs_t *lfs, lfs_mdir_t *dir, in lfs_dir_find() argument
1120 dir->tail[0] = lfs->root[0]; in lfs_dir_find()
1121 dir->tail[1] = lfs->root[1]; in lfs_dir_find()
1175 lfs_stag_t res = lfs_dir_get(lfs, dir, LFS_MKTAG(0x700, 0x3ff, 0), in lfs_dir_find()
1176 LFS_MKTAG(LFS_TYPE_STRUCT, lfs_tag_id(tag), 8), dir->tail); in lfs_dir_find()
1180 lfs_pair_fromle32(dir->tail); in lfs_dir_find()
1185 tag = lfs_dir_fetchmatch(lfs, dir, dir->tail, in lfs_dir_find()
1200 if (!dir->split) { in lfs_dir_find()
1374 static int lfs_dir_alloc(lfs_t *lfs, lfs_mdir_t *dir) { in lfs_dir_alloc() argument
1377 int err = lfs_alloc(lfs, &dir->pair[(i+1)%2]); in lfs_dir_alloc()
1388 dir->rev = 0; in lfs_dir_alloc()
1393 NULL, &lfs->rcache, sizeof(dir->rev), in lfs_dir_alloc()
1394 dir->pair[0], 0, &dir->rev, sizeof(dir->rev)); in lfs_dir_alloc()
1395 dir->rev = lfs_fromle32(dir->rev); in lfs_dir_alloc()
1401 dir->rev += dir->rev & 1; in lfs_dir_alloc()
1404 dir->off = sizeof(dir->rev); in lfs_dir_alloc()
1405 dir->etag = 0xffffffff; in lfs_dir_alloc()
1406 dir->count = 0; in lfs_dir_alloc()
1407 dir->tail[0] = LFS_BLOCK_NULL; in lfs_dir_alloc()
1408 dir->tail[1] = LFS_BLOCK_NULL; in lfs_dir_alloc()
1409 dir->erased = false; in lfs_dir_alloc()
1410 dir->split = false; in lfs_dir_alloc()
1416 static int lfs_dir_drop(lfs_t *lfs, lfs_mdir_t *dir, lfs_mdir_t *tail) { in lfs_dir_drop() argument
1425 err = lfs_dir_commit(lfs, dir, LFS_MKATTRS( in lfs_dir_drop()
1439 lfs_mdir_t *dir, const struct lfs_mattr *attrs, int attrcount, in lfs_dir_split() argument
1444 LFS_TRACE("%s splitting (%d, %d)", __func__, dir->pair[0], dir->pair[1]); in lfs_dir_split()
1450 tail.split = dir->split; in lfs_dir_split()
1451 tail.tail[0] = dir->tail[0]; in lfs_dir_split()
1452 tail.tail[1] = dir->tail[1]; in lfs_dir_split()
1459 dir->tail[0] = tail.pair[0]; in lfs_dir_split()
1460 dir->tail[1] = tail.pair[1]; in lfs_dir_split()
1461 dir->split = true; in lfs_dir_split()
1464 if (lfs_pair_cmp(dir->pair, lfs->root) == 0 && split == 0) { in lfs_dir_split()
1491 lfs_mdir_t *dir, const struct lfs_mattr *attrs, int attrcount, in lfs_dir_compact() argument
1494 const lfs_block_t oldpair[2] = {dir->pair[0], dir->pair[1]}; in lfs_dir_compact()
1526 err = lfs_dir_split(lfs, dir, attrs, attrcount, in lfs_dir_compact()
1542 dir->rev += 1; in lfs_dir_compact()
1550 (dir->rev % ((lfs->cfg->block_cycles+1)|1) == 0)) { in lfs_dir_compact()
1551 if (lfs_pair_cmp(dir->pair, (const lfs_block_t[2]){0, 1}) == 0) { in lfs_dir_compact()
1562 LFS_DEBUG("Expanding superblock at rev %"PRIu32, dir->rev); in lfs_dir_compact()
1563 int err = lfs_dir_split(lfs, dir, attrs, attrcount, in lfs_dir_compact()
1596 .block = dir->pair[1], in lfs_dir_compact()
1606 int err = lfs_bd_erase(lfs, dir->pair[1]); in lfs_dir_compact()
1615 dir->rev = lfs_tole32(dir->rev); in lfs_dir_compact()
1617 &dir->rev, sizeof(dir->rev)); in lfs_dir_compact()
1618 dir->rev = lfs_fromle32(dir->rev); in lfs_dir_compact()
1642 if (!lfs_pair_isnull(dir->tail)) { in lfs_dir_compact()
1643 lfs_pair_tole32(dir->tail); in lfs_dir_compact()
1645 LFS_MKTAG(LFS_TYPE_TAIL + dir->split, 0x3ff, 8), in lfs_dir_compact()
1646 dir->tail); in lfs_dir_compact()
1647 lfs_pair_fromle32(dir->tail); in lfs_dir_compact()
1665 err = lfs_dir_getgstate(lfs, dir, &delta); in lfs_dir_compact()
1694 lfs_pair_swap(dir->pair); in lfs_dir_compact()
1695 dir->count = end - begin; in lfs_dir_compact()
1696 dir->off = commit.off; in lfs_dir_compact()
1697 dir->etag = commit.ptag; in lfs_dir_compact()
1711 LFS_DEBUG("Bad block at 0x%"PRIx32, dir->pair[1]); in lfs_dir_compact()
1715 if (lfs_pair_cmp(dir->pair, (const lfs_block_t[2]){0, 1}) == 0) { in lfs_dir_compact()
1717 dir->pair[1]); in lfs_dir_compact()
1722 int err = lfs_alloc(lfs, &dir->pair[1]); in lfs_dir_compact()
1735 oldpair[0], oldpair[1], dir->pair[0], dir->pair[1]); in lfs_dir_compact()
1736 int err = lfs_fs_relocate(lfs, oldpair, dir->pair); in lfs_dir_compact()
1745 static int lfs_dir_commit(lfs_t *lfs, lfs_mdir_t *dir, in lfs_dir_commit() argument
1750 if (dir != &f->m && lfs_pair_cmp(f->m.pair, dir->pair) == 0 && in lfs_dir_commit()
1766 lfs_mdir_t olddir = *dir; in lfs_dir_commit()
1770 dir->count += 1; in lfs_dir_commit()
1772 LFS_ASSERT(dir->count > 0); in lfs_dir_commit()
1773 dir->count -= 1; in lfs_dir_commit()
1776 dir->tail[0] = ((lfs_block_t*)attrs[i].buffer)[0]; in lfs_dir_commit()
1777 dir->tail[1] = ((lfs_block_t*)attrs[i].buffer)[1]; in lfs_dir_commit()
1778 dir->split = (lfs_tag_chunk(attrs[i].tag) & 1); in lfs_dir_commit()
1779 lfs_pair_fromle32(dir->tail); in lfs_dir_commit()
1784 if (hasdelete && dir->count == 0) { in lfs_dir_commit()
1786 int err = lfs_fs_pred(lfs, dir->pair, &pdir); in lfs_dir_commit()
1788 *dir = olddir; in lfs_dir_commit()
1793 err = lfs_dir_drop(lfs, &pdir, dir); in lfs_dir_commit()
1795 *dir = olddir; in lfs_dir_commit()
1801 if (dir->erased || dir->count >= 0xff) { in lfs_dir_commit()
1804 .block = dir->pair[0], in lfs_dir_commit()
1805 .off = dir->off, in lfs_dir_commit()
1806 .ptag = dir->etag, in lfs_dir_commit()
1809 .begin = dir->off, in lfs_dir_commit()
1814 lfs_pair_tole32(dir->tail); in lfs_dir_commit()
1816 dir, dir->off, dir->etag, attrs, attrcount, in lfs_dir_commit()
1820 lfs_pair_fromle32(dir->tail); in lfs_dir_commit()
1825 *dir = olddir; in lfs_dir_commit()
1836 err = lfs_dir_getgstate(lfs, dir, &delta); in lfs_dir_commit()
1838 *dir = olddir; in lfs_dir_commit()
1850 *dir = olddir; in lfs_dir_commit()
1861 *dir = olddir; in lfs_dir_commit()
1867 dir->off = commit.off; in lfs_dir_commit()
1868 dir->etag = commit.ptag; in lfs_dir_commit()
1877 int err = lfs_dir_compact(lfs, dir, attrs, attrcount, in lfs_dir_commit()
1878 dir, 0, dir->count); in lfs_dir_commit()
1880 *dir = olddir; in lfs_dir_commit()
1893 if (&d->m != dir && lfs_pair_cmp(d->m.pair, olddir.pair) == 0) { in lfs_dir_commit()
1894 d->m = *dir; in lfs_dir_commit()
1962 lfs_mdir_t dir; in lfs_mkdir() local
1963 err = lfs_dir_alloc(lfs, &dir); in lfs_mkdir()
1981 err = lfs_dir_commit(lfs, &dir, LFS_MKATTRS( in lfs_mkdir()
2002 lfs_pair_tole32(dir.pair); in lfs_mkdir()
2004 {LFS_MKTAG(LFS_TYPE_SOFTTAIL, 0x3ff, 8), dir.pair})); in lfs_mkdir()
2005 lfs_pair_fromle32(dir.pair); in lfs_mkdir()
2017 lfs_pair_tole32(dir.pair); in lfs_mkdir()
2021 {LFS_MKTAG(LFS_TYPE_DIRSTRUCT, id, 8), dir.pair}, in lfs_mkdir()
2023 LFS_TYPE_SOFTTAIL, 0x3ff, 8), dir.pair})); in lfs_mkdir()
2024 lfs_pair_fromle32(dir.pair); in lfs_mkdir()
2034 int lfs_dir_open(lfs_t *lfs, lfs_dir_t *dir, const char *path) { in lfs_dir_open() argument
2035 LFS_TRACE("lfs_dir_open(%p, %p, \"%s\")", (void*)lfs, (void*)dir, path); in lfs_dir_open()
2036 lfs_stag_t tag = lfs_dir_find(lfs, &dir->m, &path, NULL); in lfs_dir_open()
2054 lfs_stag_t res = lfs_dir_get(lfs, &dir->m, LFS_MKTAG(0x700, 0x3ff, 0), in lfs_dir_open()
2064 int err = lfs_dir_fetch(lfs, &dir->m, pair); in lfs_dir_open()
2071 dir->head[0] = dir->m.pair[0]; in lfs_dir_open()
2072 dir->head[1] = dir->m.pair[1]; in lfs_dir_open()
2073 dir->id = 0; in lfs_dir_open()
2074 dir->pos = 0; in lfs_dir_open()
2077 dir->type = LFS_TYPE_DIR; in lfs_dir_open()
2078 dir->next = (lfs_dir_t*)lfs->mlist; in lfs_dir_open()
2079 lfs->mlist = (struct lfs_mlist*)dir; in lfs_dir_open()
2085 int lfs_dir_close(lfs_t *lfs, lfs_dir_t *dir) { in lfs_dir_close() argument
2086 LFS_TRACE("lfs_dir_close(%p, %p)", (void*)lfs, (void*)dir); in lfs_dir_close()
2089 if (*p == (struct lfs_mlist*)dir) { in lfs_dir_close()
2099 int lfs_dir_read(lfs_t *lfs, lfs_dir_t *dir, struct lfs_info *info) { in lfs_dir_read() argument
2101 (void*)lfs, (void*)dir, (void*)info); in lfs_dir_read()
2105 if (dir->pos == 0) { in lfs_dir_read()
2108 dir->pos += 1; in lfs_dir_read()
2111 } else if (dir->pos == 1) { in lfs_dir_read()
2114 dir->pos += 1; in lfs_dir_read()
2120 if (dir->id == dir->m.count) { in lfs_dir_read()
2121 if (!dir->m.split) { in lfs_dir_read()
2126 int err = lfs_dir_fetch(lfs, &dir->m, dir->m.tail); in lfs_dir_read()
2132 dir->id = 0; in lfs_dir_read()
2135 int err = lfs_dir_getinfo(lfs, &dir->m, dir->id, info); in lfs_dir_read()
2141 dir->id += 1; in lfs_dir_read()
2147 dir->pos += 1; in lfs_dir_read()
2152 int lfs_dir_seek(lfs_t *lfs, lfs_dir_t *dir, lfs_off_t off) { in lfs_dir_seek() argument
2154 (void*)lfs, (void*)dir, off); in lfs_dir_seek()
2156 int err = lfs_dir_rewind(lfs, dir); in lfs_dir_seek()
2163 dir->pos = lfs_min(2, off); in lfs_dir_seek()
2164 off -= dir->pos; in lfs_dir_seek()
2167 dir->id = (off > 0 && lfs_pair_cmp(dir->head, lfs->root) == 0); in lfs_dir_seek()
2170 int diff = lfs_min(dir->m.count - dir->id, off); in lfs_dir_seek()
2171 dir->id += diff; in lfs_dir_seek()
2172 dir->pos += diff; in lfs_dir_seek()
2175 if (dir->id == dir->m.count) { in lfs_dir_seek()
2176 if (!dir->m.split) { in lfs_dir_seek()
2181 err = lfs_dir_fetch(lfs, &dir->m, dir->m.tail); in lfs_dir_seek()
2187 dir->id = 0; in lfs_dir_seek()
2195 lfs_soff_t lfs_dir_tell(lfs_t *lfs, lfs_dir_t *dir) { in lfs_dir_tell() argument
2196 LFS_TRACE("lfs_dir_tell(%p, %p)", (void*)lfs, (void*)dir); in lfs_dir_tell()
2198 LFS_TRACE("lfs_dir_tell -> %"PRId32, dir->pos); in lfs_dir_tell()
2199 return dir->pos; in lfs_dir_tell()
2202 int lfs_dir_rewind(lfs_t *lfs, lfs_dir_t *dir) { in lfs_dir_rewind() argument
2203 LFS_TRACE("lfs_dir_rewind(%p, %p)", (void*)lfs, (void*)dir); in lfs_dir_rewind()
2205 int err = lfs_dir_fetch(lfs, &dir->m, dir->head); in lfs_dir_rewind()
2211 dir->id = 0; in lfs_dir_rewind()
2212 dir->pos = 0; in lfs_dir_rewind()
3417 struct lfs_mlist dir; in lfs_remove() local
3418 dir.next = lfs->mlist; in lfs_remove()
3430 err = lfs_dir_fetch(lfs, &dir.m, pair); in lfs_remove()
3436 if (dir.m.count > 0 || dir.m.split) { in lfs_remove()
3446 dir.type = 0; in lfs_remove()
3447 dir.id = 0; in lfs_remove()
3448 lfs->mlist = &dir; in lfs_remove()
3460 lfs->mlist = dir.next; in lfs_remove()
3465 lfs->mlist = dir.next; in lfs_remove()
3470 err = lfs_fs_pred(lfs, dir.m.pair, &cwd); in lfs_remove()
3476 err = lfs_dir_drop(lfs, &cwd, &dir.m); in lfs_remove()
3967 lfs_mdir_t dir = {.tail = {0, 1}}; in lfs_mount() local
3969 while (!lfs_pair_isnull(dir.tail)) { in lfs_mount()
3978 lfs_stag_t tag = lfs_dir_fetchmatch(lfs, &dir, dir.tail, in lfs_mount()
3992 lfs->root[0] = dir.pair[0]; in lfs_mount()
3993 lfs->root[1] = dir.pair[1]; in lfs_mount()
3997 tag = lfs_dir_get(lfs, &dir, LFS_MKTAG(0x7ff, 0x3ff, 0), in lfs_mount()
4053 err = lfs_dir_getgstate(lfs, &dir, &lfs->gstate); in lfs_mount()
4102 lfs_mdir_t dir = {.tail = {0, 1}}; in lfs_fs_traverseraw() local
4112 dir.tail[0] = lfs->root[0]; in lfs_fs_traverseraw()
4113 dir.tail[1] = lfs->root[1]; in lfs_fs_traverseraw()
4118 while (!lfs_pair_isnull(dir.tail)) { in lfs_fs_traverseraw()
4126 int err = cb(data, dir.tail[i]); in lfs_fs_traverseraw()
4134 int err = lfs_dir_fetch(lfs, &dir, dir.tail); in lfs_fs_traverseraw()
4139 for (uint16_t id = 0; id < dir.count; id++) { in lfs_fs_traverseraw()
4141 lfs_stag_t tag = lfs_dir_get(lfs, &dir, LFS_MKTAG(0x700, 0x3ff, 0), in lfs_fs_traverseraw()
4161 err = lfs_dir_commit(lfs, &dir, LFS_MKATTRS( in lfs_fs_traverseraw()
4455 lfs_mdir_t dir; in lfs_fs_deorphan() local
4459 int err = lfs_dir_fetch(lfs, &dir, pdir.tail); in lfs_fs_deorphan()
4478 err = lfs_dir_drop(lfs, &pdir, &dir); in lfs_fs_deorphan()
4514 pdir = dir; in lfs_fs_deorphan()
4658 lfs_block_t dir[2]; member
4740 d->u.dir[0] = lfs_fromle32(d->u.dir[0]); in lfs1_entry_fromle32()
4741 d->u.dir[1] = lfs_fromle32(d->u.dir[1]); in lfs1_entry_fromle32()
4745 d->u.dir[0] = lfs_tole32(d->u.dir[0]); in lfs1_entry_tole32()
4746 d->u.dir[1] = lfs_tole32(d->u.dir[1]); in lfs1_entry_tole32()
4764 lfs1_dir_t *dir, const lfs_block_t pair[2]) { in lfs1_dir_fetch() argument
4781 if (valid && lfs_scmp(test.rev, dir->d.rev) < 0) { in lfs1_dir_fetch()
4810 dir->pair[0] = tpair[(i+0) % 2]; in lfs1_dir_fetch()
4811 dir->pair[1] = tpair[(i+1) % 2]; in lfs1_dir_fetch()
4812 dir->off = sizeof(dir->d); in lfs1_dir_fetch()
4813 dir->d = test; in lfs1_dir_fetch()
4825 static int lfs1_dir_next(lfs_t *lfs, lfs1_dir_t *dir, lfs1_entry_t *entry) { in lfs1_dir_next() argument
4826 while (dir->off + sizeof(entry->d) > (0x7fffffff & dir->d.size)-4) { in lfs1_dir_next()
4827 if (!(0x80000000 & dir->d.size)) { in lfs1_dir_next()
4828 entry->off = dir->off; in lfs1_dir_next()
4832 int err = lfs1_dir_fetch(lfs, dir, dir->d.tail); in lfs1_dir_next()
4837 dir->off = sizeof(dir->d); in lfs1_dir_next()
4838 dir->pos += sizeof(dir->d) + 4; in lfs1_dir_next()
4841 int err = lfs1_bd_read(lfs, dir->pair[0], dir->off, in lfs1_dir_next()
4848 entry->off = dir->off; in lfs1_dir_next()
4849 dir->off += lfs1_entry_size(entry); in lfs1_dir_next()
4850 dir->pos += lfs1_entry_size(entry); in lfs1_dir_next()
4861 lfs1_dir_t dir; in lfs1_traverse() local
4873 int err = lfs1_dir_fetch(lfs, &dir, cwd); in lfs1_traverse()
4879 while (dir.off + sizeof(entry.d) <= (0x7fffffff & dir.d.size)-4) { in lfs1_traverse()
4880 err = lfs1_bd_read(lfs, dir.pair[0], dir.off, in lfs1_traverse()
4887 dir.off += lfs1_entry_size(&entry); in lfs1_traverse()
4914 cwd[0] = dir.d.tail[0]; in lfs1_traverse()
4915 cwd[1] = dir.d.tail[1]; in lfs1_traverse()
4986 lfs1_dir_t dir; in lfs1_mount() local
4988 err = lfs1_dir_fetch(lfs, &dir, (const lfs_block_t[2]){0, 1}); in lfs1_mount()
4994 err = lfs1_bd_read(lfs, dir.pair[0], sizeof(dir.d), in lfs1_mount()