/** @file nvintf.h $Date: 2015-02-15 18:34:28 -0800 (Sun, 15 Feb 2015) $ $Revision: 42614 $ @brief Function pointer interface to the NV API */ #ifndef NVINTF_H #define NVINTF_H #include #include #ifdef __cplusplus extern "C" { #endif //***************************************************************************** // Constants and definitions //***************************************************************************** // NV system ID codes #define NVINTF_SYSID_NVDRVR 0 #define NVINTF_SYSID_ZSTACK 1 #define NVINTF_SYSID_TIMAC 2 #define NVINTF_SYSID_REMOTI 3 #define NVINTF_SYSID_BLE 4 #define NVINTF_SYSID_6MESH 5 #define NVINTF_SYSID_APP 6 // NV driver status codes #define NVINTF_SUCCESS 0 #define NVINTF_FAILURE 1 #define NVINTF_CORRUPT 2 #define NVINTF_NOTREADY 3 #define NVINTF_BADPARAM 4 #define NVINTF_BADLENGTH 5 #define NVINTF_BADOFFSET 6 #define NVINTF_BADITEMID 7 #define NVINTF_BADSUBID 8 #define NVINTF_BADSYSID 9 #define NVINTF_NOTFOUND 10 #define NVINTF_LOWPOWER 11 #define NVINTF_BADVERSION 12 //***************************************************************************** // Typedefs //***************************************************************************** /** * NV Item Identification structure */ typedef struct nvintf_itemid_t { //! NV System ID - identifies system (ZStack, BLE, App, OAD...) uint8_t systemID; //! NV Item ID uint16_t itemID; //! NV Item sub ID uint16_t subID; } NVINTF_itemID_t; //! Function pointer definition for the NVINTF_initNV() function typedef uint8_t (*NVINTF_initNV)(void *param); //! Function pointer definition for the NVINTF_compactNV() function typedef uint8_t (*NVINTF_compactNV)(uint16_t minBytes); //! Function pointer definition for the NVINTF_createItem() function typedef uint8_t (*NVINTF_createItem)(NVINTF_itemID_t id, uint32_t length, void *buffer ); //! Function pointer definition for the NVINTF_deleteItem() function typedef uint8_t (*NVINTF_deleteItem)(NVINTF_itemID_t id); //! Function pointer definition for the NVINTF_readItem() function typedef uint8_t (*NVINTF_readItem)(NVINTF_itemID_t id, uint16_t offset, uint16_t length, void *buffer ); //! Function pointer definition for the NVINTF_writeItem() function typedef uint8_t (*NVINTF_writeItem)(NVINTF_itemID_t id, uint16_t length, void *buffer ); //! Function pointer definition for the NVINTF_writeItemEx() function typedef uint8_t (*NVINTF_writeItemEx)(NVINTF_itemID_t id, uint16_t offset, uint16_t length, void *buffer ); //! Function pointer definition for the NVINTF_getItemLen() function typedef uint32_t (*NVINTF_getItemLen)(NVINTF_itemID_t id); //! Structure of NV API function pointers typedef struct nvintf_nvfuncts_t { //! Initialization function NVINTF_initNV initNV; //! Compact NV function NVINTF_compactNV compactNV; //! Create item function NVINTF_createItem createItem; //! Delete NV item function NVINTF_deleteItem deleteItem; //! Read item function NVINTF_readItem readItem; //! Write item function NVINTF_writeItem writeItem; //! Write existing item function NVINTF_writeItemEx writeItemEx; //! Get item length function NVINTF_getItemLen getItemLen; } NVINTF_nvFuncts_t; //***************************************************************************** //***************************************************************************** #ifdef __cplusplus } #endif #endif /* NVINTF_H */