diff options
Diffstat (limited to 'libs/NVRam')
-rw-r--r-- | libs/NVRam/bcm5719_NVM.h | 18 | ||||
-rw-r--r-- | libs/NVRam/nvm.c | 9 |
2 files changed, 18 insertions, 9 deletions
diff --git a/libs/NVRam/bcm5719_NVM.h b/libs/NVRam/bcm5719_NVM.h index 38b4bf4..9389185 100644 --- a/libs/NVRam/bcm5719_NVM.h +++ b/libs/NVRam/bcm5719_NVM.h @@ -10,7 +10,7 @@ /// //////////////////////////////////////////////////////////////////////////////// /// -/// @copyright Copyright (c) 2018, Evan Lojewski +/// @copyright Copyright (c) 2020, Evan Lojewski /// @cond /// /// All rights reserved. @@ -1264,7 +1264,14 @@ typedef struct NVM_t { RegNVMAutoSenseStatus_t AutoSenseStatus; #ifdef CXX_SIMULATOR - NVM_t() + typedef uint32_t (*callback_t)(uint32_t, uint32_t, void*); + callback_t mIndexReadCallback; + void* mIndexReadCallbackArgs; + + callback_t mIndexWriteCallback; + void* mIndexWriteCallbackArgs; + + NVM_t() : mIndexReadCallback(0), mIndexReadCallbackArgs(0), mIndexWriteCallback(0), mIndexWriteCallbackArgs(0) { Command.r32.setComponentOffset(0x0); for(int i = 0; i < 1; i++) @@ -1310,13 +1317,6 @@ typedef struct NVM_t { } AutoSenseStatus.print(); } - typedef uint32_t (*callback_t)(uint32_t, uint32_t, void*); - callback_t mIndexReadCallback; - void* mIndexReadCallbackArgs; - - callback_t mIndexWriteCallback; - void* mIndexWriteCallbackArgs; - uint32_t read(int offset) { return mIndexReadCallback(0, offset, mIndexReadCallbackArgs); } void write(int offset, uint32_t value) { (void)mIndexWriteCallback(value, offset, mIndexWriteCallbackArgs); } #endif /* CXX_SIMULATOR */ diff --git a/libs/NVRam/nvm.c b/libs/NVRam/nvm.c index b3068ba..1e4d0cb 100644 --- a/libs/NVRam/nvm.c +++ b/libs/NVRam/nvm.c @@ -164,7 +164,11 @@ bool NVRam_releaseAllLocks(void) return true; } +#ifdef CXX_SIMULATOR +static uint32_t NVRam_readWordInternal(uint32_t address, RegNVMCommand_t &cmd) +#else static uint32_t NVRam_readWordInternal(uint32_t address, RegNVMCommand_t cmd) +#endif { address = NVRam_translate(address); @@ -181,7 +185,12 @@ static uint32_t NVRam_readWordInternal(uint32_t address, RegNVMCommand_t cmd) return ntohl(NVM.Read.r32); } + +#ifdef CXX_SIMULATOR +static void NVRam_writeWordInternal(uint32_t address, uint32_t data, RegNVMCommand_t &cmd) +#else static void NVRam_writeWordInternal(uint32_t address, uint32_t data, RegNVMCommand_t cmd) +#endif { address = NVRam_translate(address); |