This is an automated email from the ASF dual-hosted git repository.
marko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
The following commit(s) were added to refs/heads/master by this push:
new 28ee22e fs/fcb2; use fcb2 prefix in public API
28ee22e is described below
commit 28ee22e1a4dafcf439438f7bd911452db78f3a5f
Author: Marko Kiiskila <[email protected]>
AuthorDate: Tue Sep 17 01:15:33 2019 +0300
fs/fcb2; use fcb2 prefix in public API
---
fs/fcb2/include/fcb/fcb.h | 199 -------------
fs/fcb2/include/fcb/fcb2.h | 316 +++++++++++++++++++++
fs/fcb2/selftest/src/fcb_test.c | 18 +-
fs/fcb2/selftest/src/fcb_test.h | 10 +-
fs/fcb2/selftest/src/testcases/fcb_test_append.c | 12 +-
.../selftest/src/testcases/fcb_test_append_fill.c | 21 +-
.../src/testcases/fcb_test_append_too_big.c | 20 +-
.../selftest/src/testcases/fcb_test_area_info.c | 36 ++-
.../selftest/src/testcases/fcb_test_empty_walk.c | 4 +-
fs/fcb2/selftest/src/testcases/fcb_test_getprev.c | 56 ++--
fs/fcb2/selftest/src/testcases/fcb_test_init.c | 19 +-
.../selftest/src/testcases/fcb_test_last_of_n.c | 24 +-
.../src/testcases/fcb_test_multiple_scratch.c | 30 +-
fs/fcb2/selftest/src/testcases/fcb_test_reset.c | 42 +--
fs/fcb2/selftest/src/testcases/fcb_test_rotate.c | 28 +-
fs/fcb2/src/fcb.c | 98 +++----
fs/fcb2/src/fcb_append.c | 115 ++++----
fs/fcb2/src/fcb_area_info.c | 16 +-
fs/fcb2/src/fcb_elem_info.c | 45 +--
fs/fcb2/src/fcb_getnext.c | 46 +--
fs/fcb2/src/fcb_getprev.c | 24 +-
fs/fcb2/src/fcb_priv.h | 58 ++--
fs/fcb2/src/fcb_rotate.c | 20 +-
fs/fcb2/src/fcb_walk.c | 20 +-
sys/config/include/config/config_fcb.h | 2 +
sys/config/include/config/config_fcb2.h | 4 +-
sys/config/include/config/config_generic_kv.h | 20 +-
sys/config/selftest-fcb2/src/conf_test_fcb2.c | 2 +-
sys/config/selftest-fcb2/src/conf_test_fcb2.h | 2 +-
.../src/testcases/config_test_compress_reset.c | 6 +-
sys/config/src/config_fcb2.c | 64 ++---
sys/config/src/config_init.c | 3 +-
sys/log/full/include/log/log_fcb.h | 32 ++-
.../src/log_test_fcb_bookmarks_util.c | 4 +-
.../src/log_test_fcb_watermarks_util.c | 2 +-
.../util/include/log_test_util/log_test_util.h | 8 +
sys/log/full/selftest/util/src/log_test_util.c | 7 +-
sys/log/full/src/log_fcb2.c | 116 ++++----
sys/log/full/src/log_fcb_bmark.c | 6 +
sys/reboot/src/log_reboot.c | 26 +-
40 files changed, 883 insertions(+), 698 deletions(-)
diff --git a/fs/fcb2/include/fcb/fcb.h b/fs/fcb2/include/fcb/fcb.h
deleted file mode 100644
index a0c3772..0000000
--- a/fs/fcb2/include/fcb/fcb.h
+++ /dev/null
@@ -1,199 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-#ifndef __SYS_FCB_H_
-#define __SYS_FCB_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \defgroup FCB Flash circular buffer.
- * @{
- */
-
-#include <inttypes.h>
-#include <limits.h>
-#include <assert.h>
-
-#include <syscfg/syscfg.h>
-#include <os/os_mutex.h>
-#include <flash_map/flash_map.h>
-
-#define FCB_MAX_LEN (CHAR_MAX | CHAR_MAX << 7) /* Max length of element */
-
-#define FCB_SECTOR_OLDEST UINT16_MAX
-
-struct fcb;
-
-/**
- * Entry location point to sector, and offset
- * within that sector.
- */
-struct fcb_entry {
- struct flash_sector_range *fe_range; /* ptr to area within fcb->f_ranges
*/
- uint16_t fe_sector; /* sector number in fcb flash */
- uint16_t fe_data_len; /* size of data area */
- uint32_t fe_data_off; /* start of data in sector */
- uint16_t fe_entry_num; /* entry number in sector */
-};
-
-/* Number of bytes needed for fcb_sector_entry on flash */
-#define FCB_ENTRY_SIZE 6
-#define FCB_CRC_LEN 2
-
-struct fcb {
- /* Caller of fcb_init fills this in */
- uint32_t f_magic; /* As placed on the disk */
- uint8_t f_version; /* Current version number of the data */
- uint8_t f_scratch_cnt; /* How many sectors should be kept empty */
- uint8_t f_range_cnt; /* Number of elements in range array */
- uint16_t f_sector_cnt; /* Number of sectors used by fcb */
- uint16_t f_oldest_sec; /* Index of oldest sector */
- struct flash_sector_range *f_ranges;
-
- /* Flash circular buffer internal state */
- struct os_mutex f_mtx; /* Locking for accessing the FCB data */
- struct fcb_entry f_active;
- uint16_t f_active_id;
-};
-
-/**
- * Error codes.
- */
-#define FCB_OK 0
-#define FCB_ERR_ARGS -1
-#define FCB_ERR_FLASH -2
-#define FCB_ERR_NOVAR -3
-#define FCB_ERR_NOSPACE -4
-#define FCB_ERR_NOMEM -5
-#define FCB_ERR_CRC -6
-#define FCB_ERR_MAGIC -7
-#define FCB_ERR_VERSION -8
-
-int fcb_init(struct fcb *fcb);
-
-/*
- * Initialize fcb for specific flash area
- *
- * Function initializes FCB structure with data taken from specified flash
- * area.
- * If FCB was not initialized before in this area, area will be erased.
- *
- * @param fcb Fcb to initialize
- * @param flash_area_id flash area for this fcb
- * @param magic User defined magic value that is stored in each
- * flash sector used by fcb
- * @param version version of fcb
- *
- */
-int fcb_init_flash_area(struct fcb *fcb, int flash_area_id, uint32_t magic,
- uint8_t version);
-
-/**
- * fcb_append() appends an entry to circular buffer. When writing the
- * contents for the entry, fcb_write() with fcb_entry filled by.
- * fcb_append(). When you're finished, call fcb_append_finish() with
- * loc as argument.
- */
-int fcb_append(struct fcb *fcb, uint16_t len, struct fcb_entry *loc);
-int fcb_write(struct fcb_entry *loc, uint16_t off, const void *buf,
- uint16_t len);
-int fcb_append_finish(struct fcb_entry *append_loc);
-
-/**
- * Walk over all log entries in FCB, or entries in a given flash_area.
- * cb gets called for every entry. If cb wants to stop the walk, it should
- * return non-zero value.
- *
- * Entry data can be read using fcb_read().
- */
-typedef int (*fcb_walk_cb)(struct fcb_entry *loc, void *arg);
-int fcb_walk(struct fcb *, int sector, fcb_walk_cb cb, void *cb_arg);
-int fcb_getnext(struct fcb *fcb, struct fcb_entry *loc);
-int fcb_getprev(struct fcb *fcb, struct fcb_entry *loc);
-int fcb_read(struct fcb_entry *loc, uint16_t off, void *buf, uint16_t len);
-
-/**
- * Erases the data from oldest sector.
- */
-int fcb_rotate(struct fcb *fcb);
-
-/**
- * Start using the scratch block.
- */
-int fcb_append_to_scratch(struct fcb *fcb);
-
-/**
- * How many sectors are unused.
- */
-int fcb_free_sector_cnt(struct fcb *fcb);
-
-/**
- * Whether FCB has any data.
- */
-int fcb_is_empty(struct fcb *fcb);
-
-/**
- * Element at offset *entries* from last position (backwards).
- */
-int
-fcb_offset_last_n(struct fcb *fcb, uint8_t entries,
- struct fcb_entry *last_n_entry);
-
-/**
- * Erase sector in FCB
- *
- * @param fcb FCB to use
- * @param sector sector number to erase 0..f_sector_cnt
- *
- * return 0 on success, error code on failure
- */
-int fcb_sector_erase(const struct fcb *fcb, int sector);
-
-/**
- * Get total size of FCB
- *
- * @param fcb FCB to use
- *
- * return FCB's size in bytes
- */
-int fcb_get_total_size(const struct fcb *fcb);
-
-/**
- * Clears FCB passed to it
- */
-int fcb_clear(struct fcb *fcb);
-
-/**
- * Usage report for a given FCB sector. Returns number of elements and the
- * number of bytes stored in them.
- */
-int fcb_area_info(struct fcb *fcb, int sector, int *elemsp, int *bytesp);
-
-#ifdef __cplusplus
-}
-
-/**
- * @} FCB
- */
-
-#endif
-
-#endif /* __SYS_FLASHVAR_H_ */
diff --git a/fs/fcb2/include/fcb/fcb2.h b/fs/fcb2/include/fcb/fcb2.h
new file mode 100644
index 0000000..da824a4
--- /dev/null
+++ b/fs/fcb2/include/fcb/fcb2.h
@@ -0,0 +1,316 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+#ifndef __SYS_FCB2_H_
+#define __SYS_FCB2_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \defgroup FCB2 Flash circular buffer.
+ * @{
+ */
+
+#include <inttypes.h>
+#include <limits.h>
+#include <assert.h>
+
+#include <syscfg/syscfg.h>
+#include <os/os_mutex.h>
+#include <flash_map/flash_map.h>
+
+#define FCB2_MAX_LEN (CHAR_MAX | CHAR_MAX << 7) /* Max length of element */
+
+#define FCB2_SECTOR_OLDEST UINT16_MAX
+
+struct fcb2;
+
+/**
+ * Entry location point to sector, and offset within that sector.
+ */
+struct fcb2_entry {
+ struct flash_sector_range *fe_range; /* ptr to area within fcb->f_ranges
*/
+ uint16_t fe_sector; /* sector number in fcb flash */
+ uint16_t fe_data_len; /* size of data area */
+ uint32_t fe_data_off; /* start of data in sector */
+ uint16_t fe_entry_num; /* entry number in sector */
+};
+
+/* Number of bytes needed for fcb_sector_entry on flash */
+#define FCB2_ENTRY_SIZE 6
+#define FCB2_CRC_LEN 2
+
+/**
+ * State structure for flash circular buffer version2.
+ */
+struct fcb2 {
+ /* Caller of fcb2_init() fills this in */
+ uint32_t f_magic; /* As placed on the disk */
+ uint8_t f_version; /* Current version number of the data */
+ uint8_t f_scratch_cnt; /* How many sectors should be kept empty */
+ uint8_t f_range_cnt; /* Number of elements in range array */
+ uint16_t f_sector_cnt; /* Number of sectors used by fcb */
+ uint16_t f_oldest_sec; /* Index of oldest sector */
+ struct flash_sector_range *f_ranges;
+
+ /* Flash circular buffer internal state */
+ struct os_mutex f_mtx; /* Locking for accessing the FCB data */
+ struct fcb2_entry f_active;
+ uint16_t f_active_id;
+};
+
+/**
+ * Error codes.
+ */
+#define FCB2_OK 0
+#define FCB2_ERR_ARGS -1
+#define FCB2_ERR_FLASH -2
+#define FCB2_ERR_NOVAR -3
+#define FCB2_ERR_NOSPACE -4
+#define FCB2_ERR_NOMEM -5
+#define FCB2_ERR_CRC -6
+#define FCB2_ERR_MAGIC -7
+#define FCB2_ERR_VERSION -8
+
+
+/**
+ *
+ * Initialize FCB for use.
+ *
+ * @param fcb Fcb to initialize. User specific fields of structure
+ * must be set before calling this.
+ *
+ * @return 0 on success. Otherwise one of FCB2_XXX error codes.
+ */
+int fcb2_init(struct fcb2 *fcb);
+
+/**
+ * Initialize fcb for specific flash area
+ *
+ * Function initializes FCB structure with data taken from specified flash
+ * area.
+ * If FCB was not initialized before in this area, area will be erased.
+ *
+ * @param fcb Fcb to initialize
+ * @param flash_area_id flash area for this fcb
+ * @param magic User defined magic value that is stored in each
+ * flash sector used by fcb
+ * @param version version of fcb
+ *
+ * @return 0 on success. Otherwise one of FCB2_XXX error codes.
+ */
+int fcb2_init_flash_area(struct fcb2 *fcb, int flash_area_id, uint32_t magic,
+ uint8_t version);
+
+/**
+ * fcb2_append() reserves space for an entry within FCB. When writing the
+ * contents for the entry, fcb2_write() with fcb_entry filled by.
+ * fcb2_append(). When you're finished, call fcb2_append_finish() with
+ * loc as argument.
+ *
+ * @param fcb FCB this entry is being appended to.
+ * @param len Size of the entry being added
+ * @param loc Will be filled with fcb2_entry where data will be
+ * written to
+ *
+ * @return 0 on success. Otherwise one of FCB2_XXX error codes.
+ */
+int fcb2_append(struct fcb2 *fcb, uint16_t len, struct fcb2_entry *loc);
+
+/**
+ * Write entry data to location indicated by loc. User must've called
+ * fcb2_append() before adding data to entry to populate loc. Should not
+ * be called after fcb2_append_finish() for this entry has been called.
+ *
+ * @param loc Where this entry will be written
+ * @param off Offset within entry area where to write the data
+ * @param buf Pointer to data being written
+ * @param len Number of bytes to write
+ *
+ * @return 0 on success. Otherwise one of FCB2_XXX error codes.
+ */
+int fcb2_write(struct fcb2_entry *loc, uint16_t off, const void *buf,
+ uint16_t len);
+
+/**
+ * Finalize writing data for entry.
+ *
+ * @param append_loc Location of the entry
+ *
+ * @return 0 on success. Otherwise one of FCB2_XXX error codes.
+ */
+int fcb2_append_finish(struct fcb2_entry *append_loc);
+
+/**
+ * Callback routine getting called when walking through FCB entries.
+ * Entry data can be read by using fcb2_read().
+ *
+ * @param loc Location of the entry
+ * @param arg void * which was passed as arg when calling
fcb2_walk()
+ *
+ * @return 0 if walk should continue, non-zero if walk should stop
+ */
+typedef int (*fcb2_walk_cb)(struct fcb2_entry *loc, void *arg);
+
+/**
+ * Iterate over all entries within FCB. Caller passes callback function to
+ * call for every valid entry. Entries are walked from oldest to newest.
+ *
+ * @param fcb FCB to iterate
+ * @param sector Sector ID where walk should start.
+ * Use FCB2_SECTOR_OLDEST to start from beginning.
+ * @param cb Callback to call for the entries.
+ * @param cb_arg void * to pass to callback.
+ *
+ * @return 0 on success. Otherwise one of FCB2_XXX error codes.
+ */
+int fcb2_walk(struct fcb2 *fcb, int sector, fcb2_walk_cb cb, void *cb_arg);
+
+/**
+ * Walk through entries within FCB from oldest to newest.
+ * fcb_getnext() finds the next valid entry forward from loc, and fills in
+ * the location of that entry.
+ *
+ * @param fcb FCB to walk
+ * @param loc FCB entry location. To get the oldest entry
+ * set loc->fe_range to NULL, and fe_entry_num to 0.
+ *
+ * @return 0 on success. Otherwise one of FCB2_XXX error codes.
+ */
+int fcb2_getnext(struct fcb2 *fcb, struct fcb2_entry *loc);
+
+/**
+ * Walk through entries within FCB from newest to oldest.
+ * fcb_getprev() finds the previous valid entry backwards from loc, and fills
in
+ * the location of that entry.
+ *
+ * @param fcb FCB to walk
+ * @param loc FCB entry location. To get the newest entry
+ * set loc->fe_range to NULL.
+ *
+ * @return 0 on success. Otherwise one of FCB2_XXX error codes.
+ */
+int fcb2_getprev(struct fcb2 *fcb, struct fcb2_entry *loc);
+
+/**
+ * Read entry data belonging pointed by loc.
+ *
+ * @param loc FCB entry to read
+ * @param off Offset within entry area
+ * @param buf Pointer to area where to populate the data
+ * @param len Number of bytes to read.
+ *
+ * @return 0 on success. Otherwise one of FCB2_XXX error codes.
+ */
+int fcb2_read(struct fcb2_entry *loc, uint16_t off, void *buf, uint16_t len);
+
+/**
+ * Erases the data from oldest sector.
+ *
+ * @param fcb FCB where to erase the sector
+ *
+ * @return 0 on success. Otherwise one of FCB2_XXX error codes.
+ */
+int fcb2_rotate(struct fcb2 *fcb);
+
+/**
+ * Start using the scratch block.
+ *
+ * @param fcb
+ *
+ * @return 0 on success. Otherwise one of FCB2_XXX error codes.
+ */
+int fcb2_append_to_scratch(struct fcb2 *fcb);
+
+/**
+ * How many sectors are unused.
+ */
+int fcb2_free_sector_cnt(struct fcb2 *fcb);
+
+/**
+ * Whether FCB has any data.
+ *
+ * @param fcb FCB to inspect
+ *
+ * @return 1 if area is empty, 0 if not
+ */
+int fcb2_is_empty(struct fcb2 *fcb);
+
+/**
+ * Element at offset *entries* from last position (backwards).
+ *
+ * @param fcb FCB to inspect
+ * @param entries How many entries to look backwards
+ * @param last_n_entry location of entry being returned
+ *
+ * @return 0 on success. Otherwise one of FCB2_XXX error codes.
+ */
+int fcb2_offset_last_n(struct fcb2 *fcb, uint8_t entries,
+ struct fcb2_entry *last_n_entry);
+
+/**
+ * Erase sector in FCB
+ *
+ * @param fcb FCB to use
+ * @param sector sector number to erase 0..f_sector_cnt
+ *
+ * return 0 on success, error code on failure
+ */
+int fcb2_sector_erase(const struct fcb2 *fcb, int sector);
+
+/**
+ * Get total size of FCB
+ *
+ * @param fcb FCB to inspect
+ *
+ * @return FCB's size in bytes
+ */
+int fcb2_get_total_size(const struct fcb2 *fcb);
+
+/**
+ * Empty the FCB
+ *
+ * @param fcb FCB to clear
+ *
+ * @return 0 on success. Otherwise one of FCB2_XXX error codes.
+ */
+int fcb2_clear(struct fcb2 *fcb);
+
+/**
+ * Usage report for a given FCB sector. Returns number of elements and the
+ * number of bytes stored in them.
+ *
+ * @param fcb FCB to inspect
+ * @param sector Sector to inspect within FCB
+ * @param elemsp Pointer where number of elements should be stored
+ * @param bytesp Pointer where number of bytes used should be stored
+ */
+int fcb2_area_info(struct fcb2 *fcb, int sector, int *elemsp, int *bytesp);
+
+#ifdef __cplusplus
+}
+
+/**
+ * @} FCB2
+ */
+
+#endif
+
+#endif /* __SYS_FLASHVAR_H_ */
diff --git a/fs/fcb2/selftest/src/fcb_test.c b/fs/fcb2/selftest/src/fcb_test.c
index 0a29f55..c384e82 100644
--- a/fs/fcb2/selftest/src/fcb_test.c
+++ b/fs/fcb2/selftest/src/fcb_test.c
@@ -23,14 +23,14 @@
#include "os/mynewt.h"
#include "testutil/testutil.h"
-#include "fcb/fcb.h"
-#include "fcb/../../src/fcb_priv.h"
+#include "fcb/fcb2.h"
+#include "fcb_priv.h"
#include "fcb_test.h"
#include "flash_map/flash_map.h"
-struct fcb test_fcb;
+struct fcb2 test_fcb;
struct flash_sector_range test_fcb_ranges[] = {
[0] = {
@@ -62,7 +62,7 @@ fcb_test_wipe(void)
}
int
-fcb_test_empty_walk_cb(struct fcb_entry *loc, void *arg)
+fcb_test_empty_walk_cb(struct fcb2_entry *loc, void *arg)
{
TEST_ASSERT(0);
return 0;
@@ -75,7 +75,7 @@ fcb_test_append_data(int msg_len, int off)
}
int
-fcb_test_data_walk_cb(struct fcb_entry *loc, void *arg)
+fcb_test_data_walk_cb(struct fcb2_entry *loc, void *arg)
{
uint16_t len;
uint8_t test_data[128];
@@ -87,7 +87,7 @@ fcb_test_data_walk_cb(struct fcb_entry *loc, void *arg)
TEST_ASSERT(len == *var_cnt);
- rc = fcb_read(loc, 0, test_data, len);
+ rc = fcb2_read(loc, 0, test_data, len);
TEST_ASSERT(rc == 0);
for (i = 0; i < len; i++) {
@@ -98,7 +98,7 @@ fcb_test_data_walk_cb(struct fcb_entry *loc, void *arg)
}
int
-fcb_test_cnt_elems_cb(struct fcb_entry *loc, void *arg)
+fcb_test_cnt_elems_cb(struct fcb2_entry *loc, void *arg)
{
struct append_arg *aa = (struct append_arg *)arg;
int idx;
@@ -111,7 +111,7 @@ fcb_test_cnt_elems_cb(struct fcb_entry *loc, void *arg)
void
fcb_tc_pretest(uint8_t sector_count)
{
- struct fcb *fcb;
+ struct fcb2 *fcb;
int rc = 0;
fcb_test_wipe();
@@ -124,7 +124,7 @@ fcb_tc_pretest(uint8_t sector_count)
test_fcb_ranges[0].fsr_flash_area.fa_size =
test_fcb_ranges[0].fsr_sector_size * sector_count;
- rc = fcb_init(fcb);
+ rc = fcb2_init(fcb);
if (rc != 0) {
printf("fcb_tc_pretest rc == %x, %d\n", rc, rc);
TEST_ASSERT(rc == 0);
diff --git a/fs/fcb2/selftest/src/fcb_test.h b/fs/fcb2/selftest/src/fcb_test.h
index 670e8bd..acc8242 100644
--- a/fs/fcb2/selftest/src/fcb_test.h
+++ b/fs/fcb2/selftest/src/fcb_test.h
@@ -25,14 +25,14 @@
#include "os/mynewt.h"
#include "testutil/testutil.h"
-#include "fcb/fcb.h"
+#include "fcb/fcb2.h"
#include "fcb_priv.h"
#ifdef __cplusplus
extern "C" {
#endif
-extern struct fcb test_fcb;
+extern struct fcb2 test_fcb;
extern struct flash_sector_range test_fcb_ranges[];
@@ -41,10 +41,10 @@ struct append_arg {
};
void fcb_test_wipe(void);
-int fcb_test_empty_walk_cb(struct fcb_entry *loc, void *arg);
+int fcb_test_empty_walk_cb(struct fcb2_entry *loc, void *arg);
uint8_t fcb_test_append_data(int msg_len, int off);
-int fcb_test_data_walk_cb(struct fcb_entry *loc, void *arg);
-int fcb_test_cnt_elems_cb(struct fcb_entry *loc, void *arg);
+int fcb_test_data_walk_cb(struct fcb2_entry *loc, void *arg);
+int fcb_test_cnt_elems_cb(struct fcb2_entry *loc, void *arg);
void fcb_tc_pretest(uint8_t sector_count);
#ifdef __cplusplus
diff --git a/fs/fcb2/selftest/src/testcases/fcb_test_append.c
b/fs/fcb2/selftest/src/testcases/fcb_test_append.c
index 0e283e6..a1131f6 100644
--- a/fs/fcb2/selftest/src/testcases/fcb_test_append.c
+++ b/fs/fcb2/selftest/src/testcases/fcb_test_append.c
@@ -21,8 +21,8 @@
TEST_CASE_SELF(fcb_test_append)
{
int rc;
- struct fcb *fcb;
- struct fcb_entry loc;
+ struct fcb2 *fcb;
+ struct fcb2_entry loc;
uint8_t test_data[128];
int i;
int j;
@@ -36,16 +36,16 @@ TEST_CASE_SELF(fcb_test_append)
for (j = 0; j < i; j++) {
test_data[j] = fcb_test_append_data(i, j);
}
- rc = fcb_append(fcb, i, &loc);
+ rc = fcb2_append(fcb, i, &loc);
TEST_ASSERT_FATAL(rc == 0);
- rc = fcb_write(&loc, 0, test_data, i);
+ rc = fcb2_write(&loc, 0, test_data, i);
TEST_ASSERT(rc == 0);
- rc = fcb_append_finish(&loc);
+ rc = fcb2_append_finish(&loc);
TEST_ASSERT(rc == 0);
}
var_cnt = 1;
- rc = fcb_walk(fcb, 0, fcb_test_data_walk_cb, &var_cnt);
+ rc = fcb2_walk(fcb, 0, fcb_test_data_walk_cb, &var_cnt);
TEST_ASSERT(rc == 0);
TEST_ASSERT(var_cnt == sizeof(test_data));
}
diff --git a/fs/fcb2/selftest/src/testcases/fcb_test_append_fill.c
b/fs/fcb2/selftest/src/testcases/fcb_test_append_fill.c
index e0cad99..7ca56cd 100644
--- a/fs/fcb2/selftest/src/testcases/fcb_test_append_fill.c
+++ b/fs/fcb2/selftest/src/testcases/fcb_test_append_fill.c
@@ -20,10 +20,10 @@
TEST_CASE_SELF(fcb_test_append_fill)
{
- struct fcb *fcb;
+ struct fcb2 *fcb;
int rc;
int i;
- struct fcb_entry loc;
+ struct fcb2_entry loc;
uint8_t test_data[128];
int elem_cnts[2] = {0, 0};
int aa_together_cnts[2];
@@ -44,8 +44,8 @@ TEST_CASE_SELF(fcb_test_append_fill)
}
while (1) {
- rc = fcb_append(fcb, sizeof(test_data), &loc);
- if (rc == FCB_ERR_NOSPACE) {
+ rc = fcb2_append(fcb, sizeof(test_data), &loc);
+ if (rc == FCB2_ERR_NOSPACE) {
break;
}
if (loc.fe_sector == 0) {
@@ -56,29 +56,26 @@ TEST_CASE_SELF(fcb_test_append_fill)
TEST_ASSERT(0);
}
- rc = fcb_write(&loc, 0, test_data, sizeof(test_data));
+ rc = fcb2_write(&loc, 0, test_data, sizeof(test_data));
TEST_ASSERT(rc == 0);
- rc = fcb_append_finish(&loc);
+ rc = fcb2_append_finish(&loc);
TEST_ASSERT(rc == 0);
}
TEST_ASSERT(elem_cnts[0] > 0);
TEST_ASSERT(elem_cnts[0] == elem_cnts[1]);
memset(&aa_together_cnts, 0, sizeof(aa_together_cnts));
- rc = fcb_walk(fcb, FCB_SECTOR_OLDEST, fcb_test_cnt_elems_cb, &aa_together);
+ rc = fcb2_walk(fcb, FCB2_SECTOR_OLDEST, fcb_test_cnt_elems_cb,
&aa_together);
TEST_ASSERT(rc == 0);
TEST_ASSERT(aa_together.elem_cnts[0] == elem_cnts[0]);
TEST_ASSERT(aa_together.elem_cnts[1] == elem_cnts[1]);
memset(&aa_separate_cnts, 0, sizeof(aa_separate_cnts));
- rc = fcb_walk(fcb, 0, fcb_test_cnt_elems_cb,
- &aa_separate);
+ rc = fcb2_walk(fcb, 0, fcb_test_cnt_elems_cb, &aa_separate);
TEST_ASSERT(rc == 0);
- rc = fcb_walk(fcb, 1, fcb_test_cnt_elems_cb,
- &aa_separate);
+ rc = fcb2_walk(fcb, 1, fcb_test_cnt_elems_cb, &aa_separate);
TEST_ASSERT(rc == 0);
TEST_ASSERT(aa_separate.elem_cnts[0] == elem_cnts[0]);
TEST_ASSERT(aa_separate.elem_cnts[1] == elem_cnts[1]);
-
}
diff --git a/fs/fcb2/selftest/src/testcases/fcb_test_append_too_big.c
b/fs/fcb2/selftest/src/testcases/fcb_test_append_too_big.c
index 6556601..860d62d 100644
--- a/fs/fcb2/selftest/src/testcases/fcb_test_append_too_big.c
+++ b/fs/fcb2/selftest/src/testcases/fcb_test_append_too_big.c
@@ -20,10 +20,10 @@
TEST_CASE_SELF(fcb_test_append_too_big)
{
- struct fcb *fcb;
+ struct fcb2 *fcb;
int rc;
int len;
- struct fcb_entry elem_loc;
+ struct fcb2_entry elem_loc;
fcb_tc_pretest(2);
@@ -35,26 +35,26 @@ TEST_CASE_SELF(fcb_test_append_too_big)
*/
len = fcb->f_active.fe_range->fsr_sector_size;
- rc = fcb_append(fcb, len, &elem_loc);
+ rc = fcb2_append(fcb, len, &elem_loc);
TEST_ASSERT(rc != 0);
len--;
- rc = fcb_append(fcb, len, &elem_loc);
+ rc = fcb2_append(fcb, len, &elem_loc);
TEST_ASSERT(rc != 0);
- len -= sizeof(struct fcb_disk_area);
- rc = fcb_append(fcb, len, &elem_loc);
+ len -= sizeof(struct fcb2_disk_area);
+ rc = fcb2_append(fcb, len, &elem_loc);
TEST_ASSERT(rc != 0);
len = fcb->f_active.fe_range->fsr_sector_size -
- (sizeof(struct fcb_disk_area) + 2 + 6);
- rc = fcb_append(fcb, len, &elem_loc);
+ (sizeof(struct fcb2_disk_area) + 2 + 6);
+ rc = fcb2_append(fcb, len, &elem_loc);
TEST_ASSERT(rc == 0);
- rc = fcb_append_finish(&elem_loc);
+ rc = fcb2_append_finish(&elem_loc);
TEST_ASSERT(rc == 0);
- rc = fcb_elem_info(&elem_loc);
+ rc = fcb2_elem_info(&elem_loc);
TEST_ASSERT(rc == 0);
TEST_ASSERT(elem_loc.fe_data_len == len);
}
diff --git a/fs/fcb2/selftest/src/testcases/fcb_test_area_info.c
b/fs/fcb2/selftest/src/testcases/fcb_test_area_info.c
index 9bfee02..5ed6036 100644
--- a/fs/fcb2/selftest/src/testcases/fcb_test_area_info.c
+++ b/fs/fcb2/selftest/src/testcases/fcb_test_area_info.c
@@ -20,10 +20,10 @@
TEST_CASE_SELF(fcb_test_area_info)
{
- struct fcb *fcb;
+ struct fcb2 *fcb;
int rc;
int i;
- struct fcb_entry loc;
+ struct fcb2_entry loc;
uint8_t test_data[128];
int elem_cnts[2] = {0, 0};
int area_elems[2];
@@ -34,21 +34,20 @@ TEST_CASE_SELF(fcb_test_area_info)
fcb = &test_fcb;
/* check that sector outside of range fails */
- rc = fcb_area_info(fcb, fcb->f_sector_cnt, area_elems, area_bytes);
- TEST_ASSERT(rc == FCB_ERR_ARGS);
- rc = fcb_area_info(fcb, fcb->f_sector_cnt + 1, area_elems, area_bytes);
- TEST_ASSERT(rc == FCB_ERR_ARGS);
+ rc = fcb2_area_info(fcb, fcb->f_sector_cnt, area_elems, area_bytes);
+ TEST_ASSERT(rc == FCB2_ERR_ARGS);
+ rc = fcb2_area_info(fcb, fcb->f_sector_cnt + 1, area_elems, area_bytes);
+ TEST_ASSERT(rc == FCB2_ERR_ARGS);
/* output arguments are optional */
- rc = fcb_area_info(fcb, 0, NULL, NULL);
+ rc = fcb2_area_info(fcb, 0, NULL, NULL);
TEST_ASSERT(rc == 0);
/*
* Should be empty, with elem count and byte count zero.
*/
for (i = 0; i < 2; i++) {
- rc = fcb_area_info(fcb, 0, &area_elems[i],
- &area_bytes[i]);
+ rc = fcb2_area_info(fcb, 0, &area_elems[i], &area_bytes[i]);
TEST_ASSERT(rc == 0);
TEST_ASSERT(area_elems[i] == 0);
TEST_ASSERT(area_bytes[i] == 0);
@@ -58,8 +57,8 @@ TEST_CASE_SELF(fcb_test_area_info)
* Fill up the areas, make sure that reporting is ok.
*/
while (1) {
- rc = fcb_append(fcb, sizeof(test_data), &loc);
- if (rc == FCB_ERR_NOSPACE) {
+ rc = fcb2_append(fcb, sizeof(test_data), &loc);
+ if (rc == FCB2_ERR_NOSPACE) {
break;
}
if (loc.fe_sector == 0) {
@@ -70,15 +69,14 @@ TEST_CASE_SELF(fcb_test_area_info)
TEST_ASSERT(0);
}
- rc = fcb_write(&loc, 0, test_data, sizeof(test_data));
+ rc = fcb2_write(&loc, 0, test_data, sizeof(test_data));
TEST_ASSERT(rc == 0);
- rc = fcb_append_finish(&loc);
+ rc = fcb2_append_finish(&loc);
TEST_ASSERT(rc == 0);
for (i = 0; i < 2; i++) {
- rc = fcb_area_info(fcb, i, &area_elems[i],
- &area_bytes[i]);
+ rc = fcb2_area_info(fcb, i, &area_elems[i], &area_bytes[i]);
TEST_ASSERT(rc == 0);
TEST_ASSERT(area_elems[i] == elem_cnts[i]);
TEST_ASSERT(area_bytes[i] == elem_cnts[i] * sizeof(test_data));
@@ -88,12 +86,12 @@ TEST_CASE_SELF(fcb_test_area_info)
/*
* Wipe out the oldest, should report zeroes for that area now.
*/
- rc = fcb_rotate(fcb);
+ rc = fcb2_rotate(fcb);
TEST_ASSERT(rc == 0);
- rc = fcb_area_info(fcb, 0, &area_elems[0], &area_bytes[0]);
+ rc = fcb2_area_info(fcb, 0, &area_elems[0], &area_bytes[0]);
TEST_ASSERT(rc == 0);
- rc = fcb_area_info(fcb, 1, &area_elems[1], &area_bytes[1]);
+ rc = fcb2_area_info(fcb, 1, &area_elems[1], &area_bytes[1]);
TEST_ASSERT(rc == 0);
TEST_ASSERT(area_elems[0] == 0);
TEST_ASSERT(area_bytes[0] == 0);
@@ -103,7 +101,7 @@ TEST_CASE_SELF(fcb_test_area_info)
/*
* Test oldest sector should be sector area 1.
*/
- rc = fcb_area_info(fcb, FCB_SECTOR_OLDEST, &area_elems[0], &area_bytes[0]);
+ rc = fcb2_area_info(fcb, FCB2_SECTOR_OLDEST, &area_elems[0],
&area_bytes[0]);
TEST_ASSERT(rc == 0);
TEST_ASSERT(area_elems[0] == elem_cnts[1]);
TEST_ASSERT(area_bytes[0] == elem_cnts[1] * sizeof(test_data));
diff --git a/fs/fcb2/selftest/src/testcases/fcb_test_empty_walk.c
b/fs/fcb2/selftest/src/testcases/fcb_test_empty_walk.c
index a48d6c6..7d5b4b1 100644
--- a/fs/fcb2/selftest/src/testcases/fcb_test_empty_walk.c
+++ b/fs/fcb2/selftest/src/testcases/fcb_test_empty_walk.c
@@ -21,12 +21,12 @@
TEST_CASE_SELF(fcb_test_empty_walk)
{
int rc;
- struct fcb *fcb;
+ struct fcb2 *fcb;
fcb_tc_pretest(2);
fcb = &test_fcb;
- rc = fcb_walk(fcb, 0, fcb_test_empty_walk_cb, NULL);
+ rc = fcb2_walk(fcb, 0, fcb_test_empty_walk_cb, NULL);
TEST_ASSERT(rc == 0);
}
diff --git a/fs/fcb2/selftest/src/testcases/fcb_test_getprev.c
b/fs/fcb2/selftest/src/testcases/fcb_test_getprev.c
index ec1a255..9daa80c 100644
--- a/fs/fcb2/selftest/src/testcases/fcb_test_getprev.c
+++ b/fs/fcb2/selftest/src/testcases/fcb_test_getprev.c
@@ -20,9 +20,9 @@
TEST_CASE_SELF(fcb_test_getprev)
{
- struct fcb *fcb = &test_fcb;
- struct fcb_entry loc;
- struct fcb_entry prev;
+ struct fcb2 *fcb = &test_fcb;
+ struct fcb2_entry loc;
+ struct fcb2_entry prev;
int rc;
int i, j;
@@ -33,33 +33,33 @@ TEST_CASE_SELF(fcb_test_getprev)
/*
* Empty FCB returns error.
*/
- rc = fcb_getprev(fcb, &prev);
- TEST_ASSERT_FATAL(rc == FCB_ERR_NOVAR);
+ rc = fcb2_getprev(fcb, &prev);
+ TEST_ASSERT_FATAL(rc == FCB2_ERR_NOVAR);
/*
* Add one entry. getprev should find that guy, and then error.
*/
- rc = fcb_append(fcb, 8, &loc);
+ rc = fcb2_append(fcb, 8, &loc);
TEST_ASSERT(rc == 0);
- rc = fcb_append_finish(&loc);
+ rc = fcb2_append_finish(&loc);
TEST_ASSERT(rc == 0);
prev.fe_range = NULL;
- rc = fcb_getprev(fcb, &prev);
+ rc = fcb2_getprev(fcb, &prev);
TEST_ASSERT_FATAL(rc == 0);
TEST_ASSERT(!memcmp(&loc, &prev, sizeof(loc)));
- rc = fcb_getprev(fcb, &prev);
- TEST_ASSERT(rc == FCB_ERR_NOVAR);
+ rc = fcb2_getprev(fcb, &prev);
+ TEST_ASSERT(rc == FCB2_ERR_NOVAR);
/*
* Add enough entries to go to 2 sectors, should find them all.
*/
fcb_tc_pretest(3);
for (i = 0; ; i++) {
- rc = fcb_append(fcb, i + 1, &loc);
+ rc = fcb2_append(fcb, i + 1, &loc);
TEST_ASSERT(rc == 0);
- rc = fcb_append_finish(&loc);
+ rc = fcb2_append_finish(&loc);
TEST_ASSERT(rc == 0);
if (loc.fe_sector == prev.fe_sector + 2) {
@@ -69,12 +69,12 @@ TEST_CASE_SELF(fcb_test_getprev)
prev.fe_range = NULL;
for (j = i; j >= 0; j--) {
- rc = fcb_getprev(fcb, &prev);
+ rc = fcb2_getprev(fcb, &prev);
TEST_ASSERT(rc == 0);
TEST_ASSERT(prev.fe_data_len == j + 1);
}
- rc = fcb_getprev(fcb, &prev);
- TEST_ASSERT(rc == FCB_ERR_NOVAR);
+ rc = fcb2_getprev(fcb, &prev);
+ TEST_ASSERT(rc == FCB2_ERR_NOVAR);
/*
* Clean the area. Fill 2 whole sectors with corrupt entries. And one
@@ -83,23 +83,23 @@ TEST_CASE_SELF(fcb_test_getprev)
fcb_tc_pretest(3);
for (i = 0; ; i++) {
- rc = fcb_append(fcb, i + 1, &loc);
+ rc = fcb2_append(fcb, i + 1, &loc);
TEST_ASSERT(rc == 0);
if (loc.fe_sector == prev.fe_sector + 2) {
- rc = fcb_append_finish(&loc);
+ rc = fcb2_append_finish(&loc);
TEST_ASSERT(rc == 0);
break;
}
}
prev.fe_range = NULL;
- rc = fcb_getprev(fcb, &prev);
+ rc = fcb2_getprev(fcb, &prev);
TEST_ASSERT_FATAL(rc == 0);
TEST_ASSERT(!memcmp(&loc, &prev, sizeof(loc)));
- rc = fcb_getprev(fcb, &prev);
- TEST_ASSERT(rc == FCB_ERR_NOVAR);
+ rc = fcb2_getprev(fcb, &prev);
+ TEST_ASSERT(rc == FCB2_ERR_NOVAR);
/*
* Create new. Rotate one sector, should be able to follow
@@ -109,28 +109,28 @@ TEST_CASE_SELF(fcb_test_getprev)
fcb_tc_pretest(3);
for (i = 0; ; i++) {
- rc = fcb_append(fcb, i + 8, &loc);
- if (rc == FCB_ERR_NOSPACE) {
+ rc = fcb2_append(fcb, i + 8, &loc);
+ if (rc == FCB2_ERR_NOSPACE) {
break;
}
TEST_ASSERT(rc == 0);
- rc = fcb_append_finish(&loc);
+ rc = fcb2_append_finish(&loc);
TEST_ASSERT(rc == 0);
}
/*
* Full. Rotate, add one more, and then walk backwards.
*/
- fcb_rotate(fcb);
+ fcb2_rotate(fcb);
- rc = fcb_append(fcb, i + 8, &loc);
+ rc = fcb2_append(fcb, i + 8, &loc);
TEST_ASSERT(rc == 0);
- rc = fcb_append_finish(&loc);
+ rc = fcb2_append_finish(&loc);
TEST_ASSERT(rc == 0);
for (j = i; j >= 0; j--) {
- rc = fcb_getprev(fcb, &prev);
- if (rc == FCB_ERR_NOVAR) {
+ rc = fcb2_getprev(fcb, &prev);
+ if (rc == FCB2_ERR_NOVAR) {
TEST_ASSERT(i > 0);
break;
}
diff --git a/fs/fcb2/selftest/src/testcases/fcb_test_init.c
b/fs/fcb2/selftest/src/testcases/fcb_test_init.c
index dcea7ba..aa1a5e0 100644
--- a/fs/fcb2/selftest/src/testcases/fcb_test_init.c
+++ b/fs/fcb2/selftest/src/testcases/fcb_test_init.c
@@ -21,29 +21,30 @@
TEST_CASE_SELF(fcb_test_init)
{
int rc;
- struct fcb *fcb;
+ struct fcb2 *fcb;
fcb_tc_pretest(2);
fcb = &test_fcb;
memset(fcb, 0, sizeof(*fcb));
- rc = fcb_init(fcb);
- TEST_ASSERT(rc == FCB_ERR_ARGS);
+ rc = fcb2_init(fcb);
+ TEST_ASSERT(rc == FCB2_ERR_ARGS);
fcb->f_ranges = test_fcb_ranges;
- rc = fcb_init(fcb);
- TEST_ASSERT(rc == FCB_ERR_ARGS);
+ rc = fcb2_init(fcb);
+ TEST_ASSERT(rc == FCB2_ERR_ARGS);
fcb->f_sector_cnt = 2;
fcb->f_magic = 0x12345678;
fcb->f_range_cnt = 1;
- fcb->f_ranges[0].fsr_flash_area.fa_size = 2 *
fcb->f_ranges[0].fsr_sector_size;
- rc = fcb_init(fcb);
- TEST_ASSERT(rc == FCB_ERR_MAGIC);
+ fcb->f_ranges[0].fsr_flash_area.fa_size =
+ 2 * fcb->f_ranges[0].fsr_sector_size;
+ rc = fcb2_init(fcb);
+ TEST_ASSERT(rc == FCB2_ERR_MAGIC);
fcb->f_magic = 0;
- rc = fcb_init(fcb);
+ rc = fcb2_init(fcb);
TEST_ASSERT(rc == 0);
}
diff --git a/fs/fcb2/selftest/src/testcases/fcb_test_last_of_n.c
b/fs/fcb2/selftest/src/testcases/fcb_test_last_of_n.c
index 2a6c3cd..7f0aef1 100644
--- a/fs/fcb2/selftest/src/testcases/fcb_test_last_of_n.c
+++ b/fs/fcb2/selftest/src/testcases/fcb_test_last_of_n.c
@@ -21,10 +21,10 @@
TEST_CASE_SELF(fcb_test_last_of_n)
{
const uint8_t ENTRIES = 5;
- struct fcb *fcb;
+ struct fcb2 *fcb;
int rc;
- struct fcb_entry loc;
- struct fcb_entry areas[ENTRIES];
+ struct fcb2_entry loc;
+ struct fcb2_entry areas[ENTRIES];
uint8_t test_data[128];
uint8_t i;
@@ -34,50 +34,50 @@ TEST_CASE_SELF(fcb_test_last_of_n)
fcb->f_scratch_cnt = 1;
/* No fcbs available */
- rc = fcb_offset_last_n(fcb, 1, &loc);
+ rc = fcb2_offset_last_n(fcb, 1, &loc);
TEST_ASSERT(rc != 0);
/*
* Add some fcbs.
*/
for (i = 0; i < ENTRIES; i++) {
- rc = fcb_append(fcb, sizeof(test_data), &loc);
- if (rc == FCB_ERR_NOSPACE) {
+ rc = fcb2_append(fcb, sizeof(test_data), &loc);
+ if (rc == FCB2_ERR_NOSPACE) {
break;
}
- rc = fcb_write(&loc, 0, test_data, sizeof(test_data));
+ rc = fcb2_write(&loc, 0, test_data, sizeof(test_data));
TEST_ASSERT(rc == 0);
- rc = fcb_append_finish(&loc);
+ rc = fcb2_append_finish(&loc);
TEST_ASSERT(rc == 0);
areas[i] = loc;
}
/* last entry */
- rc = fcb_offset_last_n(fcb, 1, &loc);
+ rc = fcb2_offset_last_n(fcb, 1, &loc);
TEST_ASSERT(rc == 0);
TEST_ASSERT(areas[4].fe_sector == loc.fe_sector);
TEST_ASSERT(areas[4].fe_data_off == loc.fe_data_off);
TEST_ASSERT(areas[4].fe_data_len == loc.fe_data_len);
/* somewhere in the middle */
- rc = fcb_offset_last_n(fcb, 3, &loc);
+ rc = fcb2_offset_last_n(fcb, 3, &loc);
TEST_ASSERT(rc == 0);
TEST_ASSERT(areas[2].fe_sector == loc.fe_sector);
TEST_ASSERT(areas[2].fe_data_off == loc.fe_data_off);
TEST_ASSERT(areas[2].fe_data_len == loc.fe_data_len);
/* first entry */
- rc = fcb_offset_last_n(fcb, 5, &loc);
+ rc = fcb2_offset_last_n(fcb, 5, &loc);
TEST_ASSERT(rc == 0);
TEST_ASSERT(areas[0].fe_sector == loc.fe_sector);
TEST_ASSERT(areas[0].fe_data_off == loc.fe_data_off);
TEST_ASSERT(areas[0].fe_data_len == loc.fe_data_len);
/* after last valid entry, returns the first one like for 5 */
- rc = fcb_offset_last_n(fcb, 6, &loc);
+ rc = fcb2_offset_last_n(fcb, 6, &loc);
TEST_ASSERT(rc == 0);
TEST_ASSERT(areas[0].fe_sector == loc.fe_sector);
TEST_ASSERT(areas[0].fe_data_off == loc.fe_data_off);
diff --git a/fs/fcb2/selftest/src/testcases/fcb_test_multiple_scratch.c
b/fs/fcb2/selftest/src/testcases/fcb_test_multiple_scratch.c
index 3b2cf95..3b855f6 100644
--- a/fs/fcb2/selftest/src/testcases/fcb_test_multiple_scratch.c
+++ b/fs/fcb2/selftest/src/testcases/fcb_test_multiple_scratch.c
@@ -20,9 +20,9 @@
TEST_CASE_SELF(fcb_test_multiple_scratch)
{
- struct fcb *fcb;
+ struct fcb2 *fcb;
int rc;
- struct fcb_entry loc;
+ struct fcb2_entry loc;
uint8_t test_data[128];
int elem_cnts[4];
int idx;
@@ -42,17 +42,17 @@ TEST_CASE_SELF(fcb_test_multiple_scratch)
*/
memset(elem_cnts, 0, sizeof(elem_cnts));
while (1) {
- rc = fcb_append(fcb, sizeof(test_data), &loc);
- if (rc == FCB_ERR_NOSPACE) {
+ rc = fcb2_append(fcb, sizeof(test_data), &loc);
+ if (rc == FCB2_ERR_NOSPACE) {
break;
}
idx = loc.fe_sector;
elem_cnts[idx]++;
- rc = fcb_write(&loc, 0, test_data, sizeof(test_data));
+ rc = fcb2_write(&loc, 0, test_data, sizeof(test_data));
TEST_ASSERT(rc == 0);
- rc = fcb_append_finish(&loc);
+ rc = fcb2_append_finish(&loc);
TEST_ASSERT(rc == 0);
}
@@ -63,21 +63,21 @@ TEST_CASE_SELF(fcb_test_multiple_scratch)
/*
* Ask to use scratch block, then fill it up.
*/
- rc = fcb_append_to_scratch(fcb);
+ rc = fcb2_append_to_scratch(fcb);
TEST_ASSERT(rc == 0);
while (1) {
- rc = fcb_append(fcb, sizeof(test_data), &loc);
- if (rc == FCB_ERR_NOSPACE) {
+ rc = fcb2_append(fcb, sizeof(test_data), &loc);
+ if (rc == FCB2_ERR_NOSPACE) {
break;
}
idx = loc.fe_sector;
elem_cnts[idx]++;
- rc = fcb_write(&loc, 0, test_data, sizeof(test_data));
+ rc = fcb2_write(&loc, 0, test_data, sizeof(test_data));
TEST_ASSERT(rc == 0);
- rc = fcb_append_finish(&loc);
+ rc = fcb2_append_finish(&loc);
TEST_ASSERT(rc == 0);
}
TEST_ASSERT(elem_cnts[3] == elem_cnts[0]);
@@ -85,19 +85,19 @@ TEST_CASE_SELF(fcb_test_multiple_scratch)
/*
* Rotate
*/
- rc = fcb_rotate(fcb);
+ rc = fcb2_rotate(fcb);
TEST_ASSERT(rc == 0);
memset(&cnts, 0, sizeof(cnts));
- rc = fcb_walk(fcb, FCB_SECTOR_OLDEST, fcb_test_cnt_elems_cb, &aa_arg);
+ rc = fcb2_walk(fcb, FCB2_SECTOR_OLDEST, fcb_test_cnt_elems_cb, &aa_arg);
TEST_ASSERT(rc == 0);
TEST_ASSERT(cnts[0] == 0);
TEST_ASSERT(cnts[1] > 0);
TEST_ASSERT(cnts[1] == cnts[2] && cnts[1] == cnts[3]);
- rc = fcb_append_to_scratch(fcb);
+ rc = fcb2_append_to_scratch(fcb);
TEST_ASSERT(rc == 0);
- rc = fcb_append_to_scratch(fcb);
+ rc = fcb2_append_to_scratch(fcb);
TEST_ASSERT(rc != 0);
}
diff --git a/fs/fcb2/selftest/src/testcases/fcb_test_reset.c
b/fs/fcb2/selftest/src/testcases/fcb_test_reset.c
index 17c0202..b073065 100644
--- a/fs/fcb2/selftest/src/testcases/fcb_test_reset.c
+++ b/fs/fcb2/selftest/src/testcases/fcb_test_reset.c
@@ -20,10 +20,10 @@
TEST_CASE_SELF(fcb_test_reset)
{
- struct fcb *fcb;
+ struct fcb2 *fcb;
int rc;
int i;
- struct fcb_entry loc;
+ struct fcb2_entry loc;
uint8_t test_data[128];
int var_cnt;
@@ -32,35 +32,35 @@ TEST_CASE_SELF(fcb_test_reset)
fcb = &test_fcb;
var_cnt = 0;
- rc = fcb_walk(fcb, FCB_SECTOR_OLDEST, fcb_test_data_walk_cb, &var_cnt);
+ rc = fcb2_walk(fcb, FCB2_SECTOR_OLDEST, fcb_test_data_walk_cb, &var_cnt);
TEST_ASSERT(rc == 0);
TEST_ASSERT(var_cnt == 0);
- rc = fcb_append(fcb, 32, &loc);
+ rc = fcb2_append(fcb, 32, &loc);
TEST_ASSERT(rc == 0);
/*
* No ready ones yet. CRC should not match.
*/
var_cnt = 0;
- rc = fcb_walk(fcb, FCB_SECTOR_OLDEST, fcb_test_data_walk_cb, &var_cnt);
+ rc = fcb2_walk(fcb, FCB2_SECTOR_OLDEST, fcb_test_data_walk_cb, &var_cnt);
TEST_ASSERT(rc == 0);
TEST_ASSERT(var_cnt == 0);
for (i = 0; i < sizeof(test_data); i++) {
test_data[i] = fcb_test_append_data(32, i);
}
- rc = fcb_write(&loc, 0, test_data, 32);
+ rc = fcb2_write(&loc, 0, test_data, 32);
TEST_ASSERT(rc == 0);
- rc = fcb_append_finish(&loc);
+ rc = fcb2_append_finish(&loc);
TEST_ASSERT(rc == 0);
/*
* one entry
*/
var_cnt = 32;
- rc = fcb_walk(fcb, FCB_SECTOR_OLDEST, fcb_test_data_walk_cb, &var_cnt);
+ rc = fcb2_walk(fcb, FCB2_SECTOR_OLDEST, fcb_test_data_walk_cb, &var_cnt);
TEST_ASSERT(rc == 0);
TEST_ASSERT(var_cnt == 33);
@@ -72,35 +72,35 @@ TEST_CASE_SELF(fcb_test_reset)
fcb->f_sector_cnt = 2;
fcb->f_ranges = test_fcb_ranges;
- rc = fcb_init(fcb);
+ rc = fcb2_init(fcb);
TEST_ASSERT(rc == 0);
var_cnt = 32;
- rc = fcb_walk(fcb, FCB_SECTOR_OLDEST, fcb_test_data_walk_cb, &var_cnt);
+ rc = fcb2_walk(fcb, FCB2_SECTOR_OLDEST, fcb_test_data_walk_cb, &var_cnt);
TEST_ASSERT(rc == 0);
TEST_ASSERT(var_cnt == 33);
- rc = fcb_append(fcb, 33, &loc);
+ rc = fcb2_append(fcb, 33, &loc);
TEST_ASSERT(rc == 0);
for (i = 0; i < sizeof(test_data); i++) {
test_data[i] = fcb_test_append_data(33, i);
}
- rc = fcb_write(&loc, 0, test_data, 33);
+ rc = fcb2_write(&loc, 0, test_data, 33);
TEST_ASSERT(rc == 0);
- rc = fcb_append_finish(&loc);
+ rc = fcb2_append_finish(&loc);
TEST_ASSERT(rc == 0);
var_cnt = 32;
- rc = fcb_walk(fcb, FCB_SECTOR_OLDEST, fcb_test_data_walk_cb, &var_cnt);
+ rc = fcb2_walk(fcb, FCB2_SECTOR_OLDEST, fcb_test_data_walk_cb, &var_cnt);
TEST_ASSERT(rc == 0);
TEST_ASSERT(var_cnt == 34);
/*
* Add partial one, make sure that we survive reset then.
*/
- rc = fcb_append(fcb, 34, &loc);
+ rc = fcb2_append(fcb, 34, &loc);
TEST_ASSERT(rc == 0);
memset(fcb, 0, sizeof(*fcb));
@@ -108,35 +108,35 @@ TEST_CASE_SELF(fcb_test_reset)
fcb->f_sector_cnt = 2;
fcb->f_ranges = test_fcb_ranges;
- rc = fcb_init(fcb);
+ rc = fcb2_init(fcb);
TEST_ASSERT(rc == 0);
/*
* Walk should skip that.
*/
var_cnt = 32;
- rc = fcb_walk(fcb, FCB_SECTOR_OLDEST, fcb_test_data_walk_cb, &var_cnt);
+ rc = fcb2_walk(fcb, FCB2_SECTOR_OLDEST, fcb_test_data_walk_cb, &var_cnt);
TEST_ASSERT(rc == 0);
TEST_ASSERT(var_cnt == 34);
/* Add a 3rd one, should go behind corrupt entry */
- rc = fcb_append(fcb, 34, &loc);
+ rc = fcb2_append(fcb, 34, &loc);
TEST_ASSERT(rc == 0);
for (i = 0; i < sizeof(test_data); i++) {
test_data[i] = fcb_test_append_data(34, i);
}
- rc = fcb_write(&loc, 0, test_data, 34);
+ rc = fcb2_write(&loc, 0, test_data, 34);
TEST_ASSERT(rc == 0);
- rc = fcb_append_finish(&loc);
+ rc = fcb2_append_finish(&loc);
TEST_ASSERT(rc == 0);
/*
* Walk should skip corrupt entry, but report the next one.
*/
var_cnt = 32;
- rc = fcb_walk(fcb, FCB_SECTOR_OLDEST, fcb_test_data_walk_cb, &var_cnt);
+ rc = fcb2_walk(fcb, FCB2_SECTOR_OLDEST, fcb_test_data_walk_cb, &var_cnt);
TEST_ASSERT(rc == 0);
TEST_ASSERT(var_cnt == 35);
}
diff --git a/fs/fcb2/selftest/src/testcases/fcb_test_rotate.c
b/fs/fcb2/selftest/src/testcases/fcb_test_rotate.c
index 34ce9d7..4b7d9d6 100644
--- a/fs/fcb2/selftest/src/testcases/fcb_test_rotate.c
+++ b/fs/fcb2/selftest/src/testcases/fcb_test_rotate.c
@@ -20,10 +20,10 @@
TEST_CASE_SELF(fcb_test_rotate)
{
- struct fcb *fcb;
+ struct fcb2 *fcb;
int rc;
int old_id;
- struct fcb_entry loc;
+ struct fcb2_entry loc;
uint8_t test_data[128];
int elem_cnts[2] = {0, 0};
int cnts[2];
@@ -36,7 +36,7 @@ TEST_CASE_SELF(fcb_test_rotate)
fcb = &test_fcb;
old_id = fcb->f_active_id;
- rc = fcb_rotate(fcb);
+ rc = fcb2_rotate(fcb);
TEST_ASSERT(rc == 0);
TEST_ASSERT(fcb->f_active_id == old_id + 1);
@@ -44,8 +44,8 @@ TEST_CASE_SELF(fcb_test_rotate)
* Now fill up the
*/
while (1) {
- rc = fcb_append(fcb, sizeof(test_data), &loc);
- if (rc == FCB_ERR_NOSPACE) {
+ rc = fcb2_append(fcb, sizeof(test_data), &loc);
+ if (rc == FCB2_ERR_NOSPACE) {
break;
}
if (loc.fe_sector == 0) {
@@ -56,21 +56,21 @@ TEST_CASE_SELF(fcb_test_rotate)
TEST_ASSERT(0);
}
- rc = fcb_write(&loc, 0, test_data, sizeof(test_data));
+ rc = fcb2_write(&loc, 0, test_data, sizeof(test_data));
TEST_ASSERT(rc == 0);
- rc = fcb_append_finish(&loc);
+ rc = fcb2_append_finish(&loc);
TEST_ASSERT(rc == 0);
}
TEST_ASSERT(elem_cnts[0] > 0 && elem_cnts[0] == elem_cnts[1]);
old_id = fcb->f_active_id;
- rc = fcb_rotate(fcb);
+ rc = fcb2_rotate(fcb);
TEST_ASSERT(rc == 0);
TEST_ASSERT(fcb->f_active_id == old_id); /* no new area created */
memset(cnts, 0, sizeof(cnts));
- rc = fcb_walk(fcb, FCB_SECTOR_OLDEST, fcb_test_cnt_elems_cb, &aa_arg);
+ rc = fcb2_walk(fcb, FCB2_SECTOR_OLDEST, fcb_test_cnt_elems_cb, &aa_arg);
TEST_ASSERT(rc == 0);
TEST_ASSERT(aa_arg.elem_cnts[0] == elem_cnts[0] ||
aa_arg.elem_cnts[1] == elem_cnts[1]);
@@ -79,23 +79,23 @@ TEST_CASE_SELF(fcb_test_rotate)
/*
* One sector is full. The other one should have one entry in it.
*/
- rc = fcb_append(fcb, sizeof(test_data), &loc);
+ rc = fcb2_append(fcb, sizeof(test_data), &loc);
TEST_ASSERT(rc == 0);
- rc = fcb_write(&loc, 0, test_data,
+ rc = fcb2_write(&loc, 0, test_data,
sizeof(test_data));
TEST_ASSERT(rc == 0);
- rc = fcb_append_finish(&loc);
+ rc = fcb2_append_finish(&loc);
TEST_ASSERT(rc == 0);
old_id = fcb->f_active_id;
- rc = fcb_rotate(fcb);
+ rc = fcb2_rotate(fcb);
TEST_ASSERT(rc == 0);
TEST_ASSERT(fcb->f_active_id == old_id);
memset(cnts, 0, sizeof(cnts));
- rc = fcb_walk(fcb, FCB_SECTOR_OLDEST, fcb_test_cnt_elems_cb, &aa_arg);
+ rc = fcb2_walk(fcb, FCB2_SECTOR_OLDEST, fcb_test_cnt_elems_cb, &aa_arg);
TEST_ASSERT(rc == 0);
TEST_ASSERT(aa_arg.elem_cnts[0] == 1 || aa_arg.elem_cnts[1] == 1);
TEST_ASSERT(aa_arg.elem_cnts[0] == 0 || aa_arg.elem_cnts[1] == 0);
diff --git a/fs/fcb2/src/fcb.c b/fs/fcb2/src/fcb.c
index 80451d6..e8a65ff 100644
--- a/fs/fcb2/src/fcb.c
+++ b/fs/fcb2/src/fcb.c
@@ -19,12 +19,12 @@
#include <limits.h>
#include <stdlib.h>
-#include "fcb/fcb.h"
+#include "fcb/fcb2.h"
#include "fcb_priv.h"
#include "string.h"
int
-fcb_init(struct fcb *fcb)
+fcb2_init(struct fcb2 *fcb)
{
struct flash_sector_range *range;
struct flash_sector_range *newest_srp = NULL;
@@ -32,20 +32,20 @@ fcb_init(struct fcb *fcb)
int i;
int oldest = -1, newest = -1;
int oldest_sec = -1, newest_sec = -1;
- struct fcb_disk_area fda;
+ struct fcb2_disk_area fda;
if (!fcb->f_ranges || fcb->f_sector_cnt - fcb->f_scratch_cnt < 1) {
- return FCB_ERR_ARGS;
+ return FCB2_ERR_ARGS;
}
/* Fill last used, first used */
for (i = 0; i < fcb->f_sector_cnt; i++) {
- range = fcb_get_sector_range(fcb, i);
+ range = fcb2_get_sector_range(fcb, i);
/* Require alignment to be a power of two. Some code depends on this
* assumption.
*/
assert((range->fsr_align & (range->fsr_align - 1)) == 0);
- rc = fcb_sector_hdr_read(fcb, range, i, &fda);
+ rc = fcb2_sector_hdr_read(fcb, range, i, &fda);
if (rc < 0) {
return rc;
}
@@ -58,11 +58,11 @@ fcb_init(struct fcb *fcb)
newest_srp = range;
continue;
}
- if (FCB_ID_GT(fda.fd_id, newest)) {
+ if (FCB2_ID_GT(fda.fd_id, newest)) {
newest = fda.fd_id;
newest_sec = i;
newest_srp = range;
- } else if (FCB_ID_GT(oldest, fda.fd_id)) {
+ } else if (FCB2_ID_GT(oldest, fda.fd_id)) {
oldest = fda.fd_id;
oldest_sec = i;
}
@@ -73,7 +73,7 @@ fcb_init(struct fcb *fcb)
*/
oldest_sec = newest_sec = 0;
newest_srp = fcb->f_ranges;
- rc = fcb_sector_hdr_init(fcb, newest_sec, 0);
+ rc = fcb2_sector_hdr_init(fcb, newest_sec, 0);
if (rc) {
return rc;
}
@@ -83,14 +83,14 @@ fcb_init(struct fcb *fcb)
fcb->f_active.fe_range = newest_srp;
fcb->f_active.fe_sector = newest_sec;
fcb->f_active.fe_data_off =
- fcb_len_in_flash(newest_srp, sizeof(struct fcb_disk_area));
+ fcb2_len_in_flash(newest_srp, sizeof(struct fcb2_disk_area));
fcb->f_active.fe_entry_num = 0;
fcb->f_active_id = newest;
while (1) {
- rc = fcb_getnext_in_area(fcb, &fcb->f_active);
- if (rc == FCB_ERR_NOVAR) {
- rc = FCB_OK;
+ rc = fcb2_getnext_in_area(fcb, &fcb->f_active);
+ if (rc == FCB2_ERR_NOVAR) {
+ rc = FCB2_OK;
break;
}
if (rc != 0) {
@@ -102,14 +102,14 @@ fcb_init(struct fcb *fcb)
}
int
-fcb_free_sector_cnt(struct fcb *fcb)
+fcb2_free_sector_cnt(struct fcb2 *fcb)
{
int i;
int sector;
sector = fcb->f_active.fe_sector;
for (i = 0; i < fcb->f_sector_cnt; i++) {
- sector = fcb_getnext_sector(fcb, sector);
+ sector = fcb2_getnext_sector(fcb, sector);
if (sector == fcb->f_oldest_sec) {
break;
}
@@ -118,21 +118,21 @@ fcb_free_sector_cnt(struct fcb *fcb)
}
int
-fcb_is_empty(struct fcb *fcb)
+fcb2_is_empty(struct fcb2 *fcb)
{
return (fcb->f_active.fe_sector == fcb->f_oldest_sec &&
fcb->f_active.fe_data_off ==
- fcb_len_in_flash(fcb->f_active.fe_range,
- sizeof(struct fcb_disk_area)));
+ fcb2_len_in_flash(fcb->f_active.fe_range,
+ sizeof(struct fcb2_disk_area)));
}
struct flash_sector_range *
-fcb_get_sector_range(const struct fcb *fcb, int sector)
+fcb2_get_sector_range(const struct fcb2 *fcb, int sector)
{
int i;
struct flash_sector_range *srp = fcb->f_ranges;
- if (FCB_SECTOR_OLDEST == sector) {
+ if (FCB2_SECTOR_OLDEST == sector) {
sector = fcb->f_oldest_sec;
}
for (i = 0; i < fcb->f_range_cnt; ++i, ++srp) {
@@ -149,15 +149,15 @@ fcb_get_sector_range(const struct fcb *fcb, int sector)
* Initialize erased sector for use.
*/
int
-fcb_sector_hdr_init(struct fcb *fcb, int sector, uint16_t id)
+fcb2_sector_hdr_init(struct fcb2 *fcb, int sector, uint16_t id)
{
- struct fcb_disk_area fda;
- struct fcb_sector_info info;
+ struct fcb2_disk_area fda;
+ struct fcb2_sector_info info;
struct flash_sector_range *range;
int sector_in_range;
int rc;
- rc = fcb_get_sector_info(fcb, sector, &info);
+ rc = fcb2_get_sector_info(fcb, sector, &info);
if (rc) {
return rc;
}
@@ -173,7 +173,7 @@ fcb_sector_hdr_init(struct fcb *fcb, int sector, uint16_t
id)
rc = flash_area_write(&range->fsr_flash_area,
sector_in_range * range->fsr_sector_size, &fda, sizeof(fda));
if (rc) {
- return FCB_ERR_FLASH;
+ return FCB2_ERR_FLASH;
}
return 0;
}
@@ -185,10 +185,10 @@ fcb_sector_hdr_init(struct fcb *fcb, int sector, uint16_t
id)
* Returns 1 if sector has data.
*/
int
-fcb_sector_hdr_read(struct fcb *fcb, struct flash_sector_range *srp,
- uint16_t sec, struct fcb_disk_area *fdap)
+fcb2_sector_hdr_read(struct fcb2 *fcb, struct flash_sector_range *srp,
+ uint16_t sec, struct fcb2_disk_area *fdap)
{
- struct fcb_disk_area fda;
+ struct fcb2_disk_area fda;
int rc;
uint32_t off = (sec - srp->fsr_first_sector) * srp->fsr_sector_size;
@@ -197,15 +197,15 @@ fcb_sector_hdr_read(struct fcb *fcb, struct
flash_sector_range *srp,
}
rc = flash_area_read_is_empty(&srp->fsr_flash_area, off, fdap,
sizeof(*fdap));
if (rc < 0) {
- return FCB_ERR_FLASH;
+ return FCB2_ERR_FLASH;
} else if (rc == 1) {
return 0;
}
if (fdap->fd_magic != fcb->f_magic) {
- return FCB_ERR_MAGIC;
+ return FCB2_ERR_MAGIC;
}
if (fdap->fd_ver != fcb->f_version) {
- return FCB_ERR_VERSION;
+ return FCB2_ERR_VERSION;
}
return 1;
}
@@ -218,7 +218,7 @@ fcb_sector_hdr_read(struct fcb *fcb, struct
flash_sector_range *srp,
* @return 0 on there are any fcbs aviable; OS_ENOENT otherwise
*/
int
-fcb_offset_last_n(struct fcb *fcb, uint8_t entries, struct fcb_entry *loc)
+fcb2_offset_last_n(struct fcb2 *fcb, uint8_t entries, struct fcb2_entry *loc)
{
int i;
@@ -229,7 +229,7 @@ fcb_offset_last_n(struct fcb *fcb, uint8_t entries, struct
fcb_entry *loc)
i = 0;
memset(loc, 0, sizeof(*loc));
- while (!fcb_getprev(fcb, loc)) {
+ while (!fcb2_getprev(fcb, loc)) {
--entries;
i++;
if (entries == 0) {
@@ -237,7 +237,7 @@ fcb_offset_last_n(struct fcb *fcb, uint8_t entries, struct
fcb_entry *loc)
}
}
- return (i == 0) ? FCB_ERR_NOVAR : 0;
+ return (i == 0) ? FCB2_ERR_NOVAR : 0;
}
/**
@@ -246,13 +246,13 @@ fcb_offset_last_n(struct fcb *fcb, uint8_t entries,
struct fcb_entry *loc)
* @return 0 on success; non-zero on failure
*/
int
-fcb_clear(struct fcb *fcb)
+fcb2_clear(struct fcb2 *fcb)
{
int rc;
rc = 0;
- while (!fcb_is_empty(fcb)) {
- rc = fcb_rotate(fcb);
+ while (!fcb2_is_empty(fcb)) {
+ rc = fcb2_rotate(fcb);
if (rc) {
break;
}
@@ -261,8 +261,8 @@ fcb_clear(struct fcb *fcb)
}
int
-fcb_init_flash_area(struct fcb *fcb, int flash_area_id, uint32_t magic,
- uint8_t version)
+fcb2_init_flash_area(struct fcb2 *fcb, int flash_area_id, uint32_t magic,
+ uint8_t version)
{
const struct flash_area *fa;
struct flash_sector_range *sector_ranges;
@@ -297,14 +297,14 @@ fcb_init_flash_area(struct fcb *fcb, int flash_area_id,
uint32_t magic,
* should be in dedicated flash area and nothing should prevent us from
* creating log there.
*/
- rc = fcb_init(fcb);
+ rc = fcb2_init(fcb);
if (rc) {
/* Need to erase full area here */
rc = flash_area_open(flash_area_id, &fa);
assert(rc == 0);
flash_area_erase(fa, 0, fa->fa_size);
- rc = fcb_init(fcb);
+ rc = fcb2_init(fcb);
assert(rc == 0);
}
@@ -312,13 +312,13 @@ fcb_init_flash_area(struct fcb *fcb, int flash_area_id,
uint32_t magic,
}
int
-fcb_get_sector_info(const struct fcb *fcb, int sector,
- struct fcb_sector_info *info)
+fcb2_get_sector_info(const struct fcb2 *fcb, int sector,
+ struct fcb2_sector_info *info)
{
struct flash_sector_range *srp = fcb->f_ranges;
int i;
- if (sector == FCB_SECTOR_OLDEST) {
+ if (sector == FCB2_SECTOR_OLDEST) {
sector = fcb->f_oldest_sec;
}
@@ -333,11 +333,11 @@ fcb_get_sector_info(const struct fcb *fcb, int sector,
sector * srp->fsr_sector_size;
return 0;
}
- return FCB_ERR_ARGS;
+ return FCB2_ERR_ARGS;
}
int
-fcb_get_total_size(const struct fcb *fcb)
+fcb2_get_total_size(const struct fcb2 *fcb)
{
struct flash_sector_range *srp = fcb->f_ranges;
int size = 0;
@@ -350,12 +350,12 @@ fcb_get_total_size(const struct fcb *fcb)
}
int
-fcb_sector_erase(const struct fcb *fcb, int sector)
+fcb2_sector_erase(const struct fcb2 *fcb, int sector)
{
- struct fcb_sector_info info;
+ struct fcb2_sector_info info;
int rc;
- rc = fcb_get_sector_info(fcb, sector, &info);
+ rc = fcb2_get_sector_info(fcb, sector, &info);
if (rc) {
goto end;
}
diff --git a/fs/fcb2/src/fcb_append.c b/fs/fcb2/src/fcb_append.c
index a039ece..156bb15 100644
--- a/fs/fcb2/src/fcb_append.c
+++ b/fs/fcb2/src/fcb_append.c
@@ -18,18 +18,19 @@
*/
#include <stddef.h>
-#include "fcb/fcb.h"
+#include "fcb/fcb2.h"
#include "fcb_priv.h"
#include "crc/crc8.h"
int
-fcb_new_sector(struct fcb *fcb, int cnt)
+fcb2_new_sector(struct fcb2 *fcb, int cnt)
{
int new_sector = -1;
int sector = fcb->f_active.fe_sector;
+
do {
- sector = fcb_getnext_sector(fcb, sector);
+ sector = fcb2_getnext_sector(fcb, sector);
if (new_sector < 0) {
new_sector = sector;
}
@@ -46,39 +47,39 @@ fcb_new_sector(struct fcb *fcb, int cnt)
* Take one of the scratch blocks into use, if at all possible.
*/
int
-fcb_append_to_scratch(struct fcb *fcb)
+fcb2_append_to_scratch(struct fcb2 *fcb)
{
int sector;
int rc;
struct flash_sector_range *range;
- sector = fcb_new_sector(fcb, 0);
+ sector = fcb2_new_sector(fcb, 0);
if (sector < 0) {
- return FCB_ERR_NOSPACE;
+ return FCB2_ERR_NOSPACE;
}
- rc = fcb_sector_hdr_init(fcb, sector, fcb->f_active_id + 1);
+ rc = fcb2_sector_hdr_init(fcb, sector, fcb->f_active_id + 1);
if (rc) {
return rc;
}
- range = fcb_get_sector_range(fcb, sector);
+ range = fcb2_get_sector_range(fcb, sector);
fcb->f_active.fe_range = range;
fcb->f_active.fe_sector = sector;
fcb->f_active.fe_data_off =
- fcb_len_in_flash(range, sizeof(struct fcb_disk_area));
+ fcb2_len_in_flash(range, sizeof(struct fcb2_disk_area));
fcb->f_active.fe_entry_num = 1;
fcb->f_active_id++;
- return FCB_OK;
+ return FCB2_OK;
}
static inline int
-fcb_sector_flash_offset(const struct fcb_entry *loc)
+fcb2_sector_flash_offset(const struct fcb2_entry *loc)
{
return (loc->fe_sector - loc->fe_range->fsr_first_sector) *
loc->fe_range->fsr_sector_size;
}
int
-fcb_write_to_sector(struct fcb_entry *loc, int off, const void *buf, int len)
+fcb2_write_to_sector(struct fcb2_entry *loc, int off, const void *buf, int len)
{
/* For negative offsets write from the end of sector */
if (off < 0) {
@@ -89,11 +90,11 @@ fcb_write_to_sector(struct fcb_entry *loc, int off, const
void *buf, int len)
len = loc->fe_range->fsr_sector_size - off;
}
return flash_area_write(&loc->fe_range->fsr_flash_area,
- fcb_sector_flash_offset(loc) + off, buf, len);
+ fcb2_sector_flash_offset(loc) + off, buf, len);
}
int
-fcb_read_from_sector(struct fcb_entry *loc, int off, void *buf, int len)
+fcb2_read_from_sector(struct fcb2_entry *loc, int off, void *buf, int len)
{
/* For negative offsets read from the end of sector */
if (off < 0) {
@@ -104,90 +105,92 @@ fcb_read_from_sector(struct fcb_entry *loc, int off, void
*buf, int len)
len = loc->fe_range->fsr_sector_size - off;
}
return flash_area_read(&loc->fe_range->fsr_flash_area,
- fcb_sector_flash_offset(loc) + off, buf, len);
+ fcb2_sector_flash_offset(loc) + off, buf, len);
}
int
-fcb_entry_location_in_range(const struct fcb_entry *loc)
+fcb2_entry_location_in_range(const struct fcb2_entry *loc)
{
const struct flash_sector_range *range = loc->fe_range;
return range->fsr_sector_size *
(1 + loc->fe_sector - range->fsr_first_sector) -
- (loc->fe_entry_num * fcb_len_in_flash(loc->fe_range, FCB_ENTRY_SIZE));
+ (loc->fe_entry_num * fcb2_len_in_flash(loc->fe_range,
FCB2_ENTRY_SIZE));
}
int
-fcb_active_sector_free_space(const struct fcb *fcb)
+fcb2_active_sector_free_space(const struct fcb2 *fcb)
{
- const struct fcb_entry *active = &fcb->f_active;
+ const struct fcb2_entry *active = &fcb->f_active;
const struct flash_sector_range *range = active->fe_range;
return range->fsr_sector_size - active->fe_data_off -
- (active->fe_entry_num * fcb_len_in_flash(range, FCB_ENTRY_SIZE));
+ (active->fe_entry_num * fcb2_len_in_flash(range, FCB2_ENTRY_SIZE));
}
int
-fcb_write(struct fcb_entry *loc, uint16_t off, const void *buf, uint16_t len)
+fcb2_write(struct fcb2_entry *loc, uint16_t off, const void *buf, uint16_t len)
{
int pos = loc->fe_data_off + off;
- /* Make sure tha write does not exceed lenght declared in fcb_append */
+
+ /* Make sure tha write does not exceed lenght declared in fcb2_append */
if (off + len > loc->fe_data_len) {
len = loc->fe_data_len - off;
}
- return fcb_write_to_sector(loc, pos, buf, len);
+ return fcb2_write_to_sector(loc, pos, buf, len);
}
int
-fcb_read(struct fcb_entry *loc, uint16_t off, void *buf, uint16_t len)
+fcb2_read(struct fcb2_entry *loc, uint16_t off, void *buf, uint16_t len)
{
int pos = loc->fe_data_off + off;
+
/* Make sure that read is only from entry data */
if (off + len > loc->fe_data_len) {
len = loc->fe_data_len - off;
}
- return fcb_read_from_sector(loc, pos, buf, len);
+ return fcb2_read_from_sector(loc, pos, buf, len);
}
int
-fcb_element_length_in_flash(const struct fcb_entry *loc, int len)
+fcb2_element_length_in_flash(const struct fcb2_entry *loc, int len)
{
- return fcb_len_in_flash(loc->fe_range, len) +
- fcb_len_in_flash(loc->fe_range, FCB_CRC_LEN);
+ return fcb2_len_in_flash(loc->fe_range, len) +
+ fcb2_len_in_flash(loc->fe_range, FCB2_CRC_LEN);
}
int
-fcb_append(struct fcb *fcb, uint16_t len, struct fcb_entry *append_loc)
+fcb2_append(struct fcb2 *fcb, uint16_t len, struct fcb2_entry *append_loc)
{
- struct fcb_entry *active;
+ struct fcb2_entry *active;
struct flash_sector_range *range;
- uint8_t flash_entry[FCB_ENTRY_SIZE];
+ uint8_t flash_entry[FCB2_ENTRY_SIZE];
int sector;
int rc;
- if (len == 0 || len >= FCB_MAX_LEN) {
- return FCB_ERR_ARGS;
+ if (len == 0 || len >= FCB2_MAX_LEN) {
+ return FCB2_ERR_ARGS;
}
rc = os_mutex_pend(&fcb->f_mtx, OS_WAIT_FOREVER);
if (rc && rc != OS_NOT_STARTED) {
- return FCB_ERR_ARGS;
+ return FCB2_ERR_ARGS;
}
active = &fcb->f_active;
- if (fcb_active_sector_free_space(fcb) < fcb_element_length_in_flash(active,
- len)) {
- sector = fcb_new_sector(fcb, fcb->f_scratch_cnt);
+ if (fcb2_active_sector_free_space(fcb) <
fcb2_element_length_in_flash(active,
+
len)) {
+ sector = fcb2_new_sector(fcb, fcb->f_scratch_cnt);
if (sector >= 0) {
- range = fcb_get_sector_range(fcb, sector);
+ range = fcb2_get_sector_range(fcb, sector);
}
if (sector < 0 || (range->fsr_sector_size <
- fcb_len_in_flash(range, sizeof(struct fcb_disk_area)) +
- fcb_len_in_flash(range, len) +
- fcb_len_in_flash(range, FCB_CRC_LEN))) {
- rc = FCB_ERR_NOSPACE;
+ fcb2_len_in_flash(range, sizeof(struct fcb2_disk_area)) +
+ fcb2_len_in_flash(range, len) +
+ fcb2_len_in_flash(range, FCB2_CRC_LEN))) {
+ rc = FCB2_ERR_NOSPACE;
goto err;
}
- rc = fcb_sector_hdr_init(fcb, sector, fcb->f_active_id + 1);
+ rc = fcb2_sector_hdr_init(fcb, sector, fcb->f_active_id + 1);
if (rc) {
goto err;
}
@@ -195,7 +198,7 @@ fcb_append(struct fcb *fcb, uint16_t len, struct fcb_entry
*append_loc)
fcb->f_active.fe_sector = sector;
/* Start with offset just after sector header */
fcb->f_active.fe_data_off =
- fcb_len_in_flash(range, sizeof(struct fcb_disk_area));
+ fcb2_len_in_flash(range, sizeof(struct fcb2_disk_area));
/* No entries as yet */
fcb->f_active.fe_entry_num = 1;
fcb->f_active.fe_data_len = 0;
@@ -210,13 +213,13 @@ fcb_append(struct fcb *fcb, uint16_t len, struct
fcb_entry *append_loc)
flash_entry[2] = (uint8_t)(fcb->f_active.fe_data_off >> 0);
flash_entry[3] = (uint8_t)(len >> 8);
flash_entry[4] = (uint8_t)(len >> 0);
- flash_entry[5] = crc8_calc(crc8_init(), flash_entry, FCB_ENTRY_SIZE - 1);
+ flash_entry[5] = crc8_calc(crc8_init(), flash_entry, FCB2_ENTRY_SIZE - 1);
- rc = fcb_write_to_sector(active,
- active->fe_entry_num * -fcb_len_in_flash(range, FCB_ENTRY_SIZE),
- flash_entry, FCB_ENTRY_SIZE);
+ rc = fcb2_write_to_sector(active,
+ active->fe_entry_num * -fcb2_len_in_flash(range, FCB2_ENTRY_SIZE),
+ flash_entry, FCB2_ENTRY_SIZE);
if (rc) {
- rc = FCB_ERR_FLASH;
+ rc = FCB2_ERR_FLASH;
goto err;
}
*append_loc = *active;
@@ -224,35 +227,35 @@ fcb_append(struct fcb *fcb, uint16_t len, struct
fcb_entry *append_loc)
append_loc->fe_data_len = len;
/* Prepare active element num and offset for new append */
- active->fe_data_off += fcb_element_length_in_flash(active, len);
+ active->fe_data_off += fcb2_element_length_in_flash(active, len);
active->fe_entry_num++;
os_mutex_release(&fcb->f_mtx);
- return FCB_OK;
+ return FCB2_OK;
err:
os_mutex_release(&fcb->f_mtx);
return rc;
}
int
-fcb_append_finish(struct fcb_entry *loc)
+fcb2_append_finish(struct fcb2_entry *loc)
{
int rc;
uint16_t crc;
uint8_t fl_crc[2];
uint32_t off;
- rc = fcb_elem_crc16(loc, &crc);
+ rc = fcb2_elem_crc16(loc, &crc);
if (rc) {
return rc;
}
put_be16(fl_crc, crc);
- off = loc->fe_data_off + fcb_len_in_flash(loc->fe_range, loc->fe_data_len);
+ off = loc->fe_data_off + fcb2_len_in_flash(loc->fe_range,
loc->fe_data_len);
- rc = fcb_write_to_sector(loc, off, fl_crc, sizeof(fl_crc));
+ rc = fcb2_write_to_sector(loc, off, fl_crc, sizeof(fl_crc));
if (rc) {
- return FCB_ERR_FLASH;
+ return FCB2_ERR_FLASH;
}
return 0;
}
diff --git a/fs/fcb2/src/fcb_area_info.c b/fs/fcb2/src/fcb_area_info.c
index 80c41c4..85a5b53 100644
--- a/fs/fcb2/src/fcb_area_info.c
+++ b/fs/fcb2/src/fcb_area_info.c
@@ -17,19 +17,19 @@
* under the License.
*/
-#include "fcb/fcb.h"
+#include "fcb/fcb2.h"
#include "fcb_priv.h"
int
-fcb_area_info(struct fcb *fcb, int sector, int *elemsp, int *bytesp)
+fcb2_area_info(struct fcb2 *fcb, int sector, int *elemsp, int *bytesp)
{
- struct fcb_entry loc;
- struct fcb_sector_info info;
+ struct fcb2_entry loc;
+ struct fcb2_sector_info info;
int rc;
int elems = 0;
int bytes = 0;
- rc = fcb_get_sector_info(fcb, sector, &info);
+ rc = fcb2_get_sector_info(fcb, sector, &info);
if (rc) {
return rc;
}
@@ -37,12 +37,12 @@ fcb_area_info(struct fcb *fcb, int sector, int *elemsp, int
*bytesp)
loc.fe_sector = info.si_sector_in_range + loc.fe_range->fsr_first_sector;
loc.fe_entry_num = 0;
/* In case caller passed oldest, get real sector number */
- if (sector == FCB_SECTOR_OLDEST) {
- sector = loc.fe_sector;
+ if (sector == FCB2_SECTOR_OLDEST) {
+ sector = loc.fe_sector;
}
while (1) {
- rc = fcb_getnext(fcb, &loc);
+ rc = fcb2_getnext(fcb, &loc);
if (rc) {
break;
}
diff --git a/fs/fcb2/src/fcb_elem_info.c b/fs/fcb2/src/fcb_elem_info.c
index a222f36..ea1d9b8 100644
--- a/fs/fcb2/src/fcb_elem_info.c
+++ b/fs/fcb2/src/fcb_elem_info.c
@@ -20,16 +20,16 @@
#include <crc/crc8.h>
#include <crc/crc16.h>
-#include "fcb/fcb.h"
+#include "fcb/fcb2.h"
#include "fcb_priv.h"
/*
* Given offset in flash area, compute crc16 over the data.
*/
int
-fcb_elem_crc16(struct fcb_entry *loc, uint16_t *c16p)
+fcb2_elem_crc16(struct fcb2_entry *loc, uint16_t *c16p)
{
- uint8_t tmp_str[FCB_TMP_BUF_SZ];
+ uint8_t tmp_str[FCB2_TMP_BUF_SZ];
int blk_sz;
uint16_t crc16;
uint32_t off;
@@ -46,9 +46,9 @@ fcb_elem_crc16(struct fcb_entry *loc, uint16_t *c16p)
blk_sz = sizeof(tmp_str);
}
- rc = fcb_read_from_sector(loc, off, tmp_str, blk_sz);
+ rc = fcb2_read_from_sector(loc, off, tmp_str, blk_sz);
if (rc) {
- return FCB_ERR_FLASH;
+ return FCB2_ERR_FLASH;
}
crc16 = crc16_ccitt(crc16, tmp_str, blk_sz);
}
@@ -58,9 +58,9 @@ fcb_elem_crc16(struct fcb_entry *loc, uint16_t *c16p)
}
static int
-fcb_read_entry(struct fcb_entry *loc)
+fcb2_read_entry(struct fcb2_entry *loc)
{
- uint8_t buf[FCB_ENTRY_SIZE];
+ uint8_t buf[FCB2_ENTRY_SIZE];
uint8_t entry_crc;
uint32_t entry_offset;
uint32_t offset;
@@ -68,30 +68,31 @@ fcb_read_entry(struct fcb_entry *loc)
int rc;
assert(loc != NULL);
- entry_offset = fcb_entry_location_in_range(loc);
+ entry_offset = fcb2_entry_location_in_range(loc);
rc = flash_area_read_is_empty(&loc->fe_range->fsr_flash_area,
entry_offset, buf, sizeof(buf));
if (rc < 0) {
/* Error reading from flash */
- return FCB_ERR_FLASH;
+ return FCB2_ERR_FLASH;
} else if (rc == 1) {
/* Entry not filled on flash */
- return FCB_ERR_NOVAR;
+ return FCB2_ERR_NOVAR;
}
/* Check entry CRC first */
- entry_crc = crc8_calc(crc8_init(), buf, FCB_ENTRY_SIZE - 1);
- if (entry_crc != buf[FCB_ENTRY_SIZE - 1]) {
- return FCB_ERR_CRC;
+ entry_crc = crc8_calc(crc8_init(), buf, FCB2_ENTRY_SIZE - 1);
+ if (entry_crc != buf[FCB2_ENTRY_SIZE - 1]) {
+ return FCB2_ERR_CRC;
}
offset = (buf[0] << 16) | (buf[1] << 8) | (buf[2] << 0);
len = (buf[3] << 8) | (buf[4] << 0);
/* Sanity check for entry */
- if (offset < fcb_len_in_flash(loc->fe_range, sizeof(struct fcb_disk_area))
||
- len > FCB_MAX_LEN ||
+ if (offset < fcb2_len_in_flash(loc->fe_range,
+ sizeof(struct fcb2_disk_area)) ||
+ len > FCB2_MAX_LEN ||
offset + len > entry_offset) {
/* Entry was found but data stored does not make any sense
* report as CRC error so it can be skipped */
- return FCB_ERR_CRC;
+ return FCB2_ERR_CRC;
}
/* Entry looks decent, pass to the caller */
@@ -102,30 +103,30 @@ fcb_read_entry(struct fcb_entry *loc)
}
int
-fcb_elem_info(struct fcb_entry *loc)
+fcb2_elem_info(struct fcb2_entry *loc)
{
int rc;
uint16_t crc16;
uint8_t fl_crc16[2];
/* Read entry from the end of the sector */
- rc = fcb_read_entry(loc);
+ rc = fcb2_read_entry(loc);
if (rc != 0) {
return rc;
}
/* Read actual data and calculate CRC */
- rc = fcb_elem_crc16(loc, &crc16);
+ rc = fcb2_elem_crc16(loc, &crc16);
if (rc) {
return rc;
}
/* Read CRC from flash */
- rc = fcb_read_from_sector(loc,
- loc->fe_data_off + fcb_len_in_flash(loc->fe_range, loc->fe_data_len),
+ rc = fcb2_read_from_sector(loc,
+ loc->fe_data_off + fcb2_len_in_flash(loc->fe_range, loc->fe_data_len),
&fl_crc16, 2);
if (rc || get_be16(fl_crc16) != crc16) {
- return FCB_ERR_CRC;
+ return FCB2_ERR_CRC;
}
return 0;
diff --git a/fs/fcb2/src/fcb_getnext.c b/fs/fcb2/src/fcb_getnext.c
index f90e26d..4a61dfb 100644
--- a/fs/fcb2/src/fcb_getnext.c
+++ b/fs/fcb2/src/fcb_getnext.c
@@ -18,32 +18,32 @@
*/
#include <stddef.h>
-#include "fcb/fcb.h"
+#include "fcb/fcb2.h"
#include "fcb_priv.h"
int
-fcb_getnext_in_area(struct fcb *fcb, struct fcb_entry *loc)
+fcb2_getnext_in_area(struct fcb2 *fcb, struct fcb2_entry *loc)
{
- int rc = FCB_ERR_CRC;
+ int rc = FCB2_ERR_CRC;
int off;
int len;
- while (rc == FCB_ERR_CRC) {
+ while (rc == FCB2_ERR_CRC) {
len = loc->fe_data_len;
off = loc->fe_data_off;
loc->fe_data_len = 0;
loc->fe_entry_num++;
- rc = fcb_elem_info(loc);
+ rc = fcb2_elem_info(loc);
if (len) {
- loc->fe_data_off = off + fcb_len_in_flash(loc->fe_range, len) +
- fcb_len_in_flash(loc->fe_range, 2);
+ loc->fe_data_off = off + fcb2_len_in_flash(loc->fe_range, len) +
+ fcb2_len_in_flash(loc->fe_range, 2);
}
}
return rc;
}
int
-fcb_getnext_nolock(struct fcb *fcb, struct fcb_entry *loc)
+fcb2_getnext_nolock(struct fcb2 *fcb, struct fcb2_entry *loc)
{
int rc;
@@ -52,47 +52,47 @@ fcb_getnext_nolock(struct fcb *fcb, struct fcb_entry *loc)
* Find the first one we have in flash.
*/
loc->fe_sector = fcb->f_oldest_sec;
- loc->fe_range = fcb_get_sector_range(fcb, loc->fe_sector);
+ loc->fe_range = fcb2_get_sector_range(fcb, loc->fe_sector);
}
if (loc->fe_entry_num == 0) {
/*
* If offset is zero, we serve the first entry from the area.
*/
loc->fe_entry_num = 1;
- rc = fcb_elem_info(loc);
+ rc = fcb2_elem_info(loc);
} else {
- rc = fcb_getnext_in_area(fcb, loc);
+ rc = fcb2_getnext_in_area(fcb, loc);
}
switch (rc) {
case 0:
return 0;
- case FCB_ERR_CRC:
+ case FCB2_ERR_CRC:
break;
default:
goto next_sector;
}
- while (rc == FCB_ERR_CRC) {
- rc = fcb_getnext_in_area(fcb, loc);
+ while (rc == FCB2_ERR_CRC) {
+ rc = fcb2_getnext_in_area(fcb, loc);
if (rc == 0) {
return 0;
}
- if (rc != FCB_ERR_CRC) {
+ if (rc != FCB2_ERR_CRC) {
/*
* Moving to next sector.
*/
next_sector:
if (loc->fe_sector == fcb->f_active.fe_sector) {
- return FCB_ERR_NOVAR;
+ return FCB2_ERR_NOVAR;
}
- loc->fe_sector = fcb_getnext_sector(fcb, loc->fe_sector);
- loc->fe_range = fcb_get_sector_range(fcb, loc->fe_sector);
+ loc->fe_sector = fcb2_getnext_sector(fcb, loc->fe_sector);
+ loc->fe_range = fcb2_get_sector_range(fcb, loc->fe_sector);
loc->fe_entry_num = 1;
- rc = fcb_elem_info(loc);
+ rc = fcb2_elem_info(loc);
switch (rc) {
case 0:
return 0;
- case FCB_ERR_CRC:
+ case FCB2_ERR_CRC:
break;
default:
goto next_sector;
@@ -104,15 +104,15 @@ next_sector:
}
int
-fcb_getnext(struct fcb *fcb, struct fcb_entry *loc)
+fcb2_getnext(struct fcb2 *fcb, struct fcb2_entry *loc)
{
int rc;
rc = os_mutex_pend(&fcb->f_mtx, OS_WAIT_FOREVER);
if (rc && rc != OS_NOT_STARTED) {
- return FCB_ERR_ARGS;
+ return FCB2_ERR_ARGS;
}
- rc = fcb_getnext_nolock(fcb, loc);
+ rc = fcb2_getnext_nolock(fcb, loc);
os_mutex_release(&fcb->f_mtx);
return rc;
diff --git a/fs/fcb2/src/fcb_getprev.c b/fs/fcb2/src/fcb_getprev.c
index e98c86c..2305655 100644
--- a/fs/fcb2/src/fcb_getprev.c
+++ b/fs/fcb2/src/fcb_getprev.c
@@ -18,11 +18,11 @@
*/
#include <stddef.h>
-#include "fcb/fcb.h"
+#include "fcb/fcb2.h"
#include "fcb_priv.h"
static int
-fcb_sector_find_last(struct fcb *fcb, struct fcb_entry *loc)
+fcb2_sector_find_last(struct fcb2 *fcb, struct fcb2_entry *loc)
{
int rc;
int last_valid = 0;
@@ -30,11 +30,11 @@ fcb_sector_find_last(struct fcb *fcb, struct fcb_entry *loc)
loc->fe_entry_num = 1;
do {
- rc = fcb_elem_info(loc);
+ rc = fcb2_elem_info(loc);
if (rc == 0) {
last_valid = loc->fe_entry_num;
}
- if (rc == FCB_ERR_NOVAR) {
+ if (rc == FCB2_ERR_NOVAR) {
/*
* Out entries in this sector
*/
@@ -43,10 +43,10 @@ fcb_sector_find_last(struct fcb *fcb, struct fcb_entry *loc)
/*
* No valid entries in this sector.
*/
- return FCB_ERR_NOVAR;
+ return FCB2_ERR_NOVAR;
} else {
loc->fe_entry_num = last_valid;
- rc = fcb_elem_info(loc);
+ rc = fcb2_elem_info(loc);
assert(rc == 0); /* must be; just succeeded a bit earlier */
return rc;
}
@@ -57,13 +57,13 @@ fcb_sector_find_last(struct fcb *fcb, struct fcb_entry *loc)
}
int
-fcb_getprev(struct fcb *fcb, struct fcb_entry *loc)
+fcb2_getprev(struct fcb2 *fcb, struct fcb2_entry *loc)
{
int rc;
rc = os_mutex_pend(&fcb->f_mtx, OS_WAIT_FOREVER);
if (rc && rc != OS_NOT_STARTED) {
- return FCB_ERR_ARGS;
+ return FCB2_ERR_ARGS;
}
if (loc->fe_range == NULL) {
/*
@@ -78,20 +78,20 @@ fcb_getprev(struct fcb *fcb, struct fcb_entry *loc)
* Need to get from previous sector.
*/
if (loc->fe_sector == fcb->f_oldest_sec) {
- return FCB_ERR_NOVAR;
+ return FCB2_ERR_NOVAR;
}
if (loc->fe_sector == 0) {
loc->fe_sector = fcb->f_sector_cnt - 1;
} else {
loc->fe_sector--;
}
- loc->fe_range = fcb_get_sector_range(fcb, loc->fe_sector);
- rc = fcb_sector_find_last(fcb, loc);
+ loc->fe_range = fcb2_get_sector_range(fcb, loc->fe_sector);
+ rc = fcb2_sector_find_last(fcb, loc);
if (rc == 0) {
break;
}
} else {
- rc = fcb_elem_info(loc);
+ rc = fcb2_elem_info(loc);
if (rc == 0) {
break;
}
diff --git a/fs/fcb2/src/fcb_priv.h b/fs/fcb2/src/fcb_priv.h
index a1ec9d5..d02784f 100644
--- a/fs/fcb2/src/fcb_priv.h
+++ b/fs/fcb2/src/fcb_priv.h
@@ -16,32 +16,32 @@
* specific language governing permissions and limitations
* under the License.
*/
-#ifndef __SYS_FCB_PRIV_H_
-#define __SYS_FCB_PRIV_H_
+#ifndef __SYS_FCB2_PRIV_H_
+#define __SYS_FCB2_PRIV_H_
#ifdef __cplusplus
extern "C" {
#endif
-#define FCB_TMP_BUF_SZ 32
+#define FCB2_TMP_BUF_SZ 32
-#define FCB_ID_GT(a, b) (((int16_t)(a) - (int16_t)(b)) > 0)
+#define FCB2_ID_GT(a, b) (((int16_t)(a) - (int16_t)(b)) > 0)
-struct fcb_disk_area {
+struct fcb2_disk_area {
uint32_t fd_magic;
uint8_t fd_ver;
uint8_t _pad;
uint16_t fd_id;
};
-struct fcb_sector_info {
+struct fcb2_sector_info {
struct flash_sector_range *si_range; /* Sector range */
uint32_t si_sector_offset; /* Sector offset in fcb */
uint16_t si_sector_in_range; /* Sector number relative to
si_range */
};
static inline int
-fcb_len_in_flash(const struct flash_sector_range *range, uint16_t len)
+fcb2_len_in_flash(const struct flash_sector_range *range, uint16_t len)
{
if (range->fsr_align <= 1) {
return len;
@@ -49,10 +49,10 @@ fcb_len_in_flash(const struct flash_sector_range *range,
uint16_t len)
return (len + (range->fsr_align - 1)) & ~(range->fsr_align - 1);
}
-int fcb_getnext_in_area(struct fcb *fcb, struct fcb_entry *loc);
+int fcb2_getnext_in_area(struct fcb2 *fcb, struct fcb2_entry *loc);
static inline int
-fcb_getnext_sector(struct fcb *fcb, int sector)
+fcb2_getnext_sector(struct fcb2 *fcb, int sector)
{
if (++sector >= fcb->f_sector_cnt) {
sector = 0;
@@ -60,63 +60,63 @@ fcb_getnext_sector(struct fcb *fcb, int sector)
return sector;
}
-int fcb_getnext_nolock(struct fcb *fcb, struct fcb_entry *loc);
+int fcb2_getnext_nolock(struct fcb2 *fcb, struct fcb2_entry *loc);
-int fcb_elem_info(struct fcb_entry *loc);
-int fcb_elem_crc16(struct fcb_entry *loc, uint16_t *c16p);
-int fcb_sector_hdr_init(struct fcb *fcb, int sector, uint16_t id);
-int fcb_entry_location_in_range(const struct fcb_entry *loc);
+int fcb2_elem_info(struct fcb2_entry *loc);
+int fcb2_elem_crc16(struct fcb2_entry *loc, uint16_t *c16p);
+int fcb2_sector_hdr_init(struct fcb2 *fcb, int sector, uint16_t id);
+int fcb2_entry_location_in_range(const struct fcb2_entry *loc);
-struct flash_sector_range *fcb_get_sector_range(const struct fcb *fcb,
- int sector);
+struct flash_sector_range *fcb2_get_sector_range(const struct fcb2 *fcb,
+ int sector);
-int fcb_sector_hdr_read(struct fcb *, struct flash_sector_range *srp,
- uint16_t sec, struct fcb_disk_area *fdap);
+int fcb2_sector_hdr_read(struct fcb2 *, struct flash_sector_range *srp,
+ uint16_t sec, struct fcb2_disk_area *fdap);
/**
* Finds sector range for given fcb sector.
*/
-struct flash_sector_range *fcb_get_sector_range(const struct fcb *fcb,
- int sector);
+struct flash_sector_range *fcb2_get_sector_range(const struct fcb2 *fcb,
+ int sector);
/**
* @brief Get information about sector from fcb.
*
* @param fcb fcb to check sector
* @param sector fcb sector number
- * sector can be specified as FCB_SECTOR_OLDEST.
+ * sector can be specified as FCB2_SECTOR_OLDEST.
* @param info pointer to structure that will receive sector information
*
* @return 0 if sector information was extracted correctly
- * FCB_ERR_ARGS if sector number was outside fcb range.
+ * FCB2_ERR_ARGS if sector number was outside fcb range.
*/
-int fcb_get_sector_info(const struct fcb *fcb, int sector,
- struct fcb_sector_info *info);
+int fcb2_get_sector_info(const struct fcb2 *fcb, int sector,
+ struct fcb2_sector_info *info);
/**
* @brief Write data to fcb sector.
*
- * @param loc location of the sector from fcb_get_sector_loc().
+ * @param loc location of the sector from fcb2_get_sector_loc().
* @param off offset from the beginning of the sector to start write
* @param buf pointer to data to be written
* @param len number of bytes to write to the fcb sector
*
* @return 0 if write was successful non zero otherwise.
*/
-int fcb_write_to_sector(struct fcb_entry *loc, int off,
- const void *buf, int len);
+int fcb2_write_to_sector(struct fcb2_entry *loc, int off,
+ const void *buf, int len);
/**
* @brief Read data from fcb sector.
*
- * @param loc location of the sector from fcb_get_sector_loc().
+ * @param loc location of the sector from fcb2_get_sector_loc().
* @param off offset from the beginning of the sector to start read
* @param buf pointer to output buffer
* @param len number of bytes to read from the fcb sector
*
* @return 0 if read was successful non zero otherwise.
*/
-int fcb_read_from_sector(struct fcb_entry *loc, int off, void *buf, int len);
+int fcb2_read_from_sector(struct fcb2_entry *loc, int off, void *buf, int len);
#ifdef __cplusplus
}
diff --git a/fs/fcb2/src/fcb_rotate.c b/fs/fcb2/src/fcb_rotate.c
index 53364e5..53bb13e 100644
--- a/fs/fcb2/src/fcb_rotate.c
+++ b/fs/fcb2/src/fcb_rotate.c
@@ -17,11 +17,11 @@
* under the License.
*/
-#include "fcb/fcb.h"
+#include "fcb/fcb2.h"
#include "fcb_priv.h"
int
-fcb_rotate(struct fcb *fcb)
+fcb2_rotate(struct fcb2 *fcb)
{
int sector;
int rc = 0;
@@ -29,34 +29,34 @@ fcb_rotate(struct fcb *fcb)
rc = os_mutex_pend(&fcb->f_mtx, OS_WAIT_FOREVER);
if (rc && rc != OS_NOT_STARTED) {
- return FCB_ERR_ARGS;
+ return FCB2_ERR_ARGS;
}
- rc = fcb_sector_erase(fcb, fcb->f_oldest_sec);
+ rc = fcb2_sector_erase(fcb, fcb->f_oldest_sec);
if (rc) {
- rc = FCB_ERR_FLASH;
+ rc = FCB2_ERR_FLASH;
goto out;
}
if (fcb->f_oldest_sec == fcb->f_active.fe_sector) {
/*
* Need to create a new active sector, as we're wiping the current.
*/
- sector = fcb_getnext_sector(fcb, fcb->f_oldest_sec);
+ sector = fcb2_getnext_sector(fcb, fcb->f_oldest_sec);
- rc = fcb_sector_hdr_init(fcb, sector, fcb->f_active_id + 1);
+ rc = fcb2_sector_hdr_init(fcb, sector, fcb->f_active_id + 1);
if (rc) {
goto out;
}
- range = fcb_get_sector_range(fcb, sector);
+ range = fcb2_get_sector_range(fcb, sector);
fcb->f_active.fe_sector = sector;
fcb->f_active.fe_range = range;
fcb->f_active.fe_data_off =
- fcb_len_in_flash(range, sizeof(struct fcb_disk_area));
+ fcb2_len_in_flash(range, sizeof(struct fcb2_disk_area));
fcb->f_active.fe_entry_num = 1;
fcb->f_active.fe_data_len = 0;
fcb->f_active_id++;
}
- fcb->f_oldest_sec = fcb_getnext_sector(fcb, fcb->f_oldest_sec);
+ fcb->f_oldest_sec = fcb2_getnext_sector(fcb, fcb->f_oldest_sec);
out:
os_mutex_release(&fcb->f_mtx);
return rc;
diff --git a/fs/fcb2/src/fcb_walk.c b/fs/fcb2/src/fcb_walk.c
index e6e1084..7e2d972 100644
--- a/fs/fcb2/src/fcb_walk.c
+++ b/fs/fcb2/src/fcb_walk.c
@@ -17,16 +17,16 @@
* under the License.
*/
-#include "fcb/fcb.h"
+#include "fcb/fcb2.h"
#include "fcb_priv.h"
int
-fcb_get_sector_loc(const struct fcb *fcb, int sector, struct fcb_entry *entry)
+fcb2_get_sector_loc(const struct fcb2 *fcb, int sector, struct fcb2_entry
*entry)
{
- struct fcb_sector_info info;
+ struct fcb2_sector_info info;
int rc = 0;
- rc = fcb_get_sector_info(fcb, sector, &info);
+ rc = fcb2_get_sector_info(fcb, sector, &info);
if (rc == 0) {
entry->fe_range = info.si_range;
entry->fe_sector = info.si_sector_in_range +
@@ -41,22 +41,22 @@ fcb_get_sector_loc(const struct fcb *fcb, int sector,
struct fcb_entry *entry)
* only elements with that flash_area are reported.
*/
int
-fcb_walk(struct fcb *fcb, int sector, fcb_walk_cb cb, void *cb_arg)
+fcb2_walk(struct fcb2 *fcb, int sector, fcb2_walk_cb cb, void *cb_arg)
{
- struct fcb_entry loc;
+ struct fcb2_entry loc;
int rc;
- fcb_get_sector_loc(fcb, sector, &loc);
+ fcb2_get_sector_loc(fcb, sector, &loc);
loc.fe_data_off = 0;
loc.fe_entry_num = 0;
rc = os_mutex_pend(&fcb->f_mtx, OS_WAIT_FOREVER);
if (rc && rc != OS_NOT_STARTED) {
- return FCB_ERR_ARGS;
+ return FCB2_ERR_ARGS;
}
- while ((rc = fcb_getnext_nolock(fcb, &loc)) != FCB_ERR_NOVAR) {
+ while ((rc = fcb2_getnext_nolock(fcb, &loc)) != FCB2_ERR_NOVAR) {
os_mutex_release(&fcb->f_mtx);
- if (sector != FCB_SECTOR_OLDEST && loc.fe_sector != sector) {
+ if (sector != FCB2_SECTOR_OLDEST && loc.fe_sector != sector) {
return 0;
}
rc = cb(&loc, cb_arg);
diff --git a/sys/config/include/config/config_fcb.h
b/sys/config/include/config/config_fcb.h
index 9c75fc9..ccc4c7d 100644
--- a/sys/config/include/config/config_fcb.h
+++ b/sys/config/include/config/config_fcb.h
@@ -19,6 +19,8 @@
#ifndef __SYS_CONFIG_FCB_H_
#define __SYS_CONFIG_FCB_H_
+#include <fcb/fcb.h>
+
#include "config/config.h"
#include "config/config_store.h"
diff --git a/sys/config/include/config/config_fcb2.h
b/sys/config/include/config/config_fcb2.h
index 7072521..114a909 100644
--- a/sys/config/include/config/config_fcb2.h
+++ b/sys/config/include/config/config_fcb2.h
@@ -19,6 +19,8 @@
#ifndef __SYS_CONFIG_FCB2_H_
#define __SYS_CONFIG_FCB2_H_
+#include <fcb/fcb2.h>
+
#include "config/config.h"
#include "config/config_store.h"
@@ -28,7 +30,7 @@ extern "C" {
struct conf_fcb2 {
struct conf_store cf2_store;
- struct fcb cf2_fcb;
+ struct fcb2 cf2_fcb;
};
/**
diff --git a/sys/config/include/config/config_generic_kv.h
b/sys/config/include/config/config_generic_kv.h
index d9997c3..6d7b3c9 100644
--- a/sys/config/include/config/config_generic_kv.h
+++ b/sys/config/include/config/config_generic_kv.h
@@ -20,8 +20,14 @@
#define __SYS_CONFIG_GENERIC_KV_H_
#include <stddef.h>
+
#include "config/config.h"
+#if MYNEWT_VAL(CONFIG_FCB)
#include "fcb/fcb.h"
+#endif
+#if MYNEWT_VAL(CONFIG_FCB2)
+#include "fcb/fcb2.h"
+#endif
#ifdef __cplusplus
extern "C" {
@@ -45,7 +51,12 @@ extern "C" {
*
* @return OS_OK on success, error code otherwise
*/
-int conf_fcb_kv_load(struct fcb *fcb, const char *name, char *value, size_t
len);
+#if MYNEWT_VAL(CONFIG_FCB)
+int conf_fcb_kv_load(struct fcb *, const char *name, char *value, size_t len);
+#endif
+#if MYNEWT_VAL(CONFIG_FCB2)
+int conf_fcb2_kv_load(struct fcb2 *, const char *name, char *value, size_t
len);
+#endif
/**
* Store value for given key to FCB key-value storage area
@@ -59,7 +70,12 @@ int conf_fcb_kv_load(struct fcb *fcb, const char *name, char
*value, size_t len)
*
* @return OS_OK on success, error code otherwise
*/
-int conf_fcb_kv_save(struct fcb *fcb, const char *name, const char *value);
+#if MYNEWT_VAL(CONFIG_FCB)
+int conf_fcb_kv_save(struct fcb *, const char *name, const char *value);
+#endif
+#if MYNEWT_VAL(CONFIG_FCB2)
+int conf_fcb2_kv_save(struct fcb2 *, const char *name, const char *value);
+#endif
#ifdef __cplusplus
}
diff --git a/sys/config/selftest-fcb2/src/conf_test_fcb2.c
b/sys/config/selftest-fcb2/src/conf_test_fcb2.c
index 8f097fd..4210179 100644
--- a/sys/config/selftest-fcb2/src/conf_test_fcb2.c
+++ b/sys/config/selftest-fcb2/src/conf_test_fcb2.c
@@ -23,7 +23,7 @@
#include <os/mynewt.h>
#include <flash_map/flash_map.h>
#include <testutil/testutil.h>
-#include <fcb/fcb.h>
+#include <fcb/fcb2.h>
#include <config/config.h>
#include <config/config_fcb2.h>
#include <config_priv.h>
diff --git a/sys/config/selftest-fcb2/src/conf_test_fcb2.h
b/sys/config/selftest-fcb2/src/conf_test_fcb2.h
index 3b2b63f..c5e81e8 100644
--- a/sys/config/selftest-fcb2/src/conf_test_fcb2.h
+++ b/sys/config/selftest-fcb2/src/conf_test_fcb2.h
@@ -24,7 +24,7 @@
#include <os/mynewt.h>
#include <flash_map/flash_map.h>
#include <testutil/testutil.h>
-#include <fcb/fcb.h>
+#include <fcb/fcb2.h>
#include <config/config.h>
#include <config/config_fcb2.h>
#include <config_priv.h>
diff --git
a/sys/config/selftest-fcb2/src/testcases/config_test_compress_reset.c
b/sys/config/selftest-fcb2/src/testcases/config_test_compress_reset.c
index f74c8da..cc8eb1f 100644
--- a/sys/config/selftest-fcb2/src/testcases/config_test_compress_reset.c
+++ b/sys/config/selftest-fcb2/src/testcases/config_test_compress_reset.c
@@ -65,9 +65,9 @@ TEST_CASE_SELF(config_test_compress_reset)
}
fa = cf.cf2_fcb.f_active_id;
- rc = fcb_append_to_scratch(&cf.cf2_fcb);
+ rc = fcb2_append_to_scratch(&cf.cf2_fcb);
TEST_ASSERT(rc == 0);
- TEST_ASSERT(fcb_free_sector_cnt(&cf.cf2_fcb) == 0);
+ TEST_ASSERT(fcb2_free_sector_cnt(&cf.cf2_fcb) == 0);
TEST_ASSERT(fa != cf.cf2_fcb.f_active_id);
config_wipe_srcs();
@@ -85,7 +85,7 @@ TEST_CASE_SELF(config_test_compress_reset)
rc = conf_fcb2_dst(&cf);
TEST_ASSERT(rc == 0);
- TEST_ASSERT(fcb_free_sector_cnt(&cf.cf2_fcb) == 1);
+ TEST_ASSERT(fcb2_free_sector_cnt(&cf.cf2_fcb) == 1);
TEST_ASSERT(fa == cf.cf2_fcb.f_active_id);
c2_var_count = 0;
diff --git a/sys/config/src/config_fcb2.c b/sys/config/src/config_fcb2.c
index f3627ae..0874685 100644
--- a/sys/config/src/config_fcb2.c
+++ b/sys/config/src/config_fcb2.c
@@ -21,7 +21,7 @@
#if MYNEWT_VAL(CONFIG_FCB2)
-#include <fcb/fcb.h>
+#include <fcb/fcb2.h>
#include <string.h>
#include "config/config.h"
@@ -65,7 +65,7 @@ conf_fcb2_src(struct conf_fcb2 *cf)
cf->cf2_fcb.f_scratch_cnt = 0;
}
while (1) {
- rc = fcb_init(&cf->cf2_fcb);
+ rc = fcb2_init(&cf->cf2_fcb);
if (rc) {
return OS_INVALID_PARM;
}
@@ -75,8 +75,8 @@ conf_fcb2_src(struct conf_fcb2 *cf)
* situation is recognized by checking if the scratch block is missing.
*/
if (cf->cf2_fcb.f_scratch_cnt &&
- fcb_free_sector_cnt(&cf->cf2_fcb) < 1) {
- fcb_sector_erase(&cf->cf2_fcb, cf->cf2_fcb.f_active.fe_sector);
+ fcb2_free_sector_cnt(&cf->cf2_fcb) < 1) {
+ fcb2_sector_erase(&cf->cf2_fcb, cf->cf2_fcb.f_active.fe_sector);
} else {
break;
}
@@ -98,7 +98,7 @@ conf_fcb2_dst(struct conf_fcb2 *cf)
}
static int
-conf_fcb2_load_cb(struct fcb_entry *loc, void *arg)
+conf_fcb2_load_cb(struct fcb2_entry *loc, void *arg)
{
struct conf_fcb2_load_cb_arg *argp;
char buf[CONF_MAX_NAME_LEN + CONF_MAX_VAL_LEN + 32];
@@ -114,7 +114,7 @@ conf_fcb2_load_cb(struct fcb_entry *loc, void *arg)
len = sizeof(buf) - 1;
}
- rc = fcb_read(loc, 0, buf, len);
+ rc = fcb2_read(loc, 0, buf, len);
if (rc) {
return 0;
}
@@ -137,7 +137,7 @@ conf_fcb2_load(struct conf_store *cs, conf_store_load_cb
cb, void *cb_arg)
arg.cb = cb;
arg.cb_arg = cb_arg;
- rc = fcb_walk(&cf->cf2_fcb, FCB_SECTOR_OLDEST, conf_fcb2_load_cb, &arg);
+ rc = fcb2_walk(&cf->cf2_fcb, FCB2_SECTOR_OLDEST, conf_fcb2_load_cb, &arg);
if (rc) {
return OS_EINVAL;
}
@@ -145,11 +145,11 @@ conf_fcb2_load(struct conf_store *cs, conf_store_load_cb
cb, void *cb_arg)
}
static int
-conf_fcb2_var_read(struct fcb_entry *loc, char *buf, char **name, char **val)
+conf_fcb2_var_read(struct fcb2_entry *loc, char *buf, char **name, char **val)
{
int rc;
- rc = fcb_read(loc, 0, buf, loc->fe_data_len);
+ rc = fcb2_read(loc, 0, buf, loc->fe_data_len);
if (rc) {
return rc;
}
@@ -159,7 +159,7 @@ conf_fcb2_var_read(struct fcb_entry *loc, char *buf, char
**name, char **val)
}
static void
-conf_fcb2_compress_internal(struct fcb *fcb,
+conf_fcb2_compress_internal(struct fcb2 *fcb,
int (*copy_or_not)(const char *name, const char
*val,
void *cn_arg),
void *cn_arg)
@@ -167,20 +167,20 @@ conf_fcb2_compress_internal(struct fcb *fcb,
int rc;
char buf1[CONF_MAX_NAME_LEN + CONF_MAX_VAL_LEN + 32];
char buf2[CONF_MAX_NAME_LEN + CONF_MAX_VAL_LEN + 32];
- struct fcb_entry loc1;
- struct fcb_entry loc2;
+ struct fcb2_entry loc1;
+ struct fcb2_entry loc2;
char *name1, *val1;
char *name2, *val2;
int copy;
- rc = fcb_append_to_scratch(fcb);
+ rc = fcb2_append_to_scratch(fcb);
if (rc) {
return; /* XXX */
}
loc1.fe_range = NULL;
loc1.fe_entry_num = 0;
- while (fcb_getnext(fcb, &loc1) == 0) {
+ while (fcb2_getnext(fcb, &loc1) == 0) {
if (loc1.fe_sector != fcb->f_oldest_sec) {
break;
}
@@ -193,7 +193,7 @@ conf_fcb2_compress_internal(struct fcb *fcb,
}
loc2 = loc1;
copy = 1;
- while (fcb_getnext(fcb, &loc2) == 0) {
+ while (fcb2_getnext(fcb, &loc2) == 0) {
rc = conf_fcb2_var_read(&loc2, buf2, &name2, &val2);
if (rc) {
continue;
@@ -216,21 +216,21 @@ conf_fcb2_compress_internal(struct fcb *fcb,
/*
* Can't find one. Must copy.
*/
- rc = fcb_read(&loc1, 0, buf1, loc1.fe_data_len);
+ rc = fcb2_read(&loc1, 0, buf1, loc1.fe_data_len);
if (rc) {
continue;
}
- rc = fcb_append(fcb, loc1.fe_data_len, &loc2);
+ rc = fcb2_append(fcb, loc1.fe_data_len, &loc2);
if (rc) {
continue;
}
- rc = fcb_write(&loc2, 0, buf1, loc1.fe_data_len);
+ rc = fcb2_write(&loc2, 0, buf1, loc1.fe_data_len);
if (rc) {
continue;
}
- fcb_append_finish(&loc2);
+ fcb2_append_finish(&loc2);
}
- rc = fcb_rotate(fcb);
+ rc = fcb2_rotate(fcb);
if (rc) {
/* XXXX */
;
@@ -238,15 +238,15 @@ conf_fcb2_compress_internal(struct fcb *fcb,
}
static int
-conf_fcb2_append(struct fcb *fcb, char *buf, int len)
+conf_fcb2_append(struct fcb2 *fcb, char *buf, int len)
{
int rc;
int i;
- struct fcb_entry loc;
+ struct fcb2_entry loc;
for (i = 0; i < 10; i++) {
- rc = fcb_append(fcb, len, &loc);
- if (rc != FCB_ERR_NOSPACE) {
+ rc = fcb2_append(fcb, len, &loc);
+ if (rc != FCB2_ERR_NOSPACE) {
break;
}
if (fcb->f_scratch_cnt == 0) {
@@ -257,11 +257,11 @@ conf_fcb2_append(struct fcb *fcb, char *buf, int len)
if (rc) {
return OS_EINVAL;
}
- rc = fcb_write(&loc, 0, buf, len);
+ rc = fcb2_write(&loc, 0, buf, len);
if (rc) {
return OS_EINVAL;
}
- fcb_append_finish(&loc);
+ fcb2_append_finish(&loc);
return OS_OK;
}
@@ -270,7 +270,7 @@ conf_fcb2_save(struct conf_store *cs, const char *name,
const char *value)
{
struct conf_fcb2 *cf = (struct conf_fcb2 *)cs;
- return conf_fcb_kv_save(&cf->cf2_fcb, name, value);
+ return conf_fcb2_kv_save(&cf->cf2_fcb, name, value);
}
void
@@ -283,7 +283,7 @@ conf_fcb2_compress(struct conf_fcb2 *cf,
}
static int
-conf_kv_load_cb(struct fcb_entry *loc, void *arg)
+conf_kv_load_cb(struct fcb2_entry *loc, void *arg)
{
struct conf_kv_load_cb_arg *cb_arg = arg;
char buf[CONF_MAX_NAME_LEN + CONF_MAX_VAL_LEN + 32];
@@ -297,7 +297,7 @@ conf_kv_load_cb(struct fcb_entry *loc, void *arg)
len = sizeof(buf) - 1;
}
- rc = fcb_read(loc, 0, buf, len);
+ rc = fcb2_read(loc, 0, buf, len);
if (rc) {
return 0;
}
@@ -319,7 +319,7 @@ conf_kv_load_cb(struct fcb_entry *loc, void *arg)
}
int
-conf_fcb_kv_load(struct fcb *fcb, const char *name, char *value, size_t len)
+conf_fcb2_kv_load(struct fcb2 *fcb, const char *name, char *value, size_t len)
{
struct conf_kv_load_cb_arg arg;
int rc;
@@ -328,7 +328,7 @@ conf_fcb_kv_load(struct fcb *fcb, const char *name, char
*value, size_t len)
arg.value = value;
arg.len = len;
- rc = fcb_walk(fcb, 0, conf_kv_load_cb, &arg);
+ rc = fcb2_walk(fcb, 0, conf_kv_load_cb, &arg);
if (rc) {
return OS_EINVAL;
}
@@ -337,7 +337,7 @@ conf_fcb_kv_load(struct fcb *fcb, const char *name, char
*value, size_t len)
}
int
-conf_fcb_kv_save(struct fcb *fcb, const char *name, const char *value)
+conf_fcb2_kv_save(struct fcb2 *fcb, const char *name, const char *value)
{
char buf[CONF_MAX_NAME_LEN + CONF_MAX_VAL_LEN + 32];
int len;
diff --git a/sys/config/src/config_init.c b/sys/config/src/config_init.c
index ca5cccc..7a8b021 100644
--- a/sys/config/src/config_init.c
+++ b/sys/config/src/config_init.c
@@ -47,7 +47,7 @@ config_init_fs(void)
}
#elif MYNEWT_VAL(CONFIG_FCB)
-#include "fcb/fcb.h"
+
#include "config/config_fcb.h"
static struct flash_area conf_fcb_area[MYNEWT_VAL(CONFIG_FCB_NUM_AREAS) + 1];
@@ -90,7 +90,6 @@ config_init_fcb(void)
#elif MYNEWT_VAL(CONFIG_FCB2)
-#include "fcb/fcb.h"
#include "config/config_fcb2.h"
static struct flash_sector_range config_init_fcb2_sector_range;
diff --git a/sys/log/full/include/log/log_fcb.h
b/sys/log/full/include/log/log_fcb.h
index 05e52f0..c87937f 100644
--- a/sys/log/full/include/log/log_fcb.h
+++ b/sys/log/full/include/log/log_fcb.h
@@ -23,13 +23,20 @@
extern "C" {
#endif
+#if MYNEWT_VAL(LOG_FCB)
#include <fcb/fcb.h>
+#elif MYNEWT_VAL(LOG_FCB2)
+#include <fcb/fcb2.h>
+#endif
/** An individual fcb log bookmark. */
struct log_fcb_bmark {
/* FCB entry that the bookmark points to. */
+#if MYNEWT_VAL(LOG_FCB)
struct fcb_entry lfb_entry;
-
+#elif MYNEWT_VAL(LOG_FCB2)
+ struct fcb2_entry lfb_entry;
+#endif
/* The index of the log entry that the FCB entry contains. */
uint32_t lfb_index;
};
@@ -52,24 +59,36 @@ struct log_fcb_bset {
/**
* fcb_log is needed as the number of entries in a log
*/
+#if MYNEWT_VAL(LOG_FCB)
+
struct fcb_log {
struct fcb fl_fcb;
uint8_t fl_entries;
#if MYNEWT_VAL(LOG_STORAGE_WATERMARK)
-#if MYNEWT_VAL(LOG_FCB)
/* Internal - tracking storage use */
uint32_t fl_watermark_off;
#endif
-#if MYNEWT_VAL(LOG_FCB2)
+#if MYNEWT_VAL(LOG_FCB_BOOKMARKS)
+ struct log_fcb_bset fl_bset;
+#endif
+};
+
+#elif MYNEWT_VAL(LOG_FCB2)
+
+struct fcb_log {
+ struct fcb2 fl_fcb;
+ uint8_t fl_entries;
+
+#if MYNEWT_VAL(LOG_STORAGE_WATERMARK)
uint16_t fl_watermark_sec;
uint32_t fl_watermark_off;
#endif
-#endif
#if MYNEWT_VAL(LOG_FCB_BOOKMARKS)
struct log_fcb_bset fl_bset;
#endif
};
+#endif
#if MYNEWT_VAL(LOG_FCB_BOOKMARKS)
@@ -125,8 +144,13 @@ log_fcb_closest_bmark(const struct fcb_log *fcb_log,
uint32_t index);
* @param entry The entry the bookmark should point to.
* @param index The log entry index of the bookmark.
*/
+#if MYNEWT_VAL(LOG_FCB)
void log_fcb_add_bmark(struct fcb_log *fcb_log, const struct fcb_entry *entry,
uint32_t index);
+#elif MYNEWT_VAL(LOG_FCB2)
+void log_fcb_add_bmark(struct fcb_log *fcb_log, const struct fcb2_entry *entry,
+ uint32_t index);
+#endif
#endif
#ifdef __cplusplus
diff --git
a/sys/log/full/selftest/fcb2_bookmarks/src/log_test_fcb_bookmarks_util.c
b/sys/log/full/selftest/fcb2_bookmarks/src/log_test_fcb_bookmarks_util.c
index 25d7018..d422121 100644
--- a/sys/log/full/selftest/fcb2_bookmarks/src/log_test_fcb_bookmarks_util.c
+++ b/sys/log/full/selftest/fcb2_bookmarks/src/log_test_fcb_bookmarks_util.c
@@ -58,7 +58,7 @@ ltfbu_max_entries(void)
/* "+ 2" for CRC. */
entry_size = LOG_BASE_ENTRY_HDR_SIZE + ltfbu_cfg.body_len +
- FCB_ENTRY_SIZE + 2;
+ FCB2_ENTRY_SIZE + 2;
entry_space = LTFBU_SECTOR_SIZE - 8;
return entry_space / entry_size;
@@ -216,7 +216,7 @@ ltfbu_init(const struct ltfbu_cfg *cfg)
ltfbu_fcb_range.fsr_flash_area.fa_size);
TEST_ASSERT_FATAL(rc == 0);
- rc = fcb_init(<fbu_fcb_log.fl_fcb);
+ rc = fcb2_init(<fbu_fcb_log.fl_fcb);
TEST_ASSERT_FATAL(rc == 0);
if (cfg->bmark_count > 0) {
diff --git
a/sys/log/full/selftest/fcb2_watermarks/src/log_test_fcb_watermarks_util.c
b/sys/log/full/selftest/fcb2_watermarks/src/log_test_fcb_watermarks_util.c
index 4d74b0c..a079ee2 100644
--- a/sys/log/full/selftest/fcb2_watermarks/src/log_test_fcb_watermarks_util.c
+++ b/sys/log/full/selftest/fcb2_watermarks/src/log_test_fcb_watermarks_util.c
@@ -169,7 +169,7 @@ ltfwu_init(const struct ltfwu_cfg *cfg)
ltfwu_fcb_range.fsr_flash_area.fa_size);
TEST_ASSERT_FATAL(rc == 0);
- rc = fcb_init(<fwu_fcb_log.fl_fcb);
+ rc = fcb2_init(<fwu_fcb_log.fl_fcb);
TEST_ASSERT_FATAL(rc == 0);
log_register("log", <fwu_log, &log_fcb_handler, <fwu_fcb_log,
diff --git a/sys/log/full/selftest/util/include/log_test_util/log_test_util.h
b/sys/log/full/selftest/util/include/log_test_util/log_test_util.h
index 9786190..c6c78f5 100644
--- a/sys/log/full/selftest/util/include/log_test_util/log_test_util.h
+++ b/sys/log/full/selftest/util/include/log_test_util/log_test_util.h
@@ -22,7 +22,11 @@
#include "os/mynewt.h"
#include "testutil/testutil.h"
+#if MYNEWT_VAL(LOG_FCB)
#include "fcb/fcb.h"
+#elif MYNEWT_VAL(LOG_FCB2)
+#include "fcb/fcb2.h"
+#endif
#include "log/log.h"
#include "log_test_util.h"
@@ -30,7 +34,11 @@
extern "C" {
#endif
+#if MYNEWT_VAL(LOG_FCB)
extern struct fcb log_fcb;
+#elif MYNEWT_VAL(LOG_FCB2)
+extern struct fcb2 log_fcb;
+#endif
extern struct log my_log;
extern char *ltu_str_logs[];
diff --git a/sys/log/full/selftest/util/src/log_test_util.c
b/sys/log/full/selftest/util/src/log_test_util.c
index 1682e04..4eaf2aa 100644
--- a/sys/log/full/selftest/util/src/log_test_util.c
+++ b/sys/log/full/selftest/util/src/log_test_util.c
@@ -121,6 +121,8 @@ ltu_setup_fcb(struct fcb_log *fcb_log, struct log *log)
rc = flash_area_erase(&fcb_areas[i], 0, fcb_areas[i].fa_size);
TEST_ASSERT(rc == 0);
}
+ rc = fcb_init(&fcb_log->fl_fcb);
+ TEST_ASSERT(rc == 0);
#endif
#if MYNEWT_VAL(LOG_FCB2)
(void)i;
@@ -129,10 +131,9 @@ ltu_setup_fcb(struct fcb_log *fcb_log, struct log *log)
fcb_log->fl_fcb.f_ranges = &fcb_range;
rc = flash_area_erase(&fcb_range.fsr_flash_area, 0,
fcb_range.fsr_flash_area.fa_size);
-#endif
-
- rc = fcb_init(&fcb_log->fl_fcb);
+ rc = fcb2_init(&fcb_log->fl_fcb);
TEST_ASSERT(rc == 0);
+#endif
log_register("log", log, &log_fcb_handler, fcb_log, LOG_SYSLEVEL);
}
diff --git a/sys/log/full/src/log_fcb2.c b/sys/log/full/src/log_fcb2.c
index 6528202..2d5ee76 100644
--- a/sys/log/full/src/log_fcb2.c
+++ b/sys/log/full/src/log_fcb2.c
@@ -25,7 +25,7 @@
#include "flash_map/flash_map.h"
#include "log/log.h"
-#include "fcb/fcb.h"
+#include "fcb/fcb2.h"
/* Assume the flash alignment requirement is no stricter than 8. */
#define LOG_FCB2_MAX_ALIGN 8
@@ -54,14 +54,14 @@ static int log_fcb2_rtr_erase(struct log *log);
*/
static int
log_fcb2_find_gte(struct log *log, struct log_offset *log_offset,
- struct fcb_entry *out_entry)
+ struct fcb2_entry *out_entry)
{
#if MYNEWT_VAL(LOG_FCB_BOOKMARKS)
const struct log_fcb_bmark *bmark;
#endif
struct log_entry_hdr hdr;
struct fcb_log *fcb_log;
- struct fcb *fcb;
+ struct fcb2 *fcb;
int rc;
fcb_log = log->l_arg;
@@ -69,8 +69,8 @@ log_fcb2_find_gte(struct log *log, struct log_offset
*log_offset,
/* Attempt to read the last entry. If this fails, the FCB is empty. */
memset(out_entry, 0, sizeof(*out_entry));
- rc = fcb_getprev(fcb, out_entry);
- if (rc == FCB_ERR_NOVAR) {
+ rc = fcb2_getprev(fcb, out_entry);
+ if (rc == FCB2_ERR_NOVAR) {
return SYS_ENOENT;
} else if (rc != 0) {
return SYS_EUNKNOWN;
@@ -98,7 +98,7 @@ log_fcb2_find_gte(struct log *log, struct log_offset
*log_offset,
* Start from beginning.
*/
memset(out_entry, 0, sizeof(*out_entry));
- rc = fcb_getnext(fcb, out_entry);
+ rc = fcb2_getnext(fcb, out_entry);
if (rc != 0) {
return SYS_EUNKNOWN;
}
@@ -119,15 +119,15 @@ log_fcb2_find_gte(struct log *log, struct log_offset
*log_offset,
if (hdr.ue_index >= log_offset->lo_index) {
return 0;
}
- } while (fcb_getnext(fcb, out_entry) == 0);
+ } while (fcb2_getnext(fcb, out_entry) == 0);
return SYS_ENOENT;
}
static int
-log_fcb2_start_append(struct log *log, int len, struct fcb_entry *loc)
+log_fcb2_start_append(struct log *log, int len, struct fcb2_entry *loc)
{
- struct fcb *fcb;
+ struct fcb2 *fcb;
struct fcb_log *fcb_log;
#if MYNEWT_VAL(LOG_STORAGE_WATERMARK)
int old_sec;
@@ -141,12 +141,12 @@ log_fcb2_start_append(struct log *log, int len, struct
fcb_entry *loc)
fcb = &fcb_log->fl_fcb;
while (1) {
- rc = fcb_append(fcb, len, loc);
+ rc = fcb2_append(fcb, len, loc);
if (rc == 0) {
break;
}
- if (rc != FCB_ERR_NOSPACE) {
+ if (rc != FCB2_ERR_NOSPACE) {
goto err;
}
@@ -163,7 +163,7 @@ log_fcb2_start_append(struct log *log, int len, struct
fcb_entry *loc)
#endif
#if MYNEWT_VAL(LOG_STATS)
- rc = fcb_area_info(fcb, FCB_SECTOR_OLDEST, &cnt, NULL);
+ rc = fcb2_area_info(fcb, FCB2_SECTOR_OLDEST, &cnt, NULL);
if (rc == 0) {
LOG_STATS_INCN(log, lost, cnt);
}
@@ -174,7 +174,7 @@ log_fcb2_start_append(struct log *log, int len, struct
fcb_entry *loc)
log_fcb_clear_bmarks(fcb_log);
#endif
- rc = fcb_rotate(fcb);
+ rc = fcb2_rotate(fcb);
if (rc) {
goto err;
}
@@ -223,7 +223,7 @@ log_fcb2_append_body(struct log *log, const struct
log_entry_hdr *hdr,
{
uint8_t buf[LOG_BASE_ENTRY_HDR_SIZE + LOG_IMG_HASHLEN +
LOG_FCB2_MAX_ALIGN - 1];
- struct fcb_entry loc;
+ struct fcb2_entry loc;
const uint8_t *u8p;
int hdr_alignment;
int chunk_sz;
@@ -262,7 +262,7 @@ log_fcb2_append_body(struct log *log, const struct
log_entry_hdr *hdr,
}
memcpy(buf + hdr_len, u8p, hdr_alignment);
- rc = fcb_write(&loc, 0, buf, chunk_sz);
+ rc = fcb2_write(&loc, 0, buf, chunk_sz);
if (rc != 0) {
return rc;
}
@@ -273,13 +273,13 @@ log_fcb2_append_body(struct log *log, const struct
log_entry_hdr *hdr,
body_len -= hdr_alignment;
if (body_len > 0) {
- rc = fcb_write(&loc, chunk_sz, u8p, body_len);
+ rc = fcb2_write(&loc, chunk_sz, u8p, body_len);
if (rc != 0) {
return rc;
}
}
- rc = fcb_append_finish(&loc);
+ rc = fcb2_append_finish(&loc);
if (rc != 0) {
return rc;
}
@@ -299,12 +299,12 @@ log_fcb2_append(struct log *log, void *buf, int len)
}
static int
-log_fcb2_write_mbuf(struct fcb_entry *loc, struct os_mbuf *om, int off)
+log_fcb2_write_mbuf(struct fcb2_entry *loc, struct os_mbuf *om, int off)
{
int rc;
while (om) {
- rc = fcb_write(loc, off, om->om_data, om->om_len);
+ rc = fcb2_write(loc, off, om->om_data, om->om_len);
if (rc != 0) {
return SYS_EIO;
}
@@ -320,7 +320,7 @@ static int
log_fcb2_append_mbuf_body(struct log *log, const struct log_entry_hdr *hdr,
struct os_mbuf *om)
{
- struct fcb_entry loc;
+ struct fcb2_entry loc;
int len;
int rc;
@@ -342,7 +342,7 @@ log_fcb2_append_mbuf_body(struct log *log, const struct
log_entry_hdr *hdr,
return rc;
}
- rc = fcb_write(&loc, 0, hdr, LOG_BASE_ENTRY_HDR_SIZE);
+ rc = fcb2_write(&loc, 0, hdr, LOG_BASE_ENTRY_HDR_SIZE);
if (rc != 0) {
return rc;
}
@@ -350,7 +350,7 @@ log_fcb2_append_mbuf_body(struct log *log, const struct
log_entry_hdr *hdr,
if (hdr->ue_flags & LOG_FLAGS_IMG_HASH) {
/* Write LOG_IMG_HASHLEN bytes of image hash */
- rc = fcb_write(&loc, len, hdr->ue_imghash, LOG_IMG_HASHLEN);
+ rc = fcb2_write(&loc, len, hdr->ue_imghash, LOG_IMG_HASHLEN);
if (rc != 0) {
return rc;
}
@@ -362,7 +362,7 @@ log_fcb2_append_mbuf_body(struct log *log, const struct
log_entry_hdr *hdr,
return rc;
}
- rc = fcb_append_finish(&loc);
+ rc = fcb2_append_finish(&loc);
if (rc != 0) {
return rc;
}
@@ -415,15 +415,15 @@ log_fcb2_append_mbuf(struct log *log, struct os_mbuf *om)
static int
log_fcb2_read(struct log *log, void *dptr, void *buf, uint16_t off, uint16_t
len)
{
- struct fcb_entry *loc;
+ struct fcb2_entry *loc;
int rc;
- loc = (struct fcb_entry *)dptr;
+ loc = (struct fcb2_entry *)dptr;
if (off + len > loc->fe_data_len) {
len = loc->fe_data_len - off;
}
- rc = fcb_read(loc, off, buf, len);
+ rc = fcb2_read(loc, off, buf, len);
if (rc == 0) {
return len;
} else {
@@ -435,13 +435,13 @@ static int
log_fcb2_read_mbuf(struct log *log, void *dptr, struct os_mbuf *om,
uint16_t off, uint16_t len)
{
- struct fcb_entry *loc;
+ struct fcb2_entry *loc;
uint8_t data[128];
uint16_t read_len;
uint16_t rem_len;
int rc;
- loc = (struct fcb_entry *)dptr;
+ loc = (struct fcb2_entry *)dptr;
if (off + len > loc->fe_data_len) {
len = loc->fe_data_len - off;
@@ -451,7 +451,7 @@ log_fcb2_read_mbuf(struct log *log, void *dptr, struct
os_mbuf *om,
while (rem_len > 0) {
read_len = min(rem_len, sizeof(data));
- rc = fcb_read(loc, off, data, read_len);
+ rc = fcb2_read(loc, off, data, read_len);
if (rc) {
goto done;
}
@@ -473,9 +473,9 @@ static int
log_fcb2_walk(struct log *log, log_walk_func_t walk_func,
struct log_offset *log_off)
{
- struct fcb *fcb;
+ struct fcb2 *fcb;
struct fcb_log *fcb_log;
- struct fcb_entry loc;
+ struct fcb2_entry loc;
int rc;
fcb_log = log->l_arg;
@@ -512,7 +512,7 @@ log_fcb2_walk(struct log *log, log_walk_func_t walk_func,
return 0;
}
}
- } while (fcb_getnext(fcb, &loc) == 0);
+ } while (fcb2_getnext(fcb, &loc) == 0);
return 0;
}
@@ -521,7 +521,7 @@ static int
log_fcb2_flush(struct log *log)
{
struct fcb_log *fcb_log;
- struct fcb *fcb;
+ struct fcb2 *fcb;
fcb_log = (struct fcb_log *)log->l_arg;
fcb = &fcb_log->fl_fcb;
@@ -530,18 +530,18 @@ log_fcb2_flush(struct log *log)
log_fcb_clear_bmarks(fcb_log);
#endif
- return fcb_clear(fcb);
+ return fcb2_clear(fcb);
}
static int
log_fcb2_registered(struct log *log)
{
- struct fcb *fcb;
+ struct fcb2 *fcb;
int i;
struct fcb_log *fl;
#if MYNEWT_VAL(LOG_STORAGE_WATERMARK)
#if MYNEWT_VAL(LOG_PERSIST_WATERMARK)
- struct fcb_entry loc;
+ struct fcb2_entry loc;
#endif
#endif
@@ -559,7 +559,7 @@ log_fcb2_registered(struct log *log)
/* Set watermark to first element */
memset(&loc, 0, sizeof(loc));
- if (fcb_getnext(fcb, &loc)) {
+ if (fcb2_getnext(fcb, &loc)) {
fl->fl_watermark_sec = loc.fe_sector;
fl->fl_watermark_off = loc.fe_data_off;
} else {
@@ -568,7 +568,7 @@ log_fcb2_registered(struct log *log)
}
#else
/* Initialize watermark to designated unknown value*/
- fl->fl_watermark_sec = FCB_SECTOR_OLDEST;
+ fl->fl_watermark_sec = FCB2_SECTOR_OLDEST;
fl->fl_watermark_off = 0xffffffff;
#endif
#endif
@@ -580,7 +580,7 @@ static int
log_fcb2_storage_info(struct log *log, struct log_storage_info *info)
{
struct fcb_log *fl;
- struct fcb *fcb;
+ struct fcb2 *fcb;
int i;
int j;
int sec;
@@ -593,7 +593,7 @@ log_fcb2_storage_info(struct log *log, struct
log_storage_info *info)
rc = os_mutex_pend(&fcb->f_mtx, OS_WAIT_FOREVER);
if (rc && rc != OS_NOT_STARTED) {
- return FCB_ERR_ARGS;
+ return FCB2_ERR_ARGS;
}
el_min_sec = fcb->f_oldest_sec;
@@ -650,7 +650,7 @@ log_fcb2_storage_info(struct log *log, struct
log_storage_info *info)
}
}
#if MYNEWT_VAL(LOG_STORAGE_WATERMARK)
- if (fl->fl_watermark_sec == FCB_SECTOR_OLDEST) {
+ if (fl->fl_watermark_sec == FCB2_SECTOR_OLDEST) {
info->used_unread = 0xffffffff;
}
#endif
@@ -666,12 +666,12 @@ static int
log_fcb2_new_watermark_index(struct log *log, struct log_offset *log_off,
void *dptr, uint16_t len)
{
- struct fcb_entry *loc;
+ struct fcb2_entry *loc;
struct fcb_log *fl;
struct log_entry_hdr ueh;
int rc;
- loc = (struct fcb_entry *)dptr;
+ loc = (struct fcb2_entry *)dptr;
fl = (struct fcb_log *)log->l_arg;
rc = log_fcb2_read(log, loc, &ueh, 0, sizeof(ueh));
@@ -696,7 +696,7 @@ log_fcb2_set_watermark(struct log *log, uint32_t index)
int rc;
struct log_offset log_offset;
struct fcb_log *fl;
- struct fcb *fcb;
+ struct fcb2 *fcb;
fl = (struct fcb_log *)log->l_arg;
fcb = &fl->fl_fcb;
@@ -734,8 +734,8 @@ done:
* @return 0 on success; non-zero on error
*/
static int
-log_fcb2_copy_entry(struct log *log, struct fcb_entry *entry,
- struct fcb *dst_fcb)
+log_fcb2_copy_entry(struct log *log, struct fcb2_entry *entry,
+ struct fcb2 *dst_fcb)
{
struct log_entry_hdr ueh;
char data[LOG_PRINTF_MAX_ENTRY_LEN + LOG_BASE_ENTRY_HDR_SIZE +
@@ -743,7 +743,7 @@ log_fcb2_copy_entry(struct log *log, struct fcb_entry
*entry,
uint16_t hdr_len;
int dlen;
int rc;
- struct fcb *fcb_tmp;
+ struct fcb2 *fcb_tmp;
rc = log_fcb2_read(log, entry, &ueh, 0, LOG_BASE_ENTRY_HDR_SIZE);
if (rc != LOG_BASE_ENTRY_HDR_SIZE) {
@@ -785,10 +785,10 @@ err:
* @return 0 on success; non-zero on error
*/
static int
-log_fcb2_copy(struct log *log, struct fcb *src_fcb, struct fcb *dst_fcb,
- struct fcb_entry *from)
+log_fcb2_copy(struct log *log, struct fcb2 *src_fcb, struct fcb2 *dst_fcb,
+ struct fcb2_entry *from)
{
- struct fcb_entry entry;
+ struct fcb2_entry entry;
int rc;
rc = 0;
@@ -799,8 +799,8 @@ log_fcb2_copy(struct log *log, struct fcb *src_fcb, struct
fcb *dst_fcb,
if (rc) {
break;
}
- rc = fcb_getnext(src_fcb, &entry);
- if (rc == FCB_ERR_NOVAR) {
+ rc = fcb2_getnext(src_fcb, &entry);
+ if (rc == FCB2_ERR_NOVAR) {
rc = 0;
break;
}
@@ -821,9 +821,9 @@ static int
log_fcb2_rtr_erase(struct log *log)
{
struct fcb_log *fcb_log;
- struct fcb fcb_scratch;
- struct fcb *fcb;
- struct fcb_entry entry;
+ struct fcb2 fcb_scratch;
+ struct fcb2 *fcb;
+ struct fcb2_entry entry;
int rc;
struct flash_sector_range range;
int range_cnt;
@@ -851,13 +851,13 @@ log_fcb2_rtr_erase(struct log *log)
fcb_scratch.f_version = g_log_info.li_version;
flash_area_erase(&range.fsr_flash_area, 0, range.fsr_flash_area.fa_size);
- rc = fcb_init(&fcb_scratch);
+ rc = fcb2_init(&fcb_scratch);
if (rc) {
goto err;
}
/* Calculate offset of n-th last entry */
- rc = fcb_offset_last_n(fcb, fcb_log->fl_entries, &entry);
+ rc = fcb2_offset_last_n(fcb, fcb_log->fl_entries, &entry);
if (rc) {
goto err;
}
@@ -875,7 +875,7 @@ log_fcb2_rtr_erase(struct log *log)
}
memset(&entry, 0, sizeof(entry));
- rc = fcb_getnext(&fcb_scratch, &entry);
+ rc = fcb2_getnext(&fcb_scratch, &entry);
if (rc) {
goto err;
}
diff --git a/sys/log/full/src/log_fcb_bmark.c b/sys/log/full/src/log_fcb_bmark.c
index 92e4791..365464e 100644
--- a/sys/log/full/src/log_fcb_bmark.c
+++ b/sys/log/full/src/log_fcb_bmark.c
@@ -68,9 +68,15 @@ log_fcb_closest_bmark(const struct fcb_log *fcb_log,
uint32_t index)
return closest;
}
+#if MYNEWT_VAL(LOG_FCB)
void
log_fcb_add_bmark(struct fcb_log *fcb_log, const struct fcb_entry *entry,
uint32_t index)
+#elif MYNEWT_VAL(LOG_FCB2)
+void
+log_fcb_add_bmark(struct fcb_log *fcb_log, const struct fcb2_entry *entry,
+ uint32_t index)
+#endif
{
struct log_fcb_bset *bset;
diff --git a/sys/reboot/src/log_reboot.c b/sys/reboot/src/log_reboot.c
index 24e335f..868295d 100644
--- a/sys/reboot/src/log_reboot.c
+++ b/sys/reboot/src/log_reboot.c
@@ -30,10 +30,6 @@
#include "bsp/bsp.h"
#include "flash_map/flash_map.h"
-#if MYNEWT_VAL(REBOOT_LOG_FCB)
-#include "fcb/fcb.h"
-#endif
-
uint16_t reboot_cnt;
static char reboot_cnt_str[12];
static char log_reboot_written_str[12];
@@ -86,12 +82,18 @@ static int
log_reboot_init_fcb(void)
{
const struct flash_area *ptr;
+#if MYNEWT_VAL(LOG_FCB)
struct fcb *fcbp;
+#elif MYNEWT_VAL(LOG_FCB2)
+ struct fcb2 *fcbp;
+#endif
int rc;
if (flash_area_open(MYNEWT_VAL(REBOOT_LOG_FLASH_AREA), &ptr)) {
return SYS_EUNKNOWN;
}
+
+ reboot_log_fcb.fl_entries = MYNEWT_VAL(REBOOT_LOG_ENTRY_COUNT);
fcbp = &reboot_log_fcb.fl_fcb;
#if MYNEWT_VAL(LOG_FCB)
reboot_sector = *ptr;
@@ -99,6 +101,15 @@ log_reboot_init_fcb(void)
fcbp->f_version = g_log_info.li_version;
fcbp->f_sector_cnt = 1;
fcbp->f_sectors = &reboot_sector;
+
+ rc = fcb_init(fcbp);
+ if (rc) {
+ flash_area_erase(ptr, 0, ptr->fa_size);
+ rc = fcb_init(fcbp);
+ if (rc) {
+ return rc;
+ }
+ }
#endif
#if MYNEWT_VAL(LOG_FCB2)
fcbp->f_magic = 0x8EADBAE0;
@@ -110,17 +121,16 @@ log_reboot_init_fcb(void)
reboot_sector.fsr_sector_count = 1;
reboot_sector.fsr_sector_size = ptr->fa_size;
reboot_sector.fsr_align = flash_area_align(ptr);
-#endif
- reboot_log_fcb.fl_entries = MYNEWT_VAL(REBOOT_LOG_ENTRY_COUNT);
- rc = fcb_init(fcbp);
+ rc = fcb2_init(fcbp);
if (rc) {
flash_area_erase(ptr, 0, ptr->fa_size);
- rc = fcb_init(fcbp);
+ rc = fcb2_init(fcbp);
if (rc) {
return rc;
}
}
+#endif
rc = log_register("reboot_log", &reboot_log, &log_fcb_handler,
&reboot_log_fcb, LOG_SYSLEVEL);