STM32CubeWL/Middlewares/Third_Party/LoRaWAN/LmHandler/NvmDataMgmt.h

85 lines
2.2 KiB
C

/*!
* \file NvmDataMgmt.h
*
* \brief NVM context management implementation
*
* \copyright Revised BSD License, see section \ref LICENSE.
*
* \code
* ______ _
* / _____) _ | |
* ( (____ _____ ____ _| |_ _____ ____| |__
* \____ \| ___ | (_ _) ___ |/ ___) _ \
* _____) ) ____| | | || |_| ____( (___| | | |
* (______/|_____)_|_|_| \__)_____)\____)_| |_|
* (C)2013-2017 Semtech
*
* ___ _____ _ ___ _ _____ ___ ___ ___ ___
* / __|_ _/_\ / __| |/ / __/ _ \| _ \/ __| __|
* \__ \ | |/ _ \ (__| ' <| _| (_) | / (__| _|
* |___/ |_/_/ \_\___|_|\_\_| \___/|_|_\\___|___|
* embedded.connectivity.solutions===============
*
* \endcode
*
* \author Miguel Luis ( Semtech )
*
* \author Gregory Cristian ( Semtech )
*
* \author Daniel Jaeckle ( STACKFORCE )
*
* \author Johannes Bruder ( STACKFORCE )
*
* \defgroup NVMDATAMGMT NVM context management implementation
* This module implements the NVM context handling
* \{
*/
#ifndef __NVMDATAMGMT_H__
#define __NVMDATAMGMT_H__
#ifdef __cplusplus
extern "C"
{
#endif
typedef enum NvmDataErrorStatus_e
{
NVM_DATA_ERROR = -1,
NVM_DATA_NO_UPDATED_DATA = -2,
NVM_DATA_NOT_AVAILABLE = -3,
NVM_DATA_INCONSISTENT = -4,
NVM_DATA_DISABLED = -5,
NVM_DATA_OK = 0
} NvmDataErrorStatus_t;
/*!
* \brief NVM Management event.
*
* \param [in] notifyFlags Bitmap which contains the information about modules that
* changed.
*/
void NvmDataMgmtEvent( uint16_t notifyFlags );
/*!
* \brief Check the NVM Flag status and LoRaMAC state
*
* \retval status NVM_DATA_OK, NVM_DATA_DISABLED, NVM_DATA_NOT_AVAILABLE, NVM_DATA_NO_UPDATED_DATA
*/
int32_t NvmDataMgmtStoreBegin( void );
/*!
* \brief Clean the NVM Flag status and resume LoRaMAC process
*
* \retval status NVM_DATA_OK, NVM_DATA_DISABLED
*/
int32_t NvmDataMgmtStoreEnd( void );
/*! \} defgroup NVMDATAMGMT */
#ifdef __cplusplus
}
#endif
#endif /* __NVMDATAMGMT_H__ */