Lines Matching defs:off
46 lfs_block_t block, lfs_off_t off,
49 if (off+size > lfs->cfg->block_size
58 off < pcache->off + pcache->size) {
59 if (off >= pcache->off) {
61 diff = lfs_min(diff, pcache->size - (off-pcache->off));
62 memcpy(data, &pcache->buffer[off-pcache->off], diff);
65 off += diff;
71 diff = lfs_min(diff, pcache->off-off);
75 off < rcache->off + rcache->size) {
76 if (off >= rcache->off) {
78 diff = lfs_min(diff, rcache->size - (off-rcache->off));
79 memcpy(data, &rcache->buffer[off-rcache->off], diff);
82 off += diff;
88 diff = lfs_min(diff, rcache->off-off);
91 if (size >= hint && off % lfs->cfg->read_size == 0 &&
95 int err = lfs->cfg->read(lfs->cfg, block, off, data, diff);
101 off += diff;
109 rcache->off = lfs_aligndown(off, lfs->cfg->read_size);
112 lfs_alignup(off+hint, lfs->cfg->read_size),
114 - rcache->off,
117 rcache->off, rcache->buffer, rcache->size);
129 lfs_block_t block, lfs_off_t off,
140 block, off+i, &dat, diff);
156 lfs_block_t block, lfs_off_t off, lfs_size_t size, uint32_t *crc) {
164 block, off+i, &dat, diff);
182 pcache->off, pcache->buffer, diff);
193 pcache->block, pcache->off, pcache->buffer, diff);
229 lfs_block_t block, lfs_off_t off,
233 LFS_ASSERT(off + size <= lfs->cfg->block_size);
237 off >= pcache->off &&
238 off < pcache->off + lfs->cfg->cache_size) {
241 lfs->cfg->cache_size - (off-pcache->off));
242 memcpy(&pcache->buffer[off-pcache->off], data, diff);
245 off += diff;
248 pcache->size = lfs_max(pcache->size, off - pcache->off);
266 pcache->off = lfs_aligndown(off, lfs->cfg->prog_size);
383 lfs_off_t off;
599 lfs_block_t off = ((block - lfs->free.off)
602 if (off < lfs->free.size) {
603 lfs->free.buffer[off / 32] |= 1U << (off % 32);
629 lfs->free.off = (lfs->free.off + lfs->free.i) % lfs->block_count;
649 lfs_block_t off = lfs->free.i;
653 if (!(lfs->free.buffer[off / 32] & (1U << (off % 32)))) {
655 *block = (lfs->free.off + off) % lfs->block_count;
657 // eagerly find next off so an alloc ack can
673 lfs->free.i + lfs->free.off);
689 lfs_off_t off = dir->off;
701 while (off >= sizeof(lfs_tag_t) + lfs_tag_dsize(ntag)) {
702 off -= lfs_tag_dsize(ntag);
706 dir->pair[0], off, &ntag, sizeof(ntag));
734 dir->pair[0], off+sizeof(tag)+goff, gbuffer, diff);
758 lfs_off_t off, void *buffer, lfs_size_t size) {
760 if (off+size > lfs->cfg->block_size) {
768 off < pcache->off + pcache->size) {
769 if (off >= pcache->off) {
771 diff = lfs_min(diff, pcache->size - (off-pcache->off));
772 memcpy(data, &pcache->buffer[off-pcache->off], diff);
775 off += diff;
781 diff = lfs_min(diff, pcache->off-off);
785 off < rcache->off + rcache->size) {
786 if (off >= rcache->off) {
788 diff = lfs_min(diff, rcache->size - (off-rcache->off));
789 memcpy(data, &rcache->buffer[off-rcache->off], diff);
792 off += diff;
798 diff = lfs_min(diff, rcache->off-off);
803 rcache->off = lfs_aligndown(off, lfs->cfg->read_size);
804 rcache->size = lfs_min(lfs_alignup(off+hint, lfs->cfg->read_size),
807 rcache->off, rcache->buffer, rcache->size);
858 lfs_off_t off;
878 const lfs_mdir_t *dir, lfs_off_t off, lfs_tag_t ptag,
895 if (off+lfs_tag_dsize(ptag) < dir->off) {
896 off += lfs_tag_dsize(ptag);
899 dir->pair[0], off, &tag, sizeof(tag));
906 disk.off = off+sizeof(lfs_tag_t);
932 .off = off,
994 .off = off,
1012 off = 0;
1050 off = stack[sp-1].off;
1108 dir->off = 0; // nonzero = found some commits
1112 lfs_off_t off = 0;
1132 off += lfs_tag_dsize(ptag);
1135 dir->pair[0], off, &tag, sizeof(tag));
1153 } else if (off + lfs_tag_dsize(tag) > lfs->cfg->block_size) {
1164 dir->pair[0], off+sizeof(tag), &dcrc, sizeof(dcrc));
1188 dir->off = off + lfs_tag_dsize(tag);
1203 dir->pair[0], off+sizeof(tag),
1233 dir->pair[0], off+sizeof(tag), &temptail, 8);
1244 dir->pair[0], off+sizeof(tag),
1259 dir->pair[0], off+sizeof(tag)});
1284 if (dir->off == 0) {
1293 if (maybeerased && dir->off % lfs->cfg->prog_size == 0) {
1312 dir->pair[0], dir->off, fcrc.size, &fcrc_);
1427 disk->block, disk->off, name->name, diff);
1544 lfs_off_t off;
1557 commit->block, commit->off ,
1564 commit->off += size;
1574 if (commit->off + dsize > commit->end) {
1599 disk->block, disk->off+i, &dat, 1);
1625 lfs_min(commit->off + 5*sizeof(uint32_t), lfs->cfg->block_size),
1634 while (commit->off < end) {
1636 lfs_min(end - (commit->off+sizeof(lfs_tag_t)), 0x3fe)
1637 + (commit->off+sizeof(lfs_tag_t)));
1693 noff - (commit->off+sizeof(lfs_tag_t)));
1700 commit->block, commit->off, &ccrc, sizeof(ccrc));
1707 off1 = commit->off + sizeof(lfs_tag_t);
1711 commit->off = noff;
1719 if (noff >= end || noff >= lfs->pcache.off + lfs->cfg->cache_size) {
1732 lfs_off_t off = commit->begin;
1736 commit->block, off, off1-off, &crc);
1794 dir->off = sizeof(dir->rev);
1934 .off = 0,
2031 LFS_ASSERT(commit.off % lfs->cfg->prog_size == 0);
2034 dir->off = commit.off;
2220 .off = dir->off,
2224 .begin = dir->off,
2232 dir, dir->off, dir->etag, attrs, attrcount,
2278 LFS_ASSERT(commit.off % lfs->cfg->prog_size == 0);
2279 dir->off = commit.off;
2759 static int lfs_dir_rawseek(lfs_t *lfs, lfs_dir_t *dir, lfs_off_t off) {
2767 dir->pos = lfs_min(2, off);
2768 off -= dir->pos;
2771 dir->id = (off > 0 && lfs_pair_cmp(dir->head, lfs->root) == 0);
2773 while (off > 0) {
2787 int diff = lfs_min(dir->m.count - dir->id, off);
2790 off -= diff;
2815 static int lfs_ctz_index(lfs_t *lfs, lfs_off_t *off) {
2816 lfs_off_t size = *off;
2824 *off = size - b*i - 4*lfs_popc(i);
2831 lfs_size_t pos, lfs_block_t *block, lfs_off_t *off) {
2834 *off = 0;
2858 *off = pos;
2866 lfs_block_t *block, lfs_off_t *off) {
2886 *off = 0;
2917 *off = noff;
2949 *off = 4*skips;
3027 file->off = 0;
3145 file->cache.off = 0;
3220 for (lfs_off_t i = 0; i < file->off; i++) {
3225 NULL, &file->cache, file->off-i,
3234 &file->cache, &lfs->rcache, file->off-i,
3255 file->cache.off = lfs->pcache.off;
3274 file->off = file->pos;
3435 file->off == lfs->cfg->block_size) {
3439 file->pos, &file->block, &file->off);
3445 file->off = file->pos;
3452 lfs_size_t diff = lfs_min(nsize, lfs->cfg->block_size - file->off);
3458 file->off, data, diff);
3465 file->block, file->off, data, diff);
3472 file->off += diff;
3521 file->off == lfs->cfg->block_size) {
3541 &file->block, &file->off);
3548 file->off = file->pos;
3555 lfs_size_t diff = lfs_min(nsize, lfs->cfg->block_size - file->off);
3558 file->block, file->off, data, diff);
3577 file->off += diff;
3632 lfs_soff_t off, int whence) {
3636 npos = off;
3638 if ((lfs_soff_t)file->pos + off < 0) {
3641 npos = file->pos + off;
3644 lfs_soff_t res = lfs_file_rawsize(lfs, file) + off;
3675 && noff >= file->cache.off
3676 && noff < file->cache.off + file->cache.size) {
3678 file->off = noff;
3728 file->cache.off = 0;
3747 // need to set pos/block/off consistently so seeking back to
4269 lfs->free.off = 0;
4481 lfs->free.off = lfs->seed % lfs->block_count;
4699 disk->block, disk->off, &child, sizeof(child));
5121 lfs_off_t off;
5141 lfs_off_t off;
5154 lfs_off_t off;
5176 lfs_off_t off, void *buffer, lfs_size_t size) {
5180 block, off, buffer, size);
5184 lfs_off_t off, lfs_size_t size, uint32_t *crc) {
5187 int err = lfs1_bd_read(lfs, block, off+i, &c, 1);
5287 dir->off = sizeof(dir->d);
5301 while (dir->off + sizeof(entry->d) > (0x7fffffff & dir->d.size)-4) {
5303 entry->off = dir->off;
5312 dir->off = sizeof(dir->d);
5316 int err = lfs1_bd_read(lfs, dir->pair[0], dir->off,
5323 entry->off = dir->off;
5324 dir->off += lfs1_entry_size(entry);
5354 while (dir.off + sizeof(entry.d) <= (0x7fffffff & dir.d.size)-4) {
5355 err = lfs1_bd_read(lfs, dir.pair[0], dir.off,
5362 dir.off += lfs1_entry_size(&entry);
5454 lfs->free.off = 0;
5580 entry1.off + 4+entry1.d.elen+entry1.d.alen,
5657 for (lfs_off_t i = 0; i < dir2.off; i++) {
5660 NULL, &lfs->rcache, dir2.off,
5689 dir2.off = sizeof(dir2.rev);
6029 lfs_soff_t off, int whence) {
6035 (void*)lfs, (void*)file, off, whence);
6038 lfs_soff_t res = lfs_file_rawseek(lfs, file, off, whence);
6167 int lfs_dir_seek(lfs_t *lfs, lfs_dir_t *dir, lfs_off_t off) {
6173 (void*)lfs, (void*)dir, off);
6175 err = lfs_dir_rawseek(lfs, dir, off);