Lines Matching refs:entry

266         lfs1_dir_t *parent, lfs1_entry_t *entry);
404 static inline lfs1_size_t lfs1_entry_size(const lfs1_entry_t *entry) { in lfs1_entry_size() argument
405 return 4 + entry->d.elen + entry->d.alen + entry->d.nlen; in lfs1_entry_size()
659 lfs1_entry_t *entry, const void *data) { in lfs1_dir_update() argument
660 lfs1_entry_tole32(&entry->d); in lfs1_dir_update()
662 {entry->off, sizeof(entry->d), &entry->d, sizeof(entry->d)}, in lfs1_dir_update()
663 {entry->off+sizeof(entry->d), entry->d.nlen, data, entry->d.nlen} in lfs1_dir_update()
665 lfs1_entry_fromle32(&entry->d); in lfs1_dir_update()
670 lfs1_entry_t *entry, const void *data) { in lfs1_dir_append() argument
673 if (dir->d.size + lfs1_entry_size(entry) <= lfs1->cfg->block_size) { in lfs1_dir_append()
674 entry->off = dir->d.size - 4; in lfs1_dir_append()
676 lfs1_entry_tole32(&entry->d); in lfs1_dir_append()
678 {entry->off, 0, &entry->d, sizeof(entry->d)}, in lfs1_dir_append()
679 {entry->off, 0, data, entry->d.nlen} in lfs1_dir_append()
681 lfs1_entry_fromle32(&entry->d); in lfs1_dir_append()
695 entry->off = dir->d.size - 4; in lfs1_dir_append()
696 lfs1_entry_tole32(&entry->d); in lfs1_dir_append()
698 {entry->off, 0, &entry->d, sizeof(entry->d)}, in lfs1_dir_append()
699 {entry->off, 0, data, entry->d.nlen} in lfs1_dir_append()
701 lfs1_entry_fromle32(&entry->d); in lfs1_dir_append()
719 static int lfs1_dir_remove(lfs1_t *lfs1, lfs1_dir_t *dir, lfs1_entry_t *entry) { in lfs1_dir_remove() argument
722 + lfs1_entry_size(entry)) { in lfs1_dir_remove()
739 {entry->off, lfs1_entry_size(entry), NULL, 0}, in lfs1_dir_remove()
748 if (f->poff == entry->off) { in lfs1_dir_remove()
751 } else if (f->poff > entry->off) { in lfs1_dir_remove()
752 f->poff -= lfs1_entry_size(entry); in lfs1_dir_remove()
759 if (d->off > entry->off) { in lfs1_dir_remove()
760 d->off -= lfs1_entry_size(entry); in lfs1_dir_remove()
761 d->pos -= lfs1_entry_size(entry); in lfs1_dir_remove()
769 static int lfs1_dir_next(lfs1_t *lfs1, lfs1_dir_t *dir, lfs1_entry_t *entry) { in lfs1_dir_next() argument
770 while (dir->off + sizeof(entry->d) > (0x7fffffff & dir->d.size)-4) { in lfs1_dir_next()
772 entry->off = dir->off; in lfs1_dir_next()
786 &entry->d, sizeof(entry->d)); in lfs1_dir_next()
787 lfs1_entry_fromle32(&entry->d); in lfs1_dir_next()
792 entry->off = dir->off; in lfs1_dir_next()
793 dir->off += lfs1_entry_size(entry); in lfs1_dir_next()
794 dir->pos += lfs1_entry_size(entry); in lfs1_dir_next()
799 lfs1_entry_t *entry, const char **path) { in lfs1_dir_find() argument
802 entry->d.type = LFS1_TYPE_DIR; in lfs1_dir_find()
803 entry->d.elen = sizeof(entry->d) - 4; in lfs1_dir_find()
804 entry->d.alen = 0; in lfs1_dir_find()
805 entry->d.nlen = 0; in lfs1_dir_find()
806 entry->d.u.dir[0] = lfs1->root[0]; in lfs1_dir_find()
807 entry->d.u.dir[1] = lfs1->root[1]; in lfs1_dir_find()
855 if (entry->d.type != LFS1_TYPE_DIR) { in lfs1_dir_find()
859 int err = lfs1_dir_fetch(lfs1, dir, entry->d.u.dir); in lfs1_dir_find()
866 err = lfs1_dir_next(lfs1, dir, entry); in lfs1_dir_find()
871 if (((0x7f & entry->d.type) != LFS1_TYPE_REG && in lfs1_dir_find()
872 (0x7f & entry->d.type) != LFS1_TYPE_DIR) || in lfs1_dir_find()
873 entry->d.nlen != pathlen) { in lfs1_dir_find()
878 entry->off + 4+entry->d.elen+entry->d.alen, in lfs1_dir_find()
891 if (!lfs1->moving && entry->d.type & 0x80) { in lfs1_dir_find()
892 int moved = lfs1_moved(lfs1, &entry->d.u); in lfs1_dir_find()
897 entry->d.type &= ~0x80; in lfs1_dir_find()
918 lfs1_entry_t entry; in lfs1_mkdir() local
919 int err = lfs1_dir_find(lfs1, &cwd, &entry, &path); in lfs1_mkdir()
940 entry.d.type = LFS1_TYPE_DIR; in lfs1_mkdir()
941 entry.d.elen = sizeof(entry.d) - 4; in lfs1_mkdir()
942 entry.d.alen = 0; in lfs1_mkdir()
943 entry.d.nlen = strlen(path); in lfs1_mkdir()
944 entry.d.u.dir[0] = dir.pair[0]; in lfs1_mkdir()
945 entry.d.u.dir[1] = dir.pair[1]; in lfs1_mkdir()
950 err = lfs1_dir_append(lfs1, &cwd, &entry, path); in lfs1_mkdir()
963 lfs1_entry_t entry; in lfs1_dir_open() local
964 int err = lfs1_dir_find(lfs1, dir, &entry, &path); in lfs1_dir_open()
967 } else if (entry.d.type != LFS1_TYPE_DIR) { in lfs1_dir_open()
971 err = lfs1_dir_fetch(lfs1, dir, entry.d.u.dir); in lfs1_dir_open()
1018 lfs1_entry_t entry; in lfs1_dir_read() local
1020 int err = lfs1_dir_next(lfs1, dir, &entry); in lfs1_dir_read()
1025 if ((0x7f & entry.d.type) != LFS1_TYPE_REG && in lfs1_dir_read()
1026 (0x7f & entry.d.type) != LFS1_TYPE_DIR) { in lfs1_dir_read()
1031 if (entry.d.type & 0x80) { in lfs1_dir_read()
1032 int moved = lfs1_moved(lfs1, &entry.d.u); in lfs1_dir_read()
1041 entry.d.type &= ~0x80; in lfs1_dir_read()
1047 info->type = entry.d.type; in lfs1_dir_read()
1049 info->size = entry.d.u.file.size; in lfs1_dir_read()
1053 entry.off + 4+entry.d.elen+entry.d.alen, in lfs1_dir_read()
1054 info->name, entry.d.nlen); in lfs1_dir_read()
1307 lfs1_entry_t entry; in lfs1_file_opencfg() local
1308 int err = lfs1_dir_find(lfs1, &cwd, &entry, &path); in lfs1_file_opencfg()
1319 entry.d.type = LFS1_TYPE_REG; in lfs1_file_opencfg()
1320 entry.d.elen = sizeof(entry.d) - 4; in lfs1_file_opencfg()
1321 entry.d.alen = 0; in lfs1_file_opencfg()
1322 entry.d.nlen = strlen(path); in lfs1_file_opencfg()
1323 entry.d.u.file.head = 0xffffffff; in lfs1_file_opencfg()
1324 entry.d.u.file.size = 0; in lfs1_file_opencfg()
1325 err = lfs1_dir_append(lfs1, &cwd, &entry, path); in lfs1_file_opencfg()
1329 } else if (entry.d.type == LFS1_TYPE_DIR) { in lfs1_file_opencfg()
1339 file->poff = entry.off; in lfs1_file_opencfg()
1340 file->head = entry.d.u.file.head; in lfs1_file_opencfg()
1341 file->size = entry.d.u.file.size; in lfs1_file_opencfg()
1547 lfs1_entry_t entry = {.off = file->poff}; in lfs1_file_sync() local
1548 err = lfs1_bd_read(lfs1, cwd.pair[0], entry.off, in lfs1_file_sync()
1549 &entry.d, sizeof(entry.d)); in lfs1_file_sync()
1550 lfs1_entry_fromle32(&entry.d); in lfs1_file_sync()
1555 LFS1_ASSERT(entry.d.type == LFS1_TYPE_REG); in lfs1_file_sync()
1556 entry.d.u.file.head = file->head; in lfs1_file_sync()
1557 entry.d.u.file.size = file->size; in lfs1_file_sync()
1559 err = lfs1_dir_update(lfs1, &cwd, &entry, NULL); in lfs1_file_sync()
1837 lfs1_entry_t entry; in lfs1_stat() local
1838 int err = lfs1_dir_find(lfs1, &cwd, &entry, &path); in lfs1_stat()
1844 info->type = entry.d.type; in lfs1_stat()
1846 info->size = entry.d.u.file.size; in lfs1_stat()
1849 if (lfs1_paircmp(entry.d.u.dir, lfs1->root) == 0) { in lfs1_stat()
1853 entry.off + 4+entry.d.elen+entry.d.alen, in lfs1_stat()
1854 info->name, entry.d.nlen); in lfs1_stat()
1873 lfs1_entry_t entry; in lfs1_remove() local
1874 int err = lfs1_dir_find(lfs1, &cwd, &entry, &path); in lfs1_remove()
1880 if (entry.d.type == LFS1_TYPE_DIR) { in lfs1_remove()
1884 err = lfs1_dir_fetch(lfs1, &dir, entry.d.u.dir); in lfs1_remove()
1893 err = lfs1_dir_remove(lfs1, &cwd, &entry); in lfs1_remove()
1899 if (entry.d.type == LFS1_TYPE_DIR) { in lfs1_remove()
2259 lfs1_entry_t entry; in lfs1_traverse() local
2276 while (dir.off + sizeof(entry.d) <= (0x7fffffff & dir.d.size)-4) { in lfs1_traverse()
2278 &entry.d, sizeof(entry.d)); in lfs1_traverse()
2279 lfs1_entry_fromle32(&entry.d); in lfs1_traverse()
2284 dir.off += lfs1_entry_size(&entry); in lfs1_traverse()
2285 if ((0x70 & entry.d.type) == (0x70 & LFS1_TYPE_REG)) { in lfs1_traverse()
2287 entry.d.u.file.head, entry.d.u.file.size, cb, data); in lfs1_traverse()
2350 lfs1_dir_t *parent, lfs1_entry_t *entry) { in lfs1_parent() argument
2366 err = lfs1_dir_next(lfs1, parent, entry); in lfs1_parent()
2375 if (((0x70 & entry->d.type) == (0x70 & LFS1_TYPE_DIR)) && in lfs1_parent()
2376 lfs1_paircmp(entry->d.u.dir, dir) == 0) { in lfs1_parent()
2398 lfs1_entry_t entry; in lfs1_moved() local
2406 err = lfs1_dir_next(lfs1, &cwd, &entry); in lfs1_moved()
2415 if (!(0x80 & entry.d.type) && in lfs1_moved()
2416 memcmp(&entry.d.u, e, sizeof(entry.d.u)) == 0) { in lfs1_moved()
2429 lfs1_entry_t entry; in lfs1_relocate() local
2430 int res = lfs1_parent(lfs1, oldpair, &parent, &entry); in lfs1_relocate()
2437 entry.d.u.dir[0] = newpair[0]; in lfs1_relocate()
2438 entry.d.u.dir[1] = newpair[1]; in lfs1_relocate()
2440 int err = lfs1_dir_update(lfs1, &parent, &entry, NULL); in lfs1_relocate()
2500 lfs1_entry_t entry; in lfs1_deorphan() local
2501 int res = lfs1_parent(lfs1, pdir.d.tail, &parent, &entry); in lfs1_deorphan()
2522 if (!lfs1_pairsync(entry.d.u.dir, pdir.d.tail)) { in lfs1_deorphan()
2525 entry.d.u.dir[0], entry.d.u.dir[1]); in lfs1_deorphan()
2527 pdir.d.tail[0] = entry.d.u.dir[0]; in lfs1_deorphan()
2528 pdir.d.tail[1] = entry.d.u.dir[1]; in lfs1_deorphan()
2540 lfs1_entry_t entry; in lfs1_deorphan() local
2542 err = lfs1_dir_next(lfs1, &cwd, &entry); in lfs1_deorphan()
2552 if (entry.d.type & 0x80) { in lfs1_deorphan()
2553 int moved = lfs1_moved(lfs1, &entry.d.u); in lfs1_deorphan()
2560 entry.d.u.dir[0], entry.d.u.dir[1]); in lfs1_deorphan()
2561 err = lfs1_dir_remove(lfs1, &cwd, &entry); in lfs1_deorphan()
2567 entry.d.u.dir[0], entry.d.u.dir[1]); in lfs1_deorphan()
2568 entry.d.type &= ~0x80; in lfs1_deorphan()
2569 err = lfs1_dir_update(lfs1, &cwd, &entry, NULL); in lfs1_deorphan()