Lines Matching refs:bd

9 #include "bd/lfs_testbd.h"
31 lfs_testbd_t *bd = cfg->context;
32 bd->cfg = bdcfg;
35 bd->persist = path;
36 bd->power_cycles = bd->cfg->power_cycles;
38 if (bd->cfg->erase_cycles) {
39 if (bd->cfg->wear_buffer) {
40 bd->wear = bd->cfg->wear_buffer;
42 bd->wear = lfs_malloc(sizeof(lfs_testbd_wear_t)*cfg->block_count);
43 if (!bd->wear) {
49 memset(bd->wear, 0, sizeof(lfs_testbd_wear_t) * cfg->block_count);
53 if (bd->persist) {
54 bd->u.file.cfg = (struct lfs_filebd_config){
55 .erase_value = bd->cfg->erase_value,
57 int err = lfs_filebd_createcfg(cfg, path, &bd->u.file.cfg);
61 bd->u.ram.cfg = (struct lfs_rambd_config){
62 .erase_value = bd->cfg->erase_value,
63 .buffer = bd->cfg->buffer,
65 int err = lfs_rambd_createcfg(cfg, &bd->u.ram.cfg);
90 lfs_testbd_t *bd = cfg->context;
91 if (bd->cfg->erase_cycles && !bd->cfg->wear_buffer) {
92 lfs_free(bd->wear);
95 if (bd->persist) {
109 lfs_testbd_t *bd = cfg->context;
110 if (bd->persist) {
119 lfs_testbd_t *bd = cfg->context;
120 if (bd->persist) {
129 lfs_testbd_t *bd = cfg->context;
130 if (bd->persist) {
138 lfs_testbd_t *bd = cfg->context;
139 if (bd->persist) {
152 lfs_testbd_t *bd = cfg->context;
160 if (bd->cfg->erase_cycles && bd->wear[block] >= bd->cfg->erase_cycles &&
161 bd->cfg->badblock_behavior == LFS_TESTBD_BADBLOCK_READERROR) {
177 lfs_testbd_t *bd = cfg->context;
185 if (bd->cfg->erase_cycles && bd->wear[block] >= bd->cfg->erase_cycles) {
186 if (bd->cfg->badblock_behavior ==
190 } else if (bd->cfg->badblock_behavior ==
192 bd->cfg->badblock_behavior ==
207 if (bd->power_cycles > 0) {
208 bd->power_cycles -= 1;
209 if (bd->power_cycles == 0) {
223 lfs_testbd_t *bd = cfg->context;
229 if (bd->cfg->erase_cycles) {
230 if (bd->wear[block] >= bd->cfg->erase_cycles) {
231 if (bd->cfg->badblock_behavior ==
235 } else if (bd->cfg->badblock_behavior ==
242 bd->wear[block] += 1;
254 if (bd->power_cycles > 0) {
255 bd->power_cycles -= 1;
256 if (bd->power_cycles == 0) {
280 lfs_testbd_t *bd = cfg->context;
283 LFS_ASSERT(bd->cfg->erase_cycles);
286 LFS_TESTBD_TRACE("lfs_testbd_getwear -> %"PRIu32, bd->wear[block]);
287 return bd->wear[block];
293 lfs_testbd_t *bd = cfg->context;
296 LFS_ASSERT(bd->cfg->erase_cycles);
299 bd->wear[block] = wear;