Lines Matching refs:off
38 lfs_block_t block, lfs_off_t off, in lfs_bd_read() argument
42 off+size > lfs->cfg->block_size) { in lfs_bd_read()
54 off < pcache->off + pcache->size) { in lfs_bd_read()
55 if (off >= pcache->off) { in lfs_bd_read()
57 diff = lfs_min(diff, pcache->size - (off-pcache->off)); in lfs_bd_read()
58 memcpy(data, &pcache->buffer[off-pcache->off], diff); in lfs_bd_read()
61 off += diff; in lfs_bd_read()
67 diff = lfs_min(diff, pcache->off-off); in lfs_bd_read()
71 off < rcache->off + rcache->size) { in lfs_bd_read()
72 if (off >= rcache->off) { in lfs_bd_read()
74 diff = lfs_min(diff, rcache->size - (off-rcache->off)); in lfs_bd_read()
75 memcpy(data, &rcache->buffer[off-rcache->off], diff); in lfs_bd_read()
78 off += diff; in lfs_bd_read()
84 diff = lfs_min(diff, rcache->off-off); in lfs_bd_read()
87 if (size >= hint && off % lfs->cfg->read_size == 0 && in lfs_bd_read()
91 int err = lfs->cfg->read(lfs->cfg, block, off, data, diff); in lfs_bd_read()
97 off += diff; in lfs_bd_read()
105 rcache->off = lfs_aligndown(off, lfs->cfg->read_size); in lfs_bd_read()
108 lfs_alignup(off+hint, lfs->cfg->read_size), in lfs_bd_read()
110 - rcache->off, in lfs_bd_read()
113 rcache->off, rcache->buffer, rcache->size); in lfs_bd_read()
131 lfs_block_t block, lfs_off_t off, in lfs_bd_cmp() argument
139 block, off+i, &dat, 1); in lfs_bd_cmp()
158 pcache->off, pcache->buffer, diff); in lfs_bd_flush()
169 pcache->block, pcache->off, pcache->buffer, diff); in lfs_bd_flush()
201 lfs_block_t block, lfs_off_t off, in lfs_bd_prog() argument
205 LFS_ASSERT(off + size <= lfs->cfg->block_size); in lfs_bd_prog()
209 off >= pcache->off && in lfs_bd_prog()
210 off < pcache->off + lfs->cfg->cache_size) { in lfs_bd_prog()
213 lfs->cfg->cache_size - (off-pcache->off)); in lfs_bd_prog()
214 memcpy(&pcache->buffer[off-pcache->off], data, diff); in lfs_bd_prog()
217 off += diff; in lfs_bd_prog()
220 pcache->size = lfs_max(pcache->size, off - pcache->off); in lfs_bd_prog()
238 pcache->off = lfs_aligndown(off, lfs->cfg->prog_size); in lfs_bd_prog()
346 lfs_off_t off; member
458 lfs_block_t off = ((block - lfs->free.off) in lfs_alloc_lookahead() local
461 if (off < lfs->free.size) { in lfs_alloc_lookahead()
462 lfs->free.buffer[off / 32] |= 1U << (off % 32); in lfs_alloc_lookahead()
476 lfs->free.off = lfs->seed % lfs->cfg->block_size; in lfs_alloc_reset()
479 lfs->free.off = 0; in lfs_alloc_reset()
489 lfs_block_t off = lfs->free.i; in lfs_alloc() local
493 if (!(lfs->free.buffer[off / 32] & (1U << (off % 32)))) { in lfs_alloc()
495 *block = (lfs->free.off + off) % lfs->cfg->block_count; in lfs_alloc()
513 lfs->free.i + lfs->free.off); in lfs_alloc()
517 lfs->free.off = (lfs->free.off + lfs->free.size) in lfs_alloc()
536 lfs_off_t off = dir->off; in lfs_dir_getslice() local
548 while (off >= sizeof(lfs_tag_t) + lfs_tag_dsize(ntag)) { in lfs_dir_getslice()
549 off -= lfs_tag_dsize(ntag); 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()
605 lfs_off_t off, void *buffer, lfs_size_t size) { in lfs_dir_getread() argument
607 if (off+size > lfs->cfg->block_size) { in lfs_dir_getread()
615 off < pcache->off + pcache->size) { in lfs_dir_getread()
616 if (off >= pcache->off) { in lfs_dir_getread()
618 diff = lfs_min(diff, pcache->size - (off-pcache->off)); in lfs_dir_getread()
619 memcpy(data, &pcache->buffer[off-pcache->off], diff); in lfs_dir_getread()
622 off += diff; in lfs_dir_getread()
628 diff = lfs_min(diff, pcache->off-off); in lfs_dir_getread()
632 off < rcache->off + rcache->size) { in lfs_dir_getread()
633 if (off >= rcache->off) { in lfs_dir_getread()
635 diff = lfs_min(diff, rcache->size - (off-rcache->off)); in lfs_dir_getread()
636 memcpy(data, &rcache->buffer[off-rcache->off], diff); in lfs_dir_getread()
639 off += diff; in lfs_dir_getread()
645 diff = lfs_min(diff, rcache->off-off); in lfs_dir_getread()
650 rcache->off = lfs_aligndown(off, lfs->cfg->read_size); in lfs_dir_getread()
651 rcache->size = lfs_min(lfs_alignup(off+hint, lfs->cfg->read_size), in lfs_dir_getread()
654 rcache->off, rcache->buffer, rcache->size); 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()
703 off += lfs_tag_dsize(ptag); in lfs_dir_traverse()
706 dir->pair[0], off, &tag, sizeof(tag)); in lfs_dir_traverse()
713 disk.off = off+sizeof(lfs_tag_t); in lfs_dir_traverse()
735 dir, off, ptag, attrs, attrcount, in lfs_dir_traverse()
820 dir->off = 0; // nonzero = found some commits in lfs_dir_fetchmatch()
824 lfs_off_t off = 0; in lfs_dir_fetchmatch() local
839 off += lfs_tag_dsize(ptag); in lfs_dir_fetchmatch()
842 dir->pair[0], off, &tag, sizeof(tag)); in lfs_dir_fetchmatch()
858 dir->off % lfs->cfg->prog_size == 0); in lfs_dir_fetchmatch()
860 } else if (off + lfs_tag_dsize(tag) > lfs->cfg->block_size) { in lfs_dir_fetchmatch()
872 dir->pair[0], off+sizeof(tag), &dcrc, sizeof(dcrc)); in lfs_dir_fetchmatch()
896 dir->off = off + lfs_tag_dsize(tag); in lfs_dir_fetchmatch()
913 dir->pair[0], off+j, &dat, 1); in lfs_dir_fetchmatch()
946 dir->pair[0], off+sizeof(tag), &temptail, 8); in lfs_dir_fetchmatch()
959 dir->pair[0], off+sizeof(tag)}); in lfs_dir_fetchmatch()
985 if (dir->off > 0) { in lfs_dir_fetchmatch()
1096 disk->block, disk->off, name->name, diff); in lfs_dir_find_match()
1213 lfs_off_t off; member
1225 commit->block, commit->off , in lfs_dir_commitprog()
1232 commit->off += size; in lfs_dir_commitprog()
1240 if (commit->off + dsize > commit->end) { in lfs_dir_commitattr()
1265 disk->block, disk->off+i, &dat, 1); in lfs_dir_commitattr()
1282 const lfs_off_t off1 = commit->off; in lfs_dir_commitcrc()
1291 while (commit->off < end) { in lfs_dir_commitcrc()
1292 lfs_off_t off = commit->off + sizeof(lfs_tag_t); in lfs_dir_commitcrc() local
1293 lfs_off_t noff = lfs_min(end - off, 0x3fe) + off; in lfs_dir_commitcrc()
1309 tag = LFS_MKTAG(LFS_TYPE_CRC + reset, 0x3ff, noff - off); in lfs_dir_commitcrc()
1318 commit->block, commit->off, &footer, sizeof(footer)); in lfs_dir_commitcrc()
1323 commit->off += sizeof(tag)+lfs_tag_size(tag); in lfs_dir_commitcrc()
1335 lfs_off_t off = commit->begin; in lfs_dir_commitcrc() local
1337 while (off < end) { in lfs_dir_commitcrc()
1339 for (lfs_off_t i = off; i < noff+sizeof(uint32_t); i++) { in lfs_dir_commitcrc()
1364 off = lfs_min(end - noff, 0x3fe) + noff; in lfs_dir_commitcrc()
1365 if (off < end) { in lfs_dir_commitcrc()
1366 off = lfs_min(off, end - 2*sizeof(uint32_t)); in lfs_dir_commitcrc()
1368 noff = off + sizeof(uint32_t); in lfs_dir_commitcrc()
1404 dir->off = sizeof(dir->rev); in lfs_dir_alloc()
1597 .off = 0, in lfs_dir_compact()
1693 LFS_ASSERT(commit.off % lfs->cfg->prog_size == 0); in lfs_dir_compact()
1696 dir->off = commit.off; in lfs_dir_compact()
1805 .off = dir->off, in lfs_dir_commit()
1809 .begin = dir->off, in lfs_dir_commit()
1816 dir, dir->off, dir->etag, attrs, attrcount, in lfs_dir_commit()
1866 LFS_ASSERT(commit.off % lfs->cfg->prog_size == 0); in lfs_dir_commit()
1867 dir->off = commit.off; in lfs_dir_commit()
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()
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()
2169 while (off > 0) { in lfs_dir_seek()
2170 int diff = lfs_min(dir->m.count - dir->id, off); in lfs_dir_seek()
2173 off -= diff; in lfs_dir_seek()
2219 static int lfs_ctz_index(lfs_t *lfs, lfs_off_t *off) { in lfs_ctz_index() argument
2220 lfs_off_t size = *off; in lfs_ctz_index()
2228 *off = size - b*i - 4*lfs_popc(i); in lfs_ctz_index()
2235 lfs_size_t pos, lfs_block_t *block, lfs_off_t *off) { in lfs_ctz_find() argument
2238 *off = 0; in lfs_ctz_find()
2262 *off = pos; in lfs_ctz_find()
2269 lfs_block_t *block, lfs_off_t *off) { in lfs_ctz_extend() argument
2289 *off = 0; in lfs_ctz_extend()
2320 *off = noff; in lfs_ctz_extend()
2352 *off = 4*skips; in lfs_ctz_extend()
2454 file->off = 0; in lfs_file_opencfg()
2583 file->cache.off = 0; in lfs_file_opencfg()
2759 for (lfs_off_t i = 0; i < file->off; i++) { in lfs_file_relocate()
2764 NULL, &file->cache, file->off-i, in lfs_file_relocate()
2773 &file->cache, &lfs->rcache, file->off-i, in lfs_file_relocate()
2794 file->cache.off = lfs->pcache.off; in lfs_file_relocate()
2813 file->off = file->pos; in lfs_file_outline()
2992 file->off == lfs->cfg->block_size) { in lfs_file_read()
2996 file->pos, &file->block, &file->off); in lfs_file_read()
3003 file->off = file->pos; in lfs_file_read()
3010 lfs_size_t diff = lfs_min(nsize, lfs->cfg->block_size - file->off); in lfs_file_read()
3016 file->off, data, diff); in lfs_file_read()
3024 file->block, file->off, data, diff); in lfs_file_read()
3032 file->off += diff; in lfs_file_read()
3100 file->off == lfs->cfg->block_size) { in lfs_file_write()
3106 file->pos-1, &file->block, &file->off); in lfs_file_write()
3121 &file->block, &file->off); in lfs_file_write()
3129 file->off = file->pos; in lfs_file_write()
3136 lfs_size_t diff = lfs_min(nsize, lfs->cfg->block_size - file->off); in lfs_file_write()
3139 file->block, file->off, data, diff); in lfs_file_write()
3160 file->off += diff; in lfs_file_write()
3173 lfs_soff_t off, int whence) { in lfs_file_seek() argument
3175 (void*)lfs, (void*)file, off, whence); in lfs_file_seek()
3188 npos = off; in lfs_file_seek()
3190 npos = file->pos + off; in lfs_file_seek()
3192 npos = file->ctz.size + off; in lfs_file_seek()
3231 size, &file->block, &file->off); in lfs_file_truncate()
3889 lfs->free.off = 0; in lfs_format()
4272 disk->block, disk->off, &child, sizeof(child)); in lfs_fs_parent_match()
4646 lfs_off_t off; member
4666 lfs_off_t off; member
4679 lfs_off_t off; member
4701 lfs_off_t off, void *buffer, lfs_size_t size) { in lfs1_bd_read() argument
4705 block, off, buffer, size); in lfs1_bd_read()
4709 lfs_off_t off, lfs_size_t size, uint32_t *crc) { in lfs1_bd_crc() argument
4712 int err = lfs1_bd_read(lfs, block, off+i, &c, 1); in lfs1_bd_crc()
4812 dir->off = sizeof(dir->d); in lfs1_dir_fetch()
4826 while (dir->off + sizeof(entry->d) > (0x7fffffff & dir->d.size)-4) { in lfs1_dir_next()
4828 entry->off = dir->off; in lfs1_dir_next()
4837 dir->off = sizeof(dir->d); 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()
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()
4980 lfs->free.off = 0; in lfs1_mount()
5119 entry1.off + 4+entry1.d.elen+entry1.d.alen, in lfs_migrate()
5196 for (lfs_off_t i = 0; i < dir2.off; i++) { in lfs_migrate()
5199 NULL, &lfs->rcache, dir2.off, in lfs_migrate()
5228 dir2.off = sizeof(dir2.rev); in lfs_migrate()