Zpal-nvm#

Defines a platform abstraction layer for the Z-Wave NVM.

How to use the entropy API

The ZPAL NVM provides a way for an application to safely store and retrieve variable size data in a page-based non-volatile memory (NVM). Data are identified with 20-bit identifiers denoted as data_id.

The following outlines an example of use:

  1. Initialize module with zpal_nvm_init().

  2. Invoke zpal_nvm_write() to store data.

  3. Invoke zpal_nvm_read() to get data.

Enumerations#

enum
ZPAL_NVM_AREA_APPLICATION
ZPAL_NVM_AREA_ZAF
ZPAL_NVM_AREA_STACK
ZPAL_NVM_AREA_MANUFACTURER_TOKENS
}

Defines the different areas of NVM storage.

Typedefs#

typedef uint32_t

Data id type.

typedef void *

Defines the NVM handle type.

Functions#

zpal_nvm_init(zpal_nvm_area_t area)

Initializes the NVM for a given area.

zpal_nvm_close(zpal_nvm_handle_t handle)

Closes the NVM of a given handle.

zpal_nvm_read(zpal_nvm_handle_t handle, zpal_nvm_object_key_t key, void *object, size_t object_size)

Reads object from a given area handle and given object key.

zpal_nvm_read_object_part(zpal_nvm_handle_t handle, zpal_nvm_object_key_t key, void *object, size_t offset, size_t object_size)

Reads part of object from a given area handle and given object key.

zpal_nvm_write(zpal_nvm_handle_t handle, zpal_nvm_object_key_t key, const void *object, size_t object_size)

Writes object to a given area handle and given object key.

zpal_nvm_erase_all(zpal_nvm_handle_t handle)

Erases everything in a given area.

zpal_nvm_erase_object(zpal_nvm_handle_t handle, zpal_nvm_object_key_t key)

Delete an object from NVM.

zpal_nvm_get_object_size(zpal_nvm_handle_t handle, zpal_nvm_object_key_t key, size_t *len)

Get the object size identified with a given key from NVM.

size_t
zpal_nvm_enum_objects(zpal_nvm_handle_t handle, zpal_nvm_object_key_t *key_list, size_t key_list_size, zpal_nvm_object_key_t key_min, zpal_nvm_object_key_t key_max)

Create a list of key for valid objects in NVM.

Opens the NVM for a backup/restore operation.

void

Closes the NVM after backup/restore operation.

zpal_nvm_backup_read(uint32_t offset, void *data, size_t data_length)

Reads raw data from the NVM.

zpal_nvm_backup_write(uint32_t offset, const void *data, size_t data_length)

Writes raw data to the NVM.

size_t

Get size of raw NVM area.

zpal_nvm_lock(zpal_nvm_handle_t handle)

Set write protection for storage.

Migrates 800s legacy application file system to shared app/protocol file system.

Enumeration Documentation#

zpal_nvm_area_t#

zpal_nvm_area_t

Defines the different areas of NVM storage.

Enumerator
ZPAL_NVM_AREA_APPLICATION

Reserved for application data.

ZPAL_NVM_AREA_ZAF

Reserved for ZAF data.

ZPAL_NVM_AREA_STACK

Reserved for stack data.

ZPAL_NVM_AREA_MANUFACTURER_TOKENS

Reserved for manufacturer tokens.


Definition at line 45 of file /mnt/raid/workspaces/ws.WDdsgIAV6/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_nvm.h

Typedef Documentation#

zpal_nvm_object_key_t#

typedef uint32_t zpal_nvm_object_key_t

Data id type.

Only the 20 least significant bits are used.


Definition at line 56 of file /mnt/raid/workspaces/ws.WDdsgIAV6/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_nvm.h

zpal_nvm_handle_t#

typedef void* zpal_nvm_handle_t

Defines the NVM handle type.


Definition at line 61 of file /mnt/raid/workspaces/ws.WDdsgIAV6/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_nvm.h

Function Documentation#

zpal_nvm_init#

zpal_nvm_handle_t zpal_nvm_init (zpal_nvm_area_t area)

Initializes the NVM for a given area.

Parameters
[in]area

NVM area to initialize.

Returns

  • A valid NVM handle if successfully initialized. Otherwise it returns NULL.


Definition at line 69 of file /mnt/raid/workspaces/ws.WDdsgIAV6/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_nvm.h

zpal_nvm_close#

zpal_status_t zpal_nvm_close (zpal_nvm_handle_t handle)

Closes the NVM of a given handle.

Parameters
[in]handle

NVM area handle.

Returns

  • ZPAL_STATUS_OK if the file system was successfully closed and ZPAL_STATUS_FAIL otherwise.


Definition at line 77 of file /mnt/raid/workspaces/ws.WDdsgIAV6/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_nvm.h

zpal_nvm_read#

zpal_status_t zpal_nvm_read (zpal_nvm_handle_t handle, zpal_nvm_object_key_t key, void *object, size_t object_size)

Reads object from a given area handle and given object key.

Parameters
[in]handle

NVM area handle.

[in]key

Object key.

[out]object

Address of array where object can be written to.

[in]object_size

Size of the stored object.

Returns


Definition at line 88 of file /mnt/raid/workspaces/ws.WDdsgIAV6/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_nvm.h

zpal_nvm_read_object_part#

zpal_status_t zpal_nvm_read_object_part (zpal_nvm_handle_t handle, zpal_nvm_object_key_t key, void *object, size_t offset, size_t object_size)

Reads part of object from a given area handle and given object key.

Parameters
[in]handle

NVM area handle.

[in]key

Object key.

[out]object

Address of array where object can be written to.

[in]offset

The offset where object shall be read from.

[in]object_size

Size of the stored object.

Returns


Definition at line 100 of file /mnt/raid/workspaces/ws.WDdsgIAV6/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_nvm.h

zpal_nvm_write#

zpal_status_t zpal_nvm_write (zpal_nvm_handle_t handle, zpal_nvm_object_key_t key, const void *object, size_t object_size)

Writes object to a given area handle and given object key.

Parameters
[in]handle

NVM area handle.

[in]key

Object key.

[out]object

Address of array of object that must be written.

[in]object_size

Size of the object to be stored.

Returns


Definition at line 111 of file /mnt/raid/workspaces/ws.WDdsgIAV6/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_nvm.h

zpal_nvm_erase_all#

zpal_status_t zpal_nvm_erase_all (zpal_nvm_handle_t handle)

Erases everything in a given area.

Parameters
[in]handle

NVM area handle.

Returns


Definition at line 119 of file /mnt/raid/workspaces/ws.WDdsgIAV6/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_nvm.h

zpal_nvm_erase_object#

zpal_status_t zpal_nvm_erase_object (zpal_nvm_handle_t handle, zpal_nvm_object_key_t key)

Delete an object from NVM.

Parameters
[in]handle

Nvm storage handle.

[in]key

Object key.

Returns


Definition at line 128 of file /mnt/raid/workspaces/ws.WDdsgIAV6/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_nvm.h

zpal_nvm_get_object_size#

zpal_status_t zpal_nvm_get_object_size (zpal_nvm_handle_t handle, zpal_nvm_object_key_t key, size_t *len)

Get the object size identified with a given key from NVM.

Parameters
[in]handle

Nvm storage handle.

[in]key

Object key.

[out]len

Object size.

Returns


Definition at line 138 of file /mnt/raid/workspaces/ws.WDdsgIAV6/overlay/gsdk/protocol/z-wave/PAL/inc/zpal_nvm.h

zpal_nvm_enum_objects#