Lines Matching refs:off

29         lfs2_block_t block, lfs2_off_t off,  in lfs2_bd_read()  argument
33 off+size > lfs2->cfg->block_size) { in lfs2_bd_read()
41 off < pcache->off + pcache->size) { in lfs2_bd_read()
42 if (off >= pcache->off) { in lfs2_bd_read()
44 diff = lfs2_min(diff, pcache->size - (off-pcache->off)); in lfs2_bd_read()
45 memcpy(data, &pcache->buffer[off-pcache->off], diff); in lfs2_bd_read()
48 off += diff; in lfs2_bd_read()
54 diff = lfs2_min(diff, pcache->off-off); in lfs2_bd_read()
58 off < rcache->off + rcache->size) { in lfs2_bd_read()
59 if (off >= rcache->off) { in lfs2_bd_read()
61 diff = lfs2_min(diff, rcache->size - (off-rcache->off)); in lfs2_bd_read()
62 memcpy(data, &rcache->buffer[off-rcache->off], diff); in lfs2_bd_read()
65 off += diff; in lfs2_bd_read()
71 diff = lfs2_min(diff, rcache->off-off); in lfs2_bd_read()
74 if (size >= hint && off % lfs2->cfg->read_size == 0 && in lfs2_bd_read()
78 int err = lfs2->cfg->read(lfs2->cfg, block, off, data, diff); in lfs2_bd_read()
84 off += diff; in lfs2_bd_read()
92 rcache->off = lfs2_aligndown(off, lfs2->cfg->read_size); in lfs2_bd_read()
95 lfs2_alignup(off+hint, lfs2->cfg->read_size), in lfs2_bd_read()
97 - rcache->off, in lfs2_bd_read()
100 rcache->off, rcache->buffer, rcache->size); in lfs2_bd_read()
118 lfs2_block_t block, lfs2_off_t off, in lfs2_bd_cmp() argument
129 block, off+i, &dat, diff); in lfs2_bd_cmp()
150 pcache->off, pcache->buffer, diff); in lfs2_bd_flush()
161 pcache->block, pcache->off, pcache->buffer, diff); in lfs2_bd_flush()
197 lfs2_block_t block, lfs2_off_t off, in lfs2_bd_prog() argument
201 LFS2_ASSERT(off + size <= lfs2->cfg->block_size); in lfs2_bd_prog()
205 off >= pcache->off && in lfs2_bd_prog()
206 off < pcache->off + lfs2->cfg->cache_size) { in lfs2_bd_prog()
209 lfs2->cfg->cache_size - (off-pcache->off)); in lfs2_bd_prog()
210 memcpy(&pcache->buffer[off-pcache->off], data, diff); in lfs2_bd_prog()
213 off += diff; in lfs2_bd_prog()
216 pcache->size = lfs2_max(pcache->size, off - pcache->off); in lfs2_bd_prog()
234 pcache->off = lfs2_aligndown(off, lfs2->cfg->prog_size); in lfs2_bd_prog()
345 lfs2_off_t off; member
507 lfs2_block_t off = ((block - lfs2->free.off) in lfs2_alloc_lookahead() local
510 if (off < lfs2->free.size) { in lfs2_alloc_lookahead()
511 lfs2->free.buffer[off / 32] |= 1U << (off % 32); in lfs2_alloc_lookahead()
537 lfs2_block_t off = lfs2->free.i; in lfs2_alloc() local
541 if (!(lfs2->free.buffer[off / 32] & (1U << (off % 32)))) { in lfs2_alloc()
543 *block = (lfs2->free.off + off) % lfs2->cfg->block_count; in lfs2_alloc()
561 lfs2->free.i + lfs2->free.off); in lfs2_alloc()
565 lfs2->free.off = (lfs2->free.off + lfs2->free.size) in lfs2_alloc()
585 lfs2_off_t off = dir->off; in lfs2_dir_getslice() local
597 while (off >= sizeof(lfs2_tag_t) + lfs2_tag_dsize(ntag)) { in lfs2_dir_getslice()
598 off -= lfs2_tag_dsize(ntag); in lfs2_dir_getslice()
602 dir->pair[0], off, &ntag, sizeof(ntag)); in lfs2_dir_getslice()
630 dir->pair[0], off+sizeof(tag)+goff, gbuffer, diff); in lfs2_dir_getslice()
654 lfs2_off_t off, void *buffer, lfs2_size_t size) { in lfs2_dir_getread() argument
656 if (off+size > lfs2->cfg->block_size) { in lfs2_dir_getread()
664 off < pcache->off + pcache->size) { in lfs2_dir_getread()
665 if (off >= pcache->off) { in lfs2_dir_getread()
667 diff = lfs2_min(diff, pcache->size - (off-pcache->off)); in lfs2_dir_getread()
668 memcpy(data, &pcache->buffer[off-pcache->off], diff); in lfs2_dir_getread()
671 off += diff; in lfs2_dir_getread()
677 diff = lfs2_min(diff, pcache->off-off); in lfs2_dir_getread()
681 off < rcache->off + rcache->size) { in lfs2_dir_getread()
682 if (off >= rcache->off) { in lfs2_dir_getread()
684 diff = lfs2_min(diff, rcache->size - (off-rcache->off)); in lfs2_dir_getread()
685 memcpy(data, &rcache->buffer[off-rcache->off], diff); in lfs2_dir_getread()
688 off += diff; in lfs2_dir_getread()
694 diff = lfs2_min(diff, rcache->off-off); in lfs2_dir_getread()
699 rcache->off = lfs2_aligndown(off, lfs2->cfg->read_size); in lfs2_dir_getread()
700 rcache->size = lfs2_min(lfs2_alignup(off+hint, lfs2->cfg->read_size), in lfs2_dir_getread()
703 rcache->off, rcache->buffer, rcache->size); in lfs2_dir_getread()
744 const lfs2_mdir_t *dir, lfs2_off_t off, lfs2_tag_t ptag, in lfs2_dir_traverse() argument
754 if (off+lfs2_tag_dsize(ptag) < dir->off) { in lfs2_dir_traverse()
755 off += lfs2_tag_dsize(ptag); in lfs2_dir_traverse()
758 dir->pair[0], off, &tag, sizeof(tag)); in lfs2_dir_traverse()
765 disk.off = off+sizeof(lfs2_tag_t); in lfs2_dir_traverse()
787 dir, off, ptag, attrs, attrcount, in lfs2_dir_traverse()
873 dir->off = 0; // nonzero = found some commits in lfs2_dir_fetchmatch()
877 lfs2_off_t off = 0; in lfs2_dir_fetchmatch() local
892 off += lfs2_tag_dsize(ptag); in lfs2_dir_fetchmatch()
895 dir->pair[0], off, &tag, sizeof(tag)); in lfs2_dir_fetchmatch()
911 dir->off % lfs2->cfg->prog_size == 0); in lfs2_dir_fetchmatch()
913 } else if (off + lfs2_tag_dsize(tag) > lfs2->cfg->block_size) { in lfs2_dir_fetchmatch()
925 dir->pair[0], off+sizeof(tag), &dcrc, sizeof(dcrc)); in lfs2_dir_fetchmatch()
951 dir->off = off + lfs2_tag_dsize(tag); in lfs2_dir_fetchmatch()
968 dir->pair[0], off+j, &dat, 1); in lfs2_dir_fetchmatch()
1001 dir->pair[0], off+sizeof(tag), &temptail, 8); in lfs2_dir_fetchmatch()
1014 dir->pair[0], off+sizeof(tag)}); in lfs2_dir_fetchmatch()
1040 if (dir->off > 0) { in lfs2_dir_fetchmatch()
1151 disk->block, disk->off, name->name, diff); in lfs2_dir_find_match()
1268 lfs2_off_t off; member
1281 commit->block, commit->off , in lfs2_dir_commitprog()
1288 commit->off += size; in lfs2_dir_commitprog()
1298 if (commit->off + dsize > commit->end) { in lfs2_dir_commitattr()
1323 disk->block, disk->off+i, &dat, 1); in lfs2_dir_commitattr()
1343 const lfs2_off_t end = lfs2_alignup(commit->off + 2*sizeof(uint32_t), in lfs2_dir_commitcrc()
1352 while (commit->off < end) { in lfs2_dir_commitcrc()
1353 lfs2_off_t off = commit->off + sizeof(lfs2_tag_t); in lfs2_dir_commitcrc() local
1354 lfs2_off_t noff = lfs2_min(end - off, 0x3fe) + off; in lfs2_dir_commitcrc()
1370 tag = LFS2_MKTAG(LFS2_TYPE_CRC + reset, 0x3ff, noff - off); in lfs2_dir_commitcrc()
1379 commit->block, commit->off, &footer, sizeof(footer)); in lfs2_dir_commitcrc()
1386 off1 = commit->off + sizeof(uint32_t); in lfs2_dir_commitcrc()
1390 commit->off += sizeof(tag)+lfs2_tag_size(tag); in lfs2_dir_commitcrc()
1402 lfs2_off_t off = commit->begin; in lfs2_dir_commitcrc() local
1404 while (off < end) { in lfs2_dir_commitcrc()
1406 for (lfs2_off_t i = off; i < noff+sizeof(uint32_t); i++) { in lfs2_dir_commitcrc()
1431 off = lfs2_min(end - noff, 0x3fe) + noff; in lfs2_dir_commitcrc()
1432 if (off < end) { in lfs2_dir_commitcrc()
1433 off = lfs2_min(off, end - 2*sizeof(uint32_t)); in lfs2_dir_commitcrc()
1435 noff = off + sizeof(uint32_t); in lfs2_dir_commitcrc()
1473 dir->off = sizeof(dir->rev); in lfs2_dir_alloc()
1674 .off = 0, in lfs2_dir_compact()
1770 LFS2_ASSERT(commit.off % lfs2->cfg->prog_size == 0); in lfs2_dir_compact()
1773 dir->off = commit.off; in lfs2_dir_compact()
1884 .off = dir->off, in lfs2_dir_commit()
1888 .begin = dir->off, in lfs2_dir_commit()
1895 dir, dir->off, dir->etag, attrs, attrcount, in lfs2_dir_commit()
1945 LFS2_ASSERT(commit.off % lfs2->cfg->prog_size == 0); in lfs2_dir_commit()
1946 dir->off = commit.off; in lfs2_dir_commit()
2202 static int lfs2_dir_rawseek(lfs2_t *lfs2, lfs2_dir_t *dir, lfs2_off_t off) { in lfs2_dir_rawseek() argument
2210 dir->pos = lfs2_min(2, off); in lfs2_dir_rawseek()
2211 off -= dir->pos; in lfs2_dir_rawseek()
2214 dir->id = (off > 0 && lfs2_pair_cmp(dir->head, lfs2->root) == 0); in lfs2_dir_rawseek()
2216 while (off > 0) { in lfs2_dir_rawseek()
2217 int diff = lfs2_min(dir->m.count - dir->id, off); in lfs2_dir_rawseek()
2220 off -= diff; in lfs2_dir_rawseek()
2258 static int lfs2_ctz_index(lfs2_t *lfs2, lfs2_off_t *off) { in lfs2_ctz_index() argument
2259 lfs2_off_t size = *off; in lfs2_ctz_index()
2267 *off = size - b*i - 4*lfs2_popc(i); in lfs2_ctz_index()
2274 lfs2_size_t pos, lfs2_block_t *block, lfs2_off_t *off) { in lfs2_ctz_find() argument
2277 *off = 0; in lfs2_ctz_find()
2301 *off = pos; in lfs2_ctz_find()
2309 lfs2_block_t *block, lfs2_off_t *off) { in lfs2_ctz_extend() argument
2329 *off = 0; in lfs2_ctz_extend()
2360 *off = noff; in lfs2_ctz_extend()
2392 *off = 4*skips; in lfs2_ctz_extend()
2470 file->off = 0;
2585 file->cache.off = 0;
2658 for (lfs2_off_t i = 0; i < file->off; i++) {
2663 NULL, &file->cache, file->off-i,
2672 &file->cache, &lfs2->rcache, file->off-i,
2693 file->cache.off = lfs2->pcache.off;
2712 file->off = file->pos;
2885 file->off == lfs2->cfg->block_size) {
2889 file->pos, &file->block, &file->off);
2895 file->off = file->pos;
2902 lfs2_size_t diff = lfs2_min(nsize, lfs2->cfg->block_size - file->off);
2908 file->off, data, diff);
2915 file->block, file->off, data, diff);
2922 file->off += diff;
2983 file->off == lfs2->cfg->block_size) {
2989 file->pos-1, &file->block, &file->off);
3003 &file->block, &file->off);
3010 file->off = file->pos;
3017 lfs2_size_t diff = lfs2_min(nsize, lfs2->cfg->block_size - file->off);
3020 file->block, file->off, data, diff);
3039 file->off += diff;
3052 lfs2_soff_t off, int whence) { argument
3064 npos = off;
3066 npos = file->pos + off;
3068 npos = file->ctz.size + off;
3101 size, &file->block, &file->off);
3588 lfs2->free.off = 0;
3760 lfs2->free.off = lfs2->seed % lfs2->cfg->block_count;
3920 disk->block, disk->off, &child, sizeof(child));
4250 lfs2_off_t off; member
4270 lfs2_off_t off; member
4283 lfs2_off_t off; member
4305 lfs2_off_t off, void *buffer, lfs2_size_t size) { argument
4309 block, off, buffer, size);
4313 lfs2_off_t off, lfs2_size_t size, uint32_t *crc) { argument
4316 int err = lfs21_bd_read(lfs2, block, off+i, &c, 1);
4416 dir->off = sizeof(dir->d);
4430 while (dir->off + sizeof(entry->d) > (0x7fffffff & dir->d.size)-4) {
4432 entry->off = dir->off;
4441 dir->off = sizeof(dir->d);
4445 int err = lfs21_bd_read(lfs2, dir->pair[0], dir->off,
4452 entry->off = dir->off;
4453 dir->off += lfs21_entry_size(entry);
4483 while (dir.off + sizeof(entry.d) <= (0x7fffffff & dir.d.size)-4) {
4484 err = lfs21_bd_read(lfs2, dir.pair[0], dir.off,
4491 dir.off += lfs21_entry_size(&entry);
4583 lfs2->free.off = 0;
4705 entry1.off + 4+entry1.d.elen+entry1.d.alen,
4782 for (lfs2_off_t i = 0; i < dir2.off; i++) {
4785 NULL, &lfs2->rcache, dir2.off,
4814 dir2.off = sizeof(dir2.rev);
5152 lfs2_soff_t off, int whence) { argument
5158 (void*)lfs2, (void*)file, off, whence);
5161 lfs2_soff_t res = lfs2_file_rawseek(lfs2, file, off, whence);
5290 int lfs2_dir_seek(lfs2_t *lfs2, lfs2_dir_t *dir, lfs2_off_t off) { argument
5296 (void*)lfs2, (void*)dir, off);
5298 err = lfs2_dir_rawseek(lfs2, dir, off);