From d7ce59dc3cb5f1ea14807320ca7031f1e17e8f37 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Thu, 16 Nov 2017 14:23:28 +0000 Subject: First MFS test sequence complete, starting debug. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11017 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/lib/complex/mfs/mfs.c | 15 +++++++++------ os/hal/lib/complex/mfs/mfs.h | 11 ++++++++--- 2 files changed, 17 insertions(+), 9 deletions(-) (limited to 'os/hal') diff --git a/os/hal/lib/complex/mfs/mfs.c b/os/hal/lib/complex/mfs/mfs.c index 77ae33128..76178cc06 100644 --- a/os/hal/lib/complex/mfs/mfs.c +++ b/os/hal/lib/complex/mfs/mfs.c @@ -921,11 +921,12 @@ mfs_error_t mfsErase(MFSDriver *mfsp) { * * @api */ -mfs_error_t mfsReadRecord(MFSDriver *mfsp, uint32_t id, +mfs_error_t mfsReadRecord(MFSDriver *mfsp, mfs_id_t id, size_t *np, uint8_t *buffer) { uint16_t crc; - osalDbgCheck((mfsp != NULL) && (id >= 1) && (id <= MFS_CFG_MAX_RECORDS) && + osalDbgCheck((mfsp != NULL) && + (id >= 1) && (id <= (mfs_id_t)MFS_CFG_MAX_RECORDS) && (np != NULL) && (buffer != NULL)); if (mfsp->state != MFS_READY) { @@ -978,12 +979,13 @@ mfs_error_t mfsReadRecord(MFSDriver *mfsp, uint32_t id, * * @api */ -mfs_error_t mfsWriteRecord(MFSDriver *mfsp, uint32_t id, +mfs_error_t mfsWriteRecord(MFSDriver *mfsp, mfs_id_t id, size_t n, const uint8_t *buffer) { flash_offset_t free, required; bool warning = false; - osalDbgCheck((mfsp != NULL) && (id >= 1) && (id <= MFS_CFG_MAX_RECORDS) && + osalDbgCheck((mfsp != NULL) && + (id >= 1) && (id <= (mfs_id_t)MFS_CFG_MAX_RECORDS) && (n > 0U) && (buffer != NULL)); if (mfsp->state != MFS_READY) { @@ -1064,11 +1066,12 @@ mfs_error_t mfsWriteRecord(MFSDriver *mfsp, uint32_t id, * * @api */ -mfs_error_t mfsEraseRecord(MFSDriver *mfsp, uint32_t id) { +mfs_error_t mfsEraseRecord(MFSDriver *mfsp, mfs_id_t id) { flash_offset_t free, required; bool warning = false; - osalDbgCheck((mfsp != NULL) && (id >= 1) && (id <= MFS_CFG_MAX_RECORDS)); + osalDbgCheck((mfsp != NULL) && + (id >= 1U) && (id <= (mfs_id_t)MFS_CFG_MAX_RECORDS)); if (mfsp->state != MFS_READY) { return MFS_ERR_INV_STATE; diff --git a/os/hal/lib/complex/mfs/mfs.h b/os/hal/lib/complex/mfs/mfs.h index 66c5f57d4..0cae31f90 100644 --- a/os/hal/lib/complex/mfs/mfs.h +++ b/os/hal/lib/complex/mfs/mfs.h @@ -173,6 +173,11 @@ typedef enum { MFS_RECORD_GARBAGE = 3 } mfs_record_state_t; +/** + * @brief Type of a record identifier. + */ +typedef uint32_t mfs_id_t; + /** * @brief Type of a bank header. * @note The header resides in the first 16 bytes of a bank. @@ -352,11 +357,11 @@ extern "C" { mfs_error_t mfsStart(MFSDriver *devp, const MFSConfig *config); void mfsStop(MFSDriver *devp); mfs_error_t mfsErase(MFSDriver *mfsp); - mfs_error_t mfsReadRecord(MFSDriver *devp, uint32_t id, + mfs_error_t mfsReadRecord(MFSDriver *devp, mfs_id_t id, size_t *np, uint8_t *buffer); - mfs_error_t mfsWriteRecord(MFSDriver *devp, uint32_t id, + mfs_error_t mfsWriteRecord(MFSDriver *devp, mfs_id_t id, size_t n, const uint8_t *buffer); - mfs_error_t mfsEraseRecord(MFSDriver *devp, uint32_t id); + mfs_error_t mfsEraseRecord(MFSDriver *devp, mfs_id_t id); mfs_error_t mfsPerformGarbageCollection(MFSDriver *mfsp); #ifdef __cplusplus } -- cgit v1.2.3