Generated v2 prefixes
This commit is contained in:
+16
-28
@@ -13,12 +13,12 @@ int lfs2_rambd_createcfg(const struct lfs2_config *cfg,
|
||||
".read=%p, .prog=%p, .erase=%p, .sync=%p, "
|
||||
".read_size=%"PRIu32", .prog_size=%"PRIu32", "
|
||||
".block_size=%"PRIu32", .block_count=%"PRIu32"}, "
|
||||
"%p {.erase_value=%"PRId32", .buffer=%p})",
|
||||
"%p {.buffer=%p})",
|
||||
(void*)cfg, cfg->context,
|
||||
(void*)(uintptr_t)cfg->read, (void*)(uintptr_t)cfg->prog,
|
||||
(void*)(uintptr_t)cfg->erase, (void*)(uintptr_t)cfg->sync,
|
||||
cfg->read_size, cfg->prog_size, cfg->block_size, cfg->block_count,
|
||||
(void*)bdcfg, bdcfg->erase_value, bdcfg->buffer);
|
||||
(void*)bdcfg, bdcfg->buffer);
|
||||
lfs2_rambd_t *bd = cfg->context;
|
||||
bd->cfg = bdcfg;
|
||||
|
||||
@@ -33,13 +33,8 @@ int lfs2_rambd_createcfg(const struct lfs2_config *cfg,
|
||||
}
|
||||
}
|
||||
|
||||
// zero for reproducibility?
|
||||
if (bd->cfg->erase_value != -1) {
|
||||
memset(bd->buffer, bd->cfg->erase_value,
|
||||
cfg->block_size * cfg->block_count);
|
||||
} else {
|
||||
memset(bd->buffer, 0, cfg->block_size * cfg->block_count);
|
||||
}
|
||||
// zero for reproducibility
|
||||
memset(bd->buffer, 0, cfg->block_size * cfg->block_count);
|
||||
|
||||
LFS2_RAMBD_TRACE("lfs2_rambd_createcfg -> %d", 0);
|
||||
return 0;
|
||||
@@ -54,7 +49,7 @@ int lfs2_rambd_create(const struct lfs2_config *cfg) {
|
||||
(void*)(uintptr_t)cfg->read, (void*)(uintptr_t)cfg->prog,
|
||||
(void*)(uintptr_t)cfg->erase, (void*)(uintptr_t)cfg->sync,
|
||||
cfg->read_size, cfg->prog_size, cfg->block_size, cfg->block_count);
|
||||
static const struct lfs2_rambd_config defaults = {.erase_value=-1};
|
||||
static const struct lfs2_rambd_config defaults = {0};
|
||||
int err = lfs2_rambd_createcfg(cfg, &defaults);
|
||||
LFS2_RAMBD_TRACE("lfs2_rambd_create -> %d", err);
|
||||
return err;
|
||||
@@ -79,9 +74,10 @@ int lfs2_rambd_read(const struct lfs2_config *cfg, lfs2_block_t block,
|
||||
lfs2_rambd_t *bd = cfg->context;
|
||||
|
||||
// check if read is valid
|
||||
LFS2_ASSERT(block < cfg->block_count);
|
||||
LFS2_ASSERT(off % cfg->read_size == 0);
|
||||
LFS2_ASSERT(size % cfg->read_size == 0);
|
||||
LFS2_ASSERT(block < cfg->block_count);
|
||||
LFS2_ASSERT(off+size <= cfg->block_size);
|
||||
|
||||
// read data
|
||||
memcpy(buffer, &bd->buffer[block*cfg->block_size + off], size);
|
||||
@@ -98,17 +94,10 @@ int lfs2_rambd_prog(const struct lfs2_config *cfg, lfs2_block_t block,
|
||||
lfs2_rambd_t *bd = cfg->context;
|
||||
|
||||
// check if write is valid
|
||||
LFS2_ASSERT(block < cfg->block_count);
|
||||
LFS2_ASSERT(off % cfg->prog_size == 0);
|
||||
LFS2_ASSERT(size % cfg->prog_size == 0);
|
||||
LFS2_ASSERT(block < cfg->block_count);
|
||||
|
||||
// check that data was erased? only needed for testing
|
||||
if (bd->cfg->erase_value != -1) {
|
||||
for (lfs2_off_t i = 0; i < size; i++) {
|
||||
LFS2_ASSERT(bd->buffer[block*cfg->block_size + off + i] ==
|
||||
bd->cfg->erase_value);
|
||||
}
|
||||
}
|
||||
LFS2_ASSERT(off+size <= cfg->block_size);
|
||||
|
||||
// program data
|
||||
memcpy(&bd->buffer[block*cfg->block_size + off], buffer, size);
|
||||
@@ -118,17 +107,14 @@ int lfs2_rambd_prog(const struct lfs2_config *cfg, lfs2_block_t block,
|
||||
}
|
||||
|
||||
int lfs2_rambd_erase(const struct lfs2_config *cfg, lfs2_block_t block) {
|
||||
LFS2_RAMBD_TRACE("lfs2_rambd_erase(%p, 0x%"PRIx32")", (void*)cfg, block);
|
||||
lfs2_rambd_t *bd = cfg->context;
|
||||
LFS2_RAMBD_TRACE("lfs2_rambd_erase(%p, 0x%"PRIx32" (%"PRIu32"))",
|
||||
(void*)cfg, block, cfg->block_size);
|
||||
|
||||
// check if erase is valid
|
||||
LFS2_ASSERT(block < cfg->block_count);
|
||||
|
||||
// erase, only needed for testing
|
||||
if (bd->cfg->erase_value != -1) {
|
||||
memset(&bd->buffer[block*cfg->block_size],
|
||||
bd->cfg->erase_value, cfg->block_size);
|
||||
}
|
||||
// erase is a noop
|
||||
(void)block;
|
||||
|
||||
LFS2_RAMBD_TRACE("lfs2_rambd_erase -> %d", 0);
|
||||
return 0;
|
||||
@@ -136,8 +122,10 @@ int lfs2_rambd_erase(const struct lfs2_config *cfg, lfs2_block_t block) {
|
||||
|
||||
int lfs2_rambd_sync(const struct lfs2_config *cfg) {
|
||||
LFS2_RAMBD_TRACE("lfs2_rambd_sync(%p)", (void*)cfg);
|
||||
// sync does nothing because we aren't backed by anything real
|
||||
|
||||
// sync is a noop
|
||||
(void)cfg;
|
||||
|
||||
LFS2_RAMBD_TRACE("lfs2_rambd_sync -> %d", 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user