Import Mbed OS hard-float snapshot
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
/*
|
||||
* Copyright (c) 2014-2015 ARM Limited. All rights reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
* Licensed 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 ARM_HAL_API_H_
|
||||
#define ARM_HAL_API_H_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#include <stdint.h>
|
||||
|
||||
/**
|
||||
* \brief This function disable global interrupts.
|
||||
*/
|
||||
extern void platform_enter_critical(void);
|
||||
/**
|
||||
* \brief This function enable global interrupts.
|
||||
*/
|
||||
extern void platform_exit_critical(void);
|
||||
|
||||
/**
|
||||
* \brief This function increments the disable IRQ counter.
|
||||
* The function must be called inside interrupt routines
|
||||
* before any routine that uses platform_enter_critical()
|
||||
* is called.
|
||||
*
|
||||
* This routine may not be need to do anything on some platforms,
|
||||
* but requiring the call to be made before using
|
||||
* platform_enter_critical() in an interrupt can simplify some
|
||||
* implementations of platform_enter/exit_critical().
|
||||
*/
|
||||
extern void platform_interrupts_disabled(void);
|
||||
|
||||
/**
|
||||
* \brief This function decrements the disable IRQ counter.
|
||||
*/
|
||||
extern void platform_interrupts_enabling(void);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* ARM_HAL_API_H_ */
|
||||
@@ -0,0 +1,144 @@
|
||||
/*
|
||||
* Copyright (c) 2016 ARM Limited. All rights reserved.
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
* Licensed 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.
|
||||
*/
|
||||
|
||||
/*
|
||||
* Nanostack NVM API.
|
||||
*
|
||||
* After NVM initialization (platform_nvm_init(...)) a user can:
|
||||
* -create key to the NVM by using method platform_nvm_key_create(...)
|
||||
* -write data to the NVM by using method platform_nvm_write(...)
|
||||
* -read data from the NVM by using method platform_nvm_read(...)
|
||||
* -delete the created key by using platform_nvm_key_delete(...)
|
||||
* -store changed data to the underlying backing store by using method platform_nvm_flush(...).
|
||||
*
|
||||
* This NVM API is asynchronous. If API function returns PLATFORM_NVM_OK then provided callback function will be
|
||||
* called once operation is completed. Callback function carries status parameter that indicates status of the
|
||||
* operation. If platform API function returns error code then callback will not be called. A new operation can not
|
||||
* be started until the previous operation has completed.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _PLATFORM_NVM_H_
|
||||
#define _PLATFORM_NVM_H_
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* Enumeration for nvm API function return values */
|
||||
typedef enum {
|
||||
PLATFORM_NVM_OK,
|
||||
PLATFORM_NVM_KEY_NOT_FOUND,
|
||||
PLATFORM_NVM_ERROR
|
||||
} platform_nvm_status;
|
||||
|
||||
/** \brief Client registered API callback type.
|
||||
*
|
||||
* \param status operation completion status
|
||||
* \param context client provided context that was used when requesting operation
|
||||
*/
|
||||
typedef void (nvm_callback)(platform_nvm_status status, void *context);
|
||||
|
||||
/** \brief Initialize NVM. Allocates module static resources and initializes underlying NMV.
|
||||
*
|
||||
* \param callback callback function that will be called once initialization is completed.
|
||||
* \param context A client registered context that will be supplied as an argument to the callback when called.
|
||||
*
|
||||
* \return NVM_OK if initialization is in progress and callback will be called.
|
||||
* \return NVM_ERROR if initialization failed and callback will not be called.
|
||||
*/
|
||||
platform_nvm_status platform_nvm_init(nvm_callback *callback, void *context);
|
||||
|
||||
/** \brief Free resources reserved by NVM init.
|
||||
*
|
||||
* \param callback callback function that will be called once deinitialization is completed.
|
||||
* \param context A client registered context that will be supplied as an argument to the callback when called.
|
||||
*
|
||||
* \return NVM_OK if initialization is in progress and callback will be called.
|
||||
* \return NVM_ERROR if initialization failed and callback will not be called.
|
||||
*/
|
||||
platform_nvm_status platform_nvm_finalize(nvm_callback *callback, void *context);
|
||||
|
||||
/** \brief Create key to the NMV. If the key exists then the key will be recreated with new length.
|
||||
*
|
||||
* \param callback callback function that will be called once key creation is finished
|
||||
* \param key_name name of the key to be created
|
||||
* \param value_len length of data reserved for the key
|
||||
* \param flags reserved for future use
|
||||
* \param context A client registered context that will be supplied as an argument to the callback when called
|
||||
*
|
||||
* \return NVM_OK if key creation is in progress and callback will be called.
|
||||
* \return NVM_ERROR if key creation failed and callback will not be called.
|
||||
* \return Provided callback function will be called once operation is completed.
|
||||
*/
|
||||
platform_nvm_status platform_nvm_key_create(nvm_callback *callback, const char *key_name, uint16_t value_len, uint32_t flags, void *context);
|
||||
|
||||
/** \brief Delete key from NMV.
|
||||
*
|
||||
* \param callback callback function that will be called once key creation is finished
|
||||
* \param key_name name of the key to be deleted
|
||||
* \param context A client registered context that will be supplied as an argument to the callback when called
|
||||
*
|
||||
* \return NVM_OK if key creation is in progress and callback will be called.
|
||||
* \return NVM_ERROR if key creation failed and callback will not be called.
|
||||
* \return Provided callback function will be called once operation is completed.
|
||||
*/
|
||||
platform_nvm_status platform_nvm_key_delete(nvm_callback *callback, const char *key_name, void *context);
|
||||
|
||||
/** \brief Write data to the NVM. Data will be truncated if the key does not have enough space for the data.
|
||||
*
|
||||
* \param callback callback function that will be called once writing is complete
|
||||
* \param key_name name of the key where data will be written
|
||||
* \param data buffer to data to be write. Data must be valid until callback is called.
|
||||
* \param data_len [IN] length of data in bytes. [OUT] number of bytes written. Argument must be valid until a callback is called.
|
||||
* \param context A client registered context that will be supplied as an argument to the callback when called.
|
||||
*
|
||||
* \return NVM_OK if data writing is in progress and callback will be called.
|
||||
* \return NVM_ERROR if data writing failed and callback will not be called.
|
||||
* \return Provided callback function will be called once operation is completed.
|
||||
*/
|
||||
platform_nvm_status platform_nvm_write(nvm_callback *callback, const char *key_name, const void *data, uint16_t *data_len, void *context);
|
||||
|
||||
/** \brief Read key value from the NVM.
|
||||
*
|
||||
* \param callback callback function that will be called once reading is complete
|
||||
* \param key_name name of the key whose data will be read
|
||||
* \param buf buffer where data will be copied. Argument must be valid until a callback is called.
|
||||
* \param buf_len [IN] provided buffer length in bytes. [OUT] bytes read. Argument must be valid until callback is called.
|
||||
* \param context A client registered context that will be supplied as an argument to the callback when called.
|
||||
*
|
||||
* \return NVM_OK if data reading is in progress and callback will be called.
|
||||
* \return NVM_ERROR if data reading failed and callback will not be called.
|
||||
* \return Provided callback function will be called once operation is completed.
|
||||
*/
|
||||
platform_nvm_status platform_nvm_read(nvm_callback *callback, const char *key_name, void *buf, uint16_t *buf_len, void *context);
|
||||
|
||||
/** \brief Store changed data to the backing store. This operation will write changed data to SRAM/Flash.
|
||||
*
|
||||
* \param callback callback function that will be called once flushing is complete
|
||||
* \param context A client registered context that will be supplied as an argument to the callback when called.
|
||||
*
|
||||
* \return NVM_OK if data flushing is in progress and callback will be called.
|
||||
* \return NVM_ERROR if data flushing failed and callback will not be called.
|
||||
* \return Provided callback function will be called once operation is completed.
|
||||
*/
|
||||
platform_nvm_status platform_nvm_flush(nvm_callback *callback, void *context);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif /* _PLATFORM_NVM_H_ */
|
||||
|
||||
Reference in New Issue
Block a user