160#define HF_NVS_IS_VALID_KEY_LENGTH(len) ((len) > 0 && (len) <= HF_NVS_MAX_KEY_LENGTH)
161#define HF_NVS_IS_VALID_VALUE_SIZE(size) ((size) <= HF_NVS_MAX_VALUE_SIZE)
162#define HF_NVS_IS_VALID_NAMESPACE_LENGTH(len) ((len) > 0 && (len) <= HF_NVS_MAX_NAMESPACE_LENGTH)
176 size_t len = strlen(key);
188 size_t len = strlen(namespace_name);
Abstract base class for Non-Volatile Storage implementations in the HardFOC system.
ESP32 base type definitions for hardware abstraction.
static constexpr size_t HF_NVS_MAX_VALUE_SIZE
Definition EspTypes_NVS.h:34
#define HF_NVS_IS_VALID_NAMESPACE_LENGTH(len)
Definition EspTypes_NVS.h:162
static constexpr size_t HF_NVS_ENTRY_SIZE
Definition EspTypes_NVS.h:39
static constexpr uint32_t HF_NVS_COMMIT_TIMEOUT_MS
Commit operation timeout.
Definition EspTypes_NVS.h:44
static constexpr size_t HF_NVS_PAGE_SIZE
Definition EspTypes_NVS.h:38
constexpr bool IsValidNvsValueSize(size_t size) noexcept
Validate NVS value size for ESP32.
Definition EspTypes_NVS.h:197
static constexpr size_t HF_NVS_FLASH_SECTOR_SIZE
Definition EspTypes_NVS.h:37
constexpr bool IsValidNvsNamespace(const char *namespace_name) noexcept
Validate NVS namespace name for ESP32.
Definition EspTypes_NVS.h:185
static constexpr uint32_t HF_NVS_OPERATION_TIMEOUT_MS
Default operation timeout.
Definition EspTypes_NVS.h:42
hf_nvs_encryption_mode_t
ESP32 NVS encryption modes.
Definition EspTypes_NVS.h:77
@ HF_NVS_ENCRYPTION_NONE
No encryption.
@ HF_NVS_ENCRYPTION_XTS
XTS encryption.
@ HF_NVS_ENCRYPTION_HMAC
HMAC encryption.
#define HF_NVS_IS_VALID_KEY_LENGTH(len)
Definition EspTypes_NVS.h:160
static constexpr size_t HF_NVS_MAX_NAMESPACE_LENGTH
Definition EspTypes_NVS.h:35
hf_nvs_open_mode_t
ESP32 NVS open modes.
Definition EspTypes_NVS.h:69
@ HF_NVS_READONLY
Read-only mode.
@ HF_NVS_READWRITE
Read-write mode.
#define HF_NVS_IS_VALID_VALUE_SIZE(size)
Definition EspTypes_NVS.h:161
constexpr bool IsValidNvsKey(const char *key) noexcept
Validate NVS key name for ESP32.
Definition EspTypes_NVS.h:173
static constexpr size_t HF_NVS_MAX_KEY_LENGTH
Definition EspTypes_NVS.h:33
static constexpr uint32_t HF_NVS_INIT_TIMEOUT_MS
Initialization timeout.
Definition EspTypes_NVS.h:43
static constexpr size_t HF_NVS_MAX_NAMESPACES
Definition EspTypes_NVS.h:36
hf_nvs_type_t
ESP32 NVS data types.
Definition EspTypes_NVS.h:53
@ HF_NVS_TYPE_I64
64-bit signed integer
@ HF_NVS_TYPE_U32
32-bit unsigned integer
@ HF_NVS_TYPE_I32
32-bit signed integer
@ HF_NVS_TYPE_BLOB
Binary blob.
@ HF_NVS_TYPE_U64
64-bit unsigned integer
@ HF_NVS_TYPE_U8
8-bit unsigned integer
@ HF_NVS_TYPE_I8
8-bit signed integer
@ HF_NVS_TYPE_I16
16-bit signed integer
@ HF_NVS_TYPE_U16
16-bit unsigned integer
constexpr size_t GetMaxValueSizeForType(hf_nvs_type_t type) noexcept
Get maximum supported value size for given type.
Definition EspTypes_NVS.h:206
Platform-agnostic hardware type definitions for the HardFOC system.
Centralized MCU platform selection and configuration header.
ESP32 NVS capabilities information.
Definition EspTypes_NVS.h:108
bool supports_encryption
Encryption support.
Definition EspTypes_NVS.h:114
size_t max_namespaces
Maximum namespaces.
Definition EspTypes_NVS.h:109
size_t max_key_length
Maximum key length.
Definition EspTypes_NVS.h:111
bool supports_xts_encryption
XTS encryption support.
Definition EspTypes_NVS.h:116
bool supports_wear_leveling
Wear leveling support.
Definition EspTypes_NVS.h:118
size_t flash_sector_size
Flash sector size.
Definition EspTypes_NVS.h:113
hf_nvs_capabilities_t() noexcept
Definition EspTypes_NVS.h:120
bool supports_atomic_operations
Atomic operations support.
Definition EspTypes_NVS.h:117
size_t max_value_size
Maximum value size.
Definition EspTypes_NVS.h:112
size_t max_keys_per_namespace
Maximum keys per namespace.
Definition EspTypes_NVS.h:110
bool supports_hmac_encryption
HMAC encryption support.
Definition EspTypes_NVS.h:115
ESP32 NVS entry information.
Definition EspTypes_NVS.h:145
hf_nvs_type_t type
Entry type.
Definition EspTypes_NVS.h:147
size_t size
Entry size.
Definition EspTypes_NVS.h:148
hf_nvs_entry_info_t() noexcept
Definition EspTypes_NVS.h:151
char key[HF_NVS_MAX_KEY_LENGTH+1]
Entry key.
Definition EspTypes_NVS.h:146
uint32_t crc
Entry CRC.
Definition EspTypes_NVS.h:149
ESP32 NVS iterator configuration.
Definition EspTypes_NVS.h:131
size_t max_entries
Maximum entries to iterate.
Definition EspTypes_NVS.h:135
const char * namespace_name
Namespace name.
Definition EspTypes_NVS.h:132
hf_nvs_type_t type
Data type filter.
Definition EspTypes_NVS.h:133
const char * key_prefix
Key prefix filter.
Definition EspTypes_NVS.h:134
hf_nvs_iterator_config_t() noexcept
Definition EspTypes_NVS.h:137
ESP32 NVS partition configuration.
Definition EspTypes_NVS.h:90
const char * partition_label
Partition label.
Definition EspTypes_NVS.h:91
hf_nvs_encryption_mode_t encryption
Encryption mode.
Definition EspTypes_NVS.h:94
hf_nvs_open_mode_t open_mode
Open mode.
Definition EspTypes_NVS.h:93
bool auto_commit
Auto-commit flag.
Definition EspTypes_NVS.h:96
const char * namespace_name
Namespace name.
Definition EspTypes_NVS.h:92
size_t max_entries
Maximum entries.
Definition EspTypes_NVS.h:95
hf_nvs_partition_config_t() noexcept
Definition EspTypes_NVS.h:98