Trident IoT Z-Wave SDK
Loading...
Searching...
No Matches
zpal_nvm.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Silicon Laboratories Inc. <https://www.silabs.com/>
2//
3// SPDX-License-Identifier: BSD-3-Clause
4
11
12#ifndef ZPAL_NVM_H_
13#define ZPAL_NVM_H_
14
15#include <stdint.h>
16#include <stddef.h>
17#include "zpal_status.h"
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
45
55
59typedef uint32_t zpal_nvm_object_key_t;
60
64typedef void * zpal_nvm_handle_t;
65
73
81
91zpal_status_t zpal_nvm_read(zpal_nvm_handle_t handle, zpal_nvm_object_key_t key, void *object, size_t object_size);
92
103zpal_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);
104
114zpal_status_t zpal_nvm_write(zpal_nvm_handle_t handle, zpal_nvm_object_key_t key, const void *object, size_t object_size);
115
123
132
142
154 zpal_nvm_object_key_t *key_list,
155 size_t key_list_size,
156 zpal_nvm_object_key_t key_min,
157 zpal_nvm_object_key_t key_max);
158
165
170
179zpal_status_t zpal_nvm_backup_read(uint32_t offset, void *data, size_t data_length);
180
189zpal_status_t zpal_nvm_backup_write(uint32_t offset, const void *data, size_t data_length);
190
197
205
212
217
218#ifdef __cplusplus
219}
220#endif
221
222#endif /* ZPAL_NVM_H_ */
zpal_status_t zpal_nvm_erase_all(zpal_nvm_handle_t handle)
Erases everything in a given area.
zpal_status_t zpal_nvm_backup_write(uint32_t offset, const void *data, size_t data_length)
Writes raw data to the NVM.
void * zpal_nvm_handle_t
Defines the NVM handle type.
Definition zpal_nvm.h:64
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.
zpal_status_t zpal_nvm_backup_open(void)
Opens the NVM for a backup/restore operation.
zpal_status_t zpal_nvm_migrate_legacy_app_file_system(void)
Migrates 800s legacy application file system to shared app/protocol file system.
zpal_status_t zpal_nvm_erase_object(zpal_nvm_handle_t handle, zpal_nvm_object_key_t key)
Delete an object from NVM.
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.
zpal_status_t zpal_nvm_backup_close(void)
Closes the NVM after backup/restore operation.
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.
uint32_t zpal_nvm_object_key_t
Data id type. Only the 20 least significant bits are used.
Definition zpal_nvm.h:59
zpal_status_t zpal_nvm_lock(zpal_nvm_handle_t handle)
Set write protection for storage.
size_t zpal_nvm_backup_get_size(void)
Get size of raw NVM area.
zpal_status_t zpal_nvm_close(zpal_nvm_handle_t handle)
Closes the NVM of a given handle.
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.
zpal_nvm_area_t
Defines the different areas of NVM storage.
Definition zpal_nvm.h:49
zpal_nvm_handle_t zpal_nvm_init(zpal_nvm_area_t area)
Initializes the NVM for a given area.
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.
zpal_status_t zpal_nvm_backup_read(uint32_t offset, void *data, size_t data_length)
Reads raw data from the NVM.
@ ZPAL_NVM_AREA_MANUFACTURER_TOKENS
Reserved for manufacturer tokens.
Definition zpal_nvm.h:53
@ ZPAL_NVM_AREA_ZAF
Reserved for ZAF data.
Definition zpal_nvm.h:51
@ ZPAL_NVM_AREA_STACK
Reserved for stack data.
Definition zpal_nvm.h:52
@ ZPAL_NVM_AREA_APPLICATION
Reserved for application data.
Definition zpal_nvm.h:50
zpal_status_t
ZPAL statuses to be used by ZPAL APIs.
Definition zpal_status.h:38