Lines Matching defs:block
2 * Testing block device, wraps filebd and rambd while providing a bunch
52 // create underlying block device
106 /// Internal mapping to block devices ///
107 static int lfs_testbd_rawread(const struct lfs_config *cfg, lfs_block_t block,
111 return lfs_filebd_read(cfg, block, off, buffer, size);
113 return lfs_rambd_read(cfg, block, off, buffer, size);
117 static int lfs_testbd_rawprog(const struct lfs_config *cfg, lfs_block_t block,
121 return lfs_filebd_prog(cfg, block, off, buffer, size);
123 return lfs_rambd_prog(cfg, block, off, buffer, size);
128 lfs_block_t block) {
131 return lfs_filebd_erase(cfg, block);
133 return lfs_rambd_erase(cfg, block);
146 /// block device API ///
147 int lfs_testbd_read(const struct lfs_config *cfg, lfs_block_t block,
151 (void*)cfg, block, off, buffer, size);
157 LFS_ASSERT(block < cfg->block_count);
159 // block bad?
160 if (bd->cfg->erase_cycles && bd->wear[block] >= bd->cfg->erase_cycles &&
167 int err = lfs_testbd_rawread(cfg, block, off, buffer, size);
172 int lfs_testbd_prog(const struct lfs_config *cfg, lfs_block_t block,
176 (void*)cfg, block, off, buffer, size);
182 LFS_ASSERT(block < cfg->block_count);
184 // block bad?
185 if (bd->cfg->erase_cycles && bd->wear[block] >= bd->cfg->erase_cycles) {
200 int err = lfs_testbd_rawprog(cfg, block, off, buffer, size);
221 int lfs_testbd_erase(const struct lfs_config *cfg, lfs_block_t block) {
222 LFS_TESTBD_TRACE("lfs_testbd_erase(%p, 0x%"PRIx32")", (void*)cfg, block);
226 LFS_ASSERT(block < cfg->block_count);
228 // block bad?
230 if (bd->wear[block] >= bd->cfg->erase_cycles) {
242 bd->wear[block] += 1;
247 int err = lfs_testbd_rawerase(cfg, block);
278 lfs_block_t block) {
279 LFS_TESTBD_TRACE("lfs_testbd_getwear(%p, %"PRIu32")", (void*)cfg, block);
282 // check if block is valid
284 LFS_ASSERT(block < cfg->block_count);
286 LFS_TESTBD_TRACE("lfs_testbd_getwear -> %"PRIu32, bd->wear[block]);
287 return bd->wear[block];
291 lfs_block_t block, lfs_testbd_wear_t wear) {
292 LFS_TESTBD_TRACE("lfs_testbd_setwear(%p, %"PRIu32")", (void*)cfg, block);
295 // check if block is valid
297 LFS_ASSERT(block < cfg->block_count);
299 bd->wear[block] = wear;