Skip to content

Commit fbbfd27

Browse files
committed
subsys: fs: bm_zms: remove bm_zms_register
* Removes `bm_zms_register` and moves the event handler configuration into `bm_zms_fs_config`. * Renames the `bm_zms_cb_t` type to `bm_zms_evt_handler_t`. Signed-off-by: Mirko Covizzi <mirko.covizzi@nordicsemi.no>
1 parent 4f9795a commit fbbfd27

File tree

6 files changed

+34
-104
lines changed

6 files changed

+34
-104
lines changed

doc/nrf-bm/release_notes/release_notes_changelog.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,6 @@ Libraries
125125

126126
* Updated:
127127

128-
* The :c:func:`bm_zms_register` function to return ``-EFAULT`` instead of ``-EINVAL`` when the input parameters are ``NULL``.
129128
* The :c:func:`bm_zms_mount` function to return ``-EFAULT`` when the input parameter ``fs`` is ``NULL``.
130129
* The :c:func:`bm_zms_clear` function to return ``-EFAULT`` when the input parameter ``fs`` is ``NULL``.
131130
* The :c:func:`bm_zms_write` function to return ``-EFAULT`` when the input parameter ``fs`` is ``NULL``.
@@ -145,6 +144,8 @@ Libraries
145144
* The ``CONFIG_BM_ZMS_MAX_USERS`` Kconfig option.
146145
Now the library expects at most one callback for each instance of the struct :c:struct:`bm_zms_fs`.
147146
* The ``bm_zms_init_flags.cb_registred`` member as it was not used anymore.
147+
* The ``bm_zms_register`` function.
148+
The event handler configuration is now done with the struct :c:struct:`bm_zms_fs_config`.
148149

149150
* :ref:`lib_peer_manager` library:
150151

include/bm/fs/bm_zms.h

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ struct bm_zms_init_flags {
7676
*
7777
* @param evt The event.
7878
*/
79-
typedef void (*bm_zms_cb_t)(struct bm_zms_evt const *evt);
79+
typedef void (*bm_zms_evt_handler_t)(struct bm_zms_evt const *evt);
8080

8181
/** Zephyr Memory Storage file system structure */
8282
struct bm_zms_fs {
@@ -106,8 +106,8 @@ struct bm_zms_fs {
106106
struct bm_storage zms_bm_storage;
107107
/** Number of writes currently handled by the storage system. */
108108
atomic_t ongoing_writes;
109-
/** User callback for propagating events. */
110-
bm_zms_cb_t user_cb;
109+
/** Event handler for propagating events. */
110+
bm_zms_evt_handler_t evt_handler;
111111
#if CONFIG_BM_ZMS_LOOKUP_CACHE
112112
/** Lookup table used to cache ATE addresses of written IDs. */
113113
uint64_t lookup_cache[CONFIG_BM_ZMS_LOOKUP_CACHE_SIZE];
@@ -124,6 +124,8 @@ struct bm_zms_fs_config {
124124
uint32_t sector_size;
125125
/** Number of sectors in the file system. */
126126
uint32_t sector_count;
127+
/** Event handler for propagating events. */
128+
bm_zms_evt_handler_t evt_handler;
127129
};
128130

129131
/**
@@ -136,17 +138,6 @@ struct bm_zms_fs_config {
136138
* @{
137139
*/
138140

139-
/**
140-
* @brief Register a callback to BM_ZMS for handling events.
141-
*
142-
* @param fs Pointer to the file system structure.
143-
* @param cb Pointer to the event handler callback.
144-
*
145-
* @retval 0 on success.
146-
* @retval -EFAULT if @p fs or @p cb are NULL.
147-
*/
148-
int bm_zms_register(struct bm_zms_fs *fs, bm_zms_cb_t cb);
149-
150141
/**
151142
* @brief Mount a BM_ZMS file system.
152143
*

lib/bluetooth/peer_manager/modules/peer_data_storage.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -345,16 +345,11 @@ uint32_t pds_init(void)
345345
/* Check for re-initialization if debugging. */
346346
__ASSERT_NO_MSG(!module_initialized);
347347

348-
err = bm_zms_register(&fs, bm_zms_evt_handler);
349-
if (err) {
350-
LOG_ERR("Could not initialize NVM storage. bm_zms_register() returned %d.", err);
351-
return NRF_ERROR_INTERNAL;
352-
}
353-
354348
struct bm_zms_fs_config config = {
355349
.offset = PEER_MANAGER_PARTITION_OFFSET,
356350
.sector_size = CONFIG_PM_BM_ZMS_SECTOR_SIZE,
357351
.sector_count = (PEER_MANAGER_PARTITION_SIZE / CONFIG_PM_BM_ZMS_SECTOR_SIZE),
352+
.evt_handler = bm_zms_evt_handler,
358353
};
359354

360355
err = bm_zms_mount(&fs, &config);

samples/subsys/fs/bm_zms/src/main.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -154,16 +154,11 @@ int main(void)
154154
longarray[n] = n;
155155
}
156156

157-
rc = bm_zms_register(&fs, bm_zms_sample_handler);
158-
if (rc) {
159-
LOG_ERR("Something is wrong %u", rc);
160-
goto idle;
161-
}
162-
163157
struct bm_zms_fs_config config = {
164158
.offset = BM_ZMS_PARTITION_OFFSET,
165159
.sector_size = CONFIG_APP_BM_ZMS_SECTOR_SIZE,
166160
.sector_count = (BM_ZMS_PARTITION_SIZE / CONFIG_APP_BM_ZMS_SECTOR_SIZE),
161+
.evt_handler = bm_zms_sample_handler
167162
};
168163

169164
for (i = 0; i < CONFIG_APP_BM_ZMS_ITERATIONS_MAX; i++) {

subsys/fs/bm_zms/bm_zms.c

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,8 @@ static void event_prepare(struct bm_zms_evt *evt)
9494

9595
static void event_send(struct bm_zms_evt const *const evt, struct bm_zms_fs *fs)
9696
{
97-
if (fs->user_cb != NULL) {
98-
fs->user_cb(evt);
97+
if (fs->evt_handler != NULL) {
98+
fs->evt_handler(evt);
9999
}
100100
}
101101

@@ -185,7 +185,7 @@ static void queue_process(void)
185185
/* bm_zms needs to be reinitialized after clearing */
186186
cur_op.fs->init_flags.initialized = false;
187187
cur_op.fs->init_flags.initializing = false;
188-
cur_op.fs->user_cb = NULL;
188+
cur_op.fs->evt_handler = NULL;
189189
cur_op.op_completed = true;
190190
result = 0;
191191
} else {
@@ -320,17 +320,6 @@ static void zms_event_handler(struct bm_storage_evt *p_evt)
320320
}
321321
}
322322

323-
int bm_zms_register(struct bm_zms_fs *fs, bm_zms_cb_t cb)
324-
{
325-
if (!fs || !cb) {
326-
return -EFAULT;
327-
}
328-
329-
fs->user_cb = cb;
330-
331-
return 0;
332-
}
333-
334323
#ifdef CONFIG_BM_ZMS_LOOKUP_CACHE
335324

336325
static inline size_t zms_lookup_cache_pos(uint32_t id)
@@ -2009,6 +1998,7 @@ int bm_zms_mount(struct bm_zms_fs *fs, const struct bm_zms_fs_config *config)
20091998
fs->offset = config->offset;
20101999
fs->sector_size = config->sector_size;
20112000
fs->sector_count = config->sector_count;
2001+
fs->evt_handler = config->evt_handler;
20122002

20132003
/* Initialize BM Storage */
20142004

tests/subsys/fs/bm_zms/src/main.c

Lines changed: 21 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,26 @@ struct bm_zms_fixture {
3131
};
3232
static bool nvm_is_full;
3333

34+
void bm_zms_test_handler(struct bm_zms_evt const *evt)
35+
{
36+
if (evt->evt_type == BM_ZMS_EVT_MOUNT) {
37+
zassert_true(evt->result == 0, "bm_zms_mount call failure: %d",
38+
evt->result);
39+
} else if ((evt->evt_type == BM_ZMS_EVT_WRITE) || (evt->evt_type == BM_ZMS_EVT_DELETE)) {
40+
if (evt->result == 0) {
41+
return;
42+
}
43+
if (evt->result == -ENOSPC) {
44+
nvm_is_full = true;
45+
return;
46+
}
47+
printf("BM_ZMS Error received %d\n", evt->result);
48+
} else if (evt->evt_type == BM_ZMS_EVT_CLEAR) {
49+
zassert_true(evt->result == 0, "bm_zms_clear call failure: %d",
50+
evt->result);
51+
}
52+
}
53+
3454
static void *setup(void)
3555
{
3656
static struct bm_zms_fixture fixture;
@@ -39,6 +59,7 @@ static void *setup(void)
3959
fixture.config.offset = TEST_PARTITION_START;
4060
fixture.config.sector_size = SECTOR_SIZE;
4161
fixture.config.sector_count = TEST_SECTOR_COUNT;
62+
fixture.config.evt_handler = bm_zms_test_handler;
4263

4364
return &fixture;
4465
}
@@ -91,42 +112,8 @@ static void wait_for_init(struct bm_zms_fs *fs)
91112
}
92113
}
93114

94-
void bm_zms_test_handler(struct bm_zms_evt const *evt)
95-
{
96-
if (evt->evt_type == BM_ZMS_EVT_MOUNT) {
97-
zassert_true(evt->result == 0, "bm_zms_mount call failure: %d",
98-
evt->result);
99-
} else if ((evt->evt_type == BM_ZMS_EVT_WRITE) || (evt->evt_type == BM_ZMS_EVT_DELETE)) {
100-
if (evt->result == 0) {
101-
return;
102-
}
103-
if (evt->result == -ENOSPC) {
104-
nvm_is_full = true;
105-
return;
106-
}
107-
printf("BM_ZMS Error received %d\n", evt->result);
108-
} else if (evt->evt_type == BM_ZMS_EVT_CLEAR) {
109-
zassert_true(evt->result == 0, "bm_zms_clear call failure: %d",
110-
evt->result);
111-
}
112-
}
113-
114115
ZTEST_SUITE(bm_zms, NULL, setup, before, after, NULL);
115116

116-
ZTEST_F(bm_zms, test_bm_zms_register)
117-
{
118-
int err;
119-
120-
err = bm_zms_register(NULL, &bm_zms_test_handler);
121-
zassert_true(err == -EFAULT, "bm_zms_register unexpected failure");
122-
123-
err = bm_zms_register(&fixture->fs, NULL);
124-
zassert_true(err == -EFAULT, "bm_zms_register unexpected failure");
125-
126-
err = bm_zms_register(&fixture->fs, &bm_zms_test_handler);
127-
zassert_true(err == 0, "bm_zms_register call failure");
128-
}
129-
130117
ZTEST_F(bm_zms, test_bm_zms_mount)
131118
{
132119
int err;
@@ -166,9 +153,6 @@ ZTEST_F(bm_zms, test_bm_zms_write)
166153
{
167154
int err;
168155

169-
err = bm_zms_register(&fixture->fs, &bm_zms_test_handler);
170-
zassert_true(err == 0, "bm_zms_register call failure");
171-
172156
err = bm_zms_mount(&fixture->fs, &fixture->config);
173157
zassert_true(err == 0, "zms_mount call failure: %d", err);
174158
execute_long_pattern_write(TEST_DATA_ID, &fixture->fs);
@@ -186,9 +170,6 @@ ZTEST_F(bm_zms, test_zms_gc)
186170

187171
fixture->fs.sector_count = 2;
188172

189-
err = bm_zms_register(&fixture->fs, &bm_zms_test_handler);
190-
zassert_true(err == 0, "bm_zms_register call failure");
191-
192173
err = bm_zms_mount(&fixture->fs, &fixture->config);
193174
wait_for_init(&fixture->fs);
194175
zassert_true(err == 0, "zms_mount call failure: %d", err);
@@ -287,9 +268,6 @@ ZTEST_F(bm_zms, test_zms_gc_3sectors)
287268

288269
fixture->config.sector_count = 3;
289270

290-
err = bm_zms_register(&fixture->fs, &bm_zms_test_handler);
291-
zassert_true(err == 0, "bm_zms_register call failure err %x", err);
292-
293271
err = bm_zms_mount(&fixture->fs, &fixture->config);
294272
wait_for_init(&fixture->fs);
295273
zassert_true(err == 0, "bm_zms_mount call failure err %d", err);
@@ -363,9 +341,6 @@ ZTEST_F(bm_zms, test_zms_full_sector)
363341

364342
fixture->fs.sector_count = 3;
365343

366-
err = bm_zms_register(&fixture->fs, &bm_zms_test_handler);
367-
zassert_true(err == 0, "bm_zms_register call failure");
368-
369344
err = bm_zms_mount(&fixture->fs, &fixture->config);
370345
wait_for_init(&fixture->fs);
371346
zassert_true(err == 0, "bm_zms_mount call failure");
@@ -419,9 +394,6 @@ ZTEST_F(bm_zms, test_delete)
419394

420395
fixture->fs.sector_count = 3;
421396

422-
err = bm_zms_register(&fixture->fs, &bm_zms_test_handler);
423-
zassert_true(err == 0, "bm_zms_register call failure");
424-
425397
err = bm_zms_mount(&fixture->fs, &fixture->config);
426398
wait_for_init(&fixture->fs);
427399
zassert_true(err == 0, "bm_zms_mount call failure");
@@ -494,9 +466,6 @@ ZTEST_F(bm_zms, test_zms_cache_init)
494466

495467
/* Test cache initialization when the store is empty */
496468

497-
err = bm_zms_register(&fixture->fs, &bm_zms_test_handler);
498-
zassert_true(err == 0, "bm_zms_register call failure");
499-
500469
fixture->fs.sector_count = 3;
501470
err = bm_zms_mount(&fixture->fs, &fixture->config);
502471
wait_for_init(&fixture->fs);
@@ -543,9 +512,6 @@ ZTEST_F(bm_zms, test_zms_cache_collission)
543512
int err;
544513
uint16_t data;
545514

546-
err = bm_zms_register(&fixture->fs, &bm_zms_test_handler);
547-
zassert_true(err == 0, "bm_zms_register call failure");
548-
549515
fixture->fs.sector_count = 4;
550516
err = bm_zms_mount(&fixture->fs, &fixture->config);
551517
wait_for_init(&fixture->fs);
@@ -576,9 +542,6 @@ ZTEST_F(bm_zms, test_zms_cache_gc)
576542
size_t num;
577543
uint16_t data = 0;
578544

579-
err = bm_zms_register(&fixture->fs, &bm_zms_test_handler);
580-
zassert_true(err == 0, "bm_zms_register call failure");
581-
582545
fixture->config.sector_count = 3;
583546
err = bm_zms_mount(&fixture->fs, &fixture->config);
584547
wait_for_init(&fixture->fs);
@@ -633,9 +596,6 @@ ZTEST_F(bm_zms, test_zms_cache_hash_quality)
633596
uint32_t id;
634597
uint16_t data;
635598

636-
err = bm_zms_register(&fixture->fs, &bm_zms_test_handler);
637-
zassert_true(err == 0, "bm_zms_register call failure");
638-
639599
err = bm_zms_mount(&fixture->fs, &fixture->config);
640600
wait_for_init(&fixture->fs);
641601
zassert_true(err == 0, "bm_zms_mount call failure");
@@ -661,8 +621,6 @@ ZTEST_F(bm_zms, test_zms_cache_hash_quality)
661621
err = bm_zms_clear(&fixture->fs);
662622
zassert_true(err == 0, "bm_zms_clear call failure");
663623

664-
err = bm_zms_register(&fixture->fs, &bm_zms_test_handler);
665-
zassert_true(err == 0, "bm_zms_register call failure");
666624
err = bm_zms_mount(&fixture->fs, &fixture->config);
667625
wait_for_init(&fixture->fs);
668626
zassert_true(err == 0, "bm_zms_mount call failure");

0 commit comments

Comments
 (0)