Lines Matching defs:block

2  * Emulating block device, wraps filebd and rambd while providing a bunch
29 // Note we can only modify a block if we have exclusive access to it (rc == 1)
32 static lfs_emubd_block_t *lfs_emubd_incblock(lfs_emubd_block_t *block) {
33 if (block) {
34 block->rc += 1;
36 return block;
39 static void lfs_emubd_decblock(lfs_emubd_block_t *block) {
40 if (block) {
41 block->rc -= 1;
42 if (block->rc == 0) {
43 free(block);
50 lfs_emubd_block_t **block) {
52 lfs_emubd_block_t *block_ = *block;
70 *block = nblock;
74 // no block? need to allocate
89 *block = nblock;
119 // allocate our block array, all blocks start as uninitialized
156 // if we're emulating erase values, we can keep a block around in
213 // block device API
215 int lfs_emubd_read(const struct lfs_config *cfg, lfs_block_t block,
219 (void*)cfg, block, off, buffer, size);
223 LFS_ASSERT(block < bd->cfg->erase_count);
228 // get the block
229 const lfs_emubd_block_t *b = bd->blocks[block];
231 // block bad?
265 int lfs_emubd_prog(const struct lfs_config *cfg, lfs_block_t block,
269 (void*)cfg, block, off, buffer, size);
273 LFS_ASSERT(block < bd->cfg->erase_count);
278 // get the block
279 lfs_emubd_block_t *b = lfs_emubd_mutblock(cfg, &bd->blocks[block]);
285 // block bad?
313 (off_t)block*bd->cfg->erase_size + (off_t)off,
356 int lfs_emubd_erase(const struct lfs_config *cfg, lfs_block_t block) {
358 (void*)cfg, block, ((lfs_emubd_t*)cfg->context)->cfg->erase_size);
362 LFS_ASSERT(block < bd->cfg->erase_count);
364 // get the block
365 lfs_emubd_block_t *b = lfs_emubd_mutblock(cfg, &bd->blocks[block]);
371 // block bad?
396 (off_t)block*bd->cfg->erase_size,
455 lfs_block_t block, uint32_t *crc) {
459 LFS_ASSERT(block < cfg->block_count);
461 // crc the block
463 const lfs_emubd_block_t *b = bd->blocks[block];
480 lfs_block_t block, uint32_t *crc) {
482 (void*)cfg, block, crc);
483 int err = lfs_emubd_rawcrc(cfg, block, crc);
554 lfs_block_t block) {
555 LFS_EMUBD_TRACE("lfs_emubd_wear(%p, %"PRIu32")", (void*)cfg, block);
558 // check if block is valid
559 LFS_ASSERT(block < bd->cfg->erase_count);
563 const lfs_emubd_block_t *b = bd->blocks[block];
575 lfs_block_t block, lfs_emubd_wear_t wear) {
577 (void*)cfg, block, wear);
580 // check if block is valid
581 LFS_ASSERT(block < bd->cfg->erase_count);
584 lfs_emubd_block_t *b = lfs_emubd_mutblock(cfg, &bd->blocks[block]);
620 // lazily copy over our block array