Lines Matching refs:cfg

32     memset(pcache->buffer, 0xff, lfs->cfg->cache_size);  in lfs_cache_zero()
41 if (block >= lfs->cfg->block_count || in lfs_bd_read()
42 off+size > lfs->cfg->block_size) { in lfs_bd_read()
43 if (block >= lfs->cfg->block_count) { in lfs_bd_read()
87 if (size >= hint && off % lfs->cfg->read_size == 0 && in lfs_bd_read()
88 size >= lfs->cfg->read_size) { in lfs_bd_read()
90 diff = lfs_aligndown(diff, lfs->cfg->read_size); in lfs_bd_read()
91 int err = lfs->cfg->read(lfs->cfg, block, off, data, diff); in lfs_bd_read()
103 LFS_ASSERT(block < lfs->cfg->block_count); 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()
109 lfs->cfg->block_size) in lfs_bd_read()
111 lfs->cfg->cache_size); in lfs_bd_read()
112 int err = lfs->cfg->read(lfs->cfg, rcache->block, in lfs_bd_read()
155 LFS_ASSERT(pcache->block < lfs->cfg->block_count); in lfs_bd_flush()
156 lfs_size_t diff = lfs_alignup(pcache->size, lfs->cfg->prog_size); in lfs_bd_flush()
157 int err = lfs->cfg->prog(lfs->cfg, pcache->block, in lfs_bd_flush()
194 err = lfs->cfg->sync(lfs->cfg); in lfs_bd_sync()
204 LFS_ASSERT(block == LFS_BLOCK_INLINE || block < lfs->cfg->block_count); in lfs_bd_prog()
205 LFS_ASSERT(off + size <= lfs->cfg->block_size); 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()
221 if (pcache->size == lfs->cfg->cache_size) { in lfs_bd_prog()
238 pcache->off = lfs_aligndown(off, lfs->cfg->prog_size); in lfs_bd_prog()
246 LFS_ASSERT(block < lfs->cfg->block_count); in lfs_bd_erase()
247 int err = lfs->cfg->erase(lfs->cfg, block); in lfs_bd_erase()
459 + lfs->cfg->block_count) % lfs->cfg->block_count; in lfs_alloc_lookahead()
469 lfs->free.ack = lfs->cfg->block_count; in lfs_alloc_ack()
476 lfs->free.off = lfs->seed % lfs->cfg->block_size; in lfs_alloc_reset()
495 *block = (lfs->free.off + off) % lfs->cfg->block_count; in lfs_alloc()
518 % lfs->cfg->block_count; in lfs_alloc()
519 lfs->free.size = lfs_min(8*lfs->cfg->lookahead_size, lfs->free.ack); in lfs_alloc()
523 memset(lfs->free.buffer, 0, lfs->cfg->lookahead_size); in lfs_alloc()
607 if (off+size > lfs->cfg->block_size) { 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()
652 lfs->cfg->cache_size); in lfs_dir_getread()
795 if (pair[0] >= lfs->cfg->block_count || pair[1] >= lfs->cfg->block_count) { in lfs_dir_fetchmatch()
841 NULL, &lfs->rcache, lfs->cfg->block_size, 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()
871 NULL, &lfs->rcache, lfs->cfg->block_size, in lfs_dir_fetchmatch()
912 NULL, &lfs->rcache, lfs->cfg->block_size, in lfs_dir_fetchmatch()
945 NULL, &lfs->rcache, lfs->cfg->block_size, in lfs_dir_fetchmatch()
1286 lfs->cfg->prog_size); in lfs_dir_commitcrc()
1516 size <= lfs_min(lfs->cfg->block_size - 36, in lfs_dir_compact()
1517 lfs_alignup(lfs->cfg->block_size/2, in lfs_dir_compact()
1518 lfs->cfg->prog_size))) { in lfs_dir_compact()
1532 if (err == LFS_ERR_NOSPC && size <= lfs->cfg->block_size - 36) { in lfs_dir_compact()
1549 if (lfs->cfg->block_cycles > 0 && in lfs_dir_compact()
1550 (dir->rev % ((lfs->cfg->block_cycles+1)|1) == 0)) { in lfs_dir_compact()
1561 if ((lfs_size_t)res < lfs->cfg->block_count/2) { in lfs_dir_compact()
1602 .end = lfs->cfg->block_size - 8, in lfs_dir_compact()
1693 LFS_ASSERT(commit.off % lfs->cfg->prog_size == 0); in lfs_dir_compact()
1752 f->ctz.size > lfs->cfg->cache_size) { in lfs_dir_commit()
1810 .end = lfs->cfg->block_size - 8, in lfs_dir_commit()
1866 LFS_ASSERT(commit.off % lfs->cfg->prog_size == 0); in lfs_dir_commit()
2221 lfs_off_t b = lfs->cfg->block_size - 2*4; in lfs_ctz_index()
2298 if (noff != lfs->cfg->block_size) { in lfs_ctz_extend()
2434 const struct lfs_file_config *cfg) { in lfs_file_opencfg() argument
2438 (void*)cfg, cfg->buffer, (void*)cfg->attrs, cfg->attr_count); in lfs_file_opencfg()
2451 file->cfg = cfg; in lfs_file_opencfg()
2539 for (unsigned i = 0; i < file->cfg->attr_count; i++) { in lfs_file_opencfg()
2543 LFS_MKTAG(LFS_TYPE_USERATTR + file->cfg->attrs[i].type, in lfs_file_opencfg()
2544 file->id, file->cfg->attrs[i].size), in lfs_file_opencfg()
2545 file->cfg->attrs[i].buffer); in lfs_file_opencfg()
2553 if (file->cfg->attrs[i].size > lfs->attr_max) { in lfs_file_opencfg()
2563 if (file->cfg->buffer) { in lfs_file_opencfg()
2564 file->cache.buffer = file->cfg->buffer; in lfs_file_opencfg()
2566 file->cache.buffer = lfs_malloc(lfs->cfg->cache_size); in lfs_file_opencfg()
2584 file->cache.size = lfs->cfg->cache_size; in lfs_file_opencfg()
2614 struct lfs_file_config *cfg; member
2625 if (p->lfs == lfs) return p->cfg; in find_cfg()
2635 struct lfs_file_config *cfg; in insert_into_cfg_list() local
2642 cfg = lfs_malloc(sizeof(struct lfs_file_config)); in insert_into_cfg_list()
2643 if (!cfg) { in insert_into_cfg_list()
2648 memset(cfg, 0, sizeof(struct lfs_file_config)); in insert_into_cfg_list()
2650 p->cfg = cfg; in insert_into_cfg_list()
2653 *out = cfg; in insert_into_cfg_list()
2685 if (p->cfg) lfs_free(p->cfg);
2691 struct lfs_file_config cfg; member
2704 struct lfs_file_config *cfg = find_cfg(lfs); in lfs_file_open() local
2705 if (!cfg) { in lfs_file_open()
2706 err = insert_into_cfg_list(lfs, &cfg); in lfs_file_open()
2709 err = lfs_file_opencfg(lfs, file, path, flags, cfg); in lfs_file_open()
2730 if (!file->cfg->buffer) { in lfs_file_close()
2792 memcpy(file->cache.buffer, lfs->pcache.buffer, lfs->cfg->cache_size); in lfs_file_relocate()
2947 file->cfg->attr_count), file->cfg->attrs})); in lfs_file_sync()
2992 file->off == lfs->cfg->block_size) { in lfs_file_read()
3010 lfs_size_t diff = lfs_min(nsize, lfs->cfg->block_size - file->off); in lfs_file_read()
3013 NULL, &file->cache, lfs->cfg->block_size, in lfs_file_read()
3023 NULL, &file->cache, lfs->cfg->block_size, in lfs_file_read()
3087 lfs->cfg->cache_size, lfs->cfg->block_size/8))) { in lfs_file_write()
3100 file->off == lfs->cfg->block_size) { in lfs_file_write()
3136 lfs_size_t diff = lfs_min(nsize, lfs->cfg->block_size - file->off); in lfs_file_write()
3397 return lfs->cfg->nty_gc(lfs->cfg, blk); in gc_cb()
3736 static int lfs_init(lfs_t *lfs, const struct lfs_config *cfg) { in lfs_init() argument
3737 lfs->cfg = cfg; in lfs_init()
3746 LFS_ASSERT(lfs->cfg->read_size != 0); in lfs_init()
3747 LFS_ASSERT(lfs->cfg->prog_size != 0); in lfs_init()
3748 LFS_ASSERT(lfs->cfg->cache_size != 0); in lfs_init()
3752 LFS_ASSERT(lfs->cfg->cache_size % lfs->cfg->read_size == 0); in lfs_init()
3753 LFS_ASSERT(lfs->cfg->cache_size % lfs->cfg->prog_size == 0); in lfs_init()
3754 LFS_ASSERT(lfs->cfg->block_size % lfs->cfg->cache_size == 0); in lfs_init()
3757 LFS_ASSERT(4*lfs_npw2(0xffffffff / (lfs->cfg->block_size-2*4)) in lfs_init()
3758 <= lfs->cfg->block_size); in lfs_init()
3766 LFS_ASSERT(lfs->cfg->block_cycles != 0); in lfs_init()
3770 if (lfs->cfg->read_buffer) { in lfs_init()
3771 lfs->rcache.buffer = lfs->cfg->read_buffer; in lfs_init()
3773 lfs->rcache.buffer = lfs_malloc(lfs->cfg->cache_size); in lfs_init()
3781 if (lfs->cfg->prog_buffer) { in lfs_init()
3782 lfs->pcache.buffer = lfs->cfg->prog_buffer; in lfs_init()
3784 lfs->pcache.buffer = lfs_malloc(lfs->cfg->cache_size); in lfs_init()
3796 LFS_ASSERT(lfs->cfg->lookahead_size > 0); in lfs_init()
3797 LFS_ASSERT(lfs->cfg->lookahead_size % 8 == 0); in lfs_init()
3798 if (lfs->cfg->lookahead_buffer) { in lfs_init()
3799 lfs->free.buffer = lfs->cfg->lookahead_buffer; in lfs_init()
3801 lfs->free.buffer = lfs_malloc(lfs->cfg->lookahead_size); in lfs_init()
3809 LFS_ASSERT(lfs->cfg->name_max <= LFS_NAME_MAX); in lfs_init()
3810 lfs->name_max = lfs->cfg->name_max; in lfs_init()
3815 LFS_ASSERT(lfs->cfg->file_max <= LFS_FILE_MAX); in lfs_init()
3816 lfs->file_max = lfs->cfg->file_max; in lfs_init()
3821 LFS_ASSERT(lfs->cfg->attr_max <= LFS_ATTR_MAX); in lfs_init()
3822 lfs->attr_max = lfs->cfg->attr_max; in lfs_init()
3847 if (!lfs->cfg->read_buffer) { in lfs_deinit()
3851 if (!lfs->cfg->prog_buffer) { in lfs_deinit()
3855 if (!lfs->cfg->lookahead_buffer) { in lfs_deinit()
3862 int lfs_format(lfs_t *lfs, const struct lfs_config *cfg) { in lfs_format() argument
3872 (void*)lfs, (void*)cfg, cfg->context, in lfs_format()
3873 (void*)(uintptr_t)cfg->read, (void*)(uintptr_t)cfg->prog, in lfs_format()
3874 (void*)(uintptr_t)cfg->erase, (void*)(uintptr_t)cfg->sync, in lfs_format()
3875 cfg->read_size, cfg->prog_size, cfg->block_size, cfg->block_count, in lfs_format()
3876 cfg->block_cycles, cfg->cache_size, cfg->lookahead_size, in lfs_format()
3877 cfg->read_buffer, cfg->prog_buffer, cfg->lookahead_buffer, in lfs_format()
3878 cfg->name_max, cfg->file_max, cfg->attr_max); in lfs_format()
3881 err = lfs_init(lfs, cfg); in lfs_format()
3888 memset(lfs->free.buffer, 0, lfs->cfg->lookahead_size); in lfs_format()
3890 lfs->free.size = lfs_min(8*lfs->cfg->lookahead_size, in lfs_format()
3891 lfs->cfg->block_count); in lfs_format()
3905 .block_size = lfs->cfg->block_size, in lfs_format()
3906 .block_count = lfs->cfg->block_count, in lfs_format()
3943 int lfs_mount(lfs_t *lfs, const struct lfs_config *cfg) { in lfs_mount() argument
3953 (void*)lfs, (void*)cfg, cfg->context, in lfs_mount()
3954 (void*)(uintptr_t)cfg->read, (void*)(uintptr_t)cfg->prog, in lfs_mount()
3955 (void*)(uintptr_t)cfg->erase, (void*)(uintptr_t)cfg->sync, in lfs_mount()
3956 cfg->read_size, cfg->prog_size, cfg->block_size, cfg->block_count, in lfs_mount()
3957 cfg->block_cycles, cfg->cache_size, cfg->lookahead_size, in lfs_mount()
3958 cfg->read_buffer, cfg->prog_buffer, cfg->lookahead_buffer, in lfs_mount()
3959 cfg->name_max, cfg->file_max, cfg->attr_max); in lfs_mount()
3960 int err = lfs_init(lfs, cfg); in lfs_mount()
3970 if (cycle >= lfs->cfg->block_count/2) { in lfs_mount()
4119 if (cycle >= lfs->cfg->block_count/2) { in lfs_fs_traverseraw()
4238 if (cycle >= lfs->cfg->block_count/2) { in lfs_fs_pred()
4271 &lfs->pcache, &lfs->rcache, lfs->cfg->block_size, in lfs_fs_parent_match()
4288 if (cycle >= lfs->cfg->block_count/2) { in lfs_fs_parent()
4578 if (!lfs || !lfs->cfg) return -1; in lfs_fs_cleanup()
4580 bitmap_len = (lfs->cfg->block_count + 7) / 8; in lfs_fs_cleanup()
4595 for (int i = 0; i < lfs->cfg->block_count; i++) { in lfs_fs_cleanup()
4598 err = lfs->cfg->erase(lfs->cfg, i); in lfs_fs_cleanup()
4786 (0x7fffffff & test.size) > lfs->cfg->block_size) { in lfs1_dir_fetch()
4967 const struct lfs_config *cfg) { in lfs1_mount() argument
4970 err = lfs_init(lfs, cfg); in lfs1_mount()
5034 int lfs_migrate(lfs_t *lfs, const struct lfs_config *cfg) { in lfs_migrate() argument
5044 (void*)lfs, (void*)cfg, cfg->context, in lfs_migrate()
5045 (void*)(uintptr_t)cfg->read, (void*)(uintptr_t)cfg->prog, in lfs_migrate()
5046 (void*)(uintptr_t)cfg->erase, (void*)(uintptr_t)cfg->sync, in lfs_migrate()
5047 cfg->read_size, cfg->prog_size, cfg->block_size, cfg->block_count, in lfs_migrate()
5048 cfg->block_cycles, cfg->cache_size, cfg->lookahead_size, in lfs_migrate()
5049 cfg->read_buffer, cfg->prog_buffer, cfg->lookahead_buffer, in lfs_migrate()
5050 cfg->name_max, cfg->file_max, cfg->attr_max); in lfs_migrate()
5052 int err = lfs1_mount(lfs, &lfs1, cfg); in lfs_migrate()
5238 .block_size = lfs->cfg->block_size, in lfs_migrate()
5239 .block_count = lfs->cfg->block_count, in lfs_migrate()