Safe API Framework 0.1.0 build 384e6ae
Layered API framework for safety-related applications (ERTMS RBC reference targeting CENELEC EN 50128 SIL 4)
Loading...
Searching...
No Matches
Non-Volatile Memory

Persistent storage with mandatory integrity checking on read (ADR-001). More...

Files

file  src/oal/nvm/rte_nvm.c
 NVM service: validates parameters, then dispatches to the OSAdapter registered via rte_osadapter_nvm_register() (ADR-005).

Data Structures

struct  rte_nvm_config_t
 Configuration for rte_nvm_open(). More...

Typedefs

typedef struct rte_nvm_impl_s * rte_nvm_handle_t
 Opaque handle to an open NVM region, returned by rte_nvm_open().

Functions

 RTE_DECLARE_STORAGE (rte_nvm_storage_t, 64U)
 Caller-owned, fixed-size storage backing one rte_nvm_handle_t.
rte_status_t rte_nvm_open (rte_nvm_storage_t *storage, const rte_nvm_config_t *config, rte_nvm_handle_t *out_handle)
 Opens (creating if necessary) a named NVM region.
rte_status_t rte_nvm_read (rte_nvm_handle_t handle, size_t offset, void *out_buffer, size_t buffer_size)
 Reads and integrity-checks data from an NVM region.
rte_status_t rte_nvm_write (rte_nvm_handle_t handle, size_t offset, const void *buffer, size_t buffer_size)
 Writes data and its integrity metadata to an NVM region.
rte_status_t rte_nvm_sync (rte_nvm_handle_t handle)
 Forces any buffered writes to durable storage.
rte_status_t rte_nvm_close (rte_nvm_handle_t handle)
 Closes an NVM region handle.

Detailed Description

Persistent storage with mandatory integrity checking on read (ADR-001).

Typedef Documentation

◆ rte_nvm_handle_t

typedef struct rte_nvm_impl_s* rte_nvm_handle_t

Opaque handle to an open NVM region, returned by rte_nvm_open().

Definition at line 30 of file rte_nvm.h.

Function Documentation

◆ rte_nvm_open()

rte_status_t rte_nvm_open ( rte_nvm_storage_t * storage,
const rte_nvm_config_t * config,
rte_nvm_handle_t * out_handle )

Opens (creating if necessary) a named NVM region.

Parameters
storageCaller-owned storage for the handle's state. Must not be NULL.
configRegion configuration. Must not be NULL; config->region_name must not be NULL and config->region_size must be > 0.
out_handleReceives the opened region's handle. Must not be NULL.
Returns
RTE_STATUS_OK; RTE_STATUS_INVALID_PARAM for a bad argument; RTE_STATUS_NOT_INITIALIZED if no OSAdapter is registered (rte_osadapter_nvm_register()); RTE_STATUS_NOT_SUPPORTED if the registered OSAdapter does not implement open. REQ-OAL-NVM-010

Definition at line 44 of file rte_nvm.c.

◆ rte_nvm_read()

rte_status_t rte_nvm_read ( rte_nvm_handle_t handle,
size_t offset,
void * out_buffer,
size_t buffer_size )

Reads and integrity-checks data from an NVM region.

Parameters
handleOpen region handle. Must not be NULL.
offsetByte offset within the region to read from.
out_bufferDestination buffer. Must not be NULL.
buffer_sizeNumber of bytes to read into out_buffer; must be > 0.
Returns
RTE_STATUS_OK; RTE_STATUS_INVALID_PARAM for a bad argument; RTE_STATUS_DATA_CORRUPTION if the integrity check fails (the output buffer content is then undefined and shall not be used); RTE_STATUS_NOT_INITIALIZED/RTE_STATUS_NOT_SUPPORTED as in rte_nvm_open(). REQ-OAL-NVM-011

Definition at line 77 of file rte_nvm.c.

◆ rte_nvm_write()

rte_status_t rte_nvm_write ( rte_nvm_handle_t handle,
size_t offset,
const void * buffer,
size_t buffer_size )

Writes data and its integrity metadata to an NVM region.

Parameters
handleOpen region handle. Must not be NULL.
offsetByte offset within the region to write to.
bufferSource data. Must not be NULL.
buffer_sizeNumber of bytes to write from buffer; must be > 0.
Returns
RTE_STATUS_OK; RTE_STATUS_INVALID_PARAM for a bad argument; RTE_STATUS_NOT_INITIALIZED/RTE_STATUS_NOT_SUPPORTED as in rte_nvm_open(). REQ-OAL-NVM-012

Definition at line 97 of file rte_nvm.c.

◆ rte_nvm_sync()

rte_status_t rte_nvm_sync ( rte_nvm_handle_t handle)

Forces any buffered writes to durable storage.

Parameters
handleOpen region handle. Must not be NULL.
Returns
RTE_STATUS_OK; RTE_STATUS_INVALID_PARAM; RTE_STATUS_NOT_INITIALIZED/ RTE_STATUS_NOT_SUPPORTED as in rte_nvm_open(). REQ-OAL-NVM-013

Definition at line 117 of file rte_nvm.c.

◆ rte_nvm_close()

rte_status_t rte_nvm_close ( rte_nvm_handle_t handle)

Closes an NVM region handle.

Parameters
handleHandle to close. Must not be NULL. Invalid to use after this call.
Returns
RTE_STATUS_OK; RTE_STATUS_INVALID_PARAM; RTE_STATUS_NOT_INITIALIZED/ RTE_STATUS_NOT_SUPPORTED as in rte_nvm_open(). REQ-OAL-NVM-014

Definition at line 134 of file rte_nvm.c.