Settings
This module includes the platform abstraction for non-volatile storage of settings.
Enumerations |
|
| enum |
{
OT_SETTINGS_KEY_ACTIVE_DATASET = 0x0001, OT_SETTINGS_KEY_PENDING_DATASET = 0x0002, OT_SETTINGS_KEY_NETWORK_INFO = 0x0003, OT_SETTINGS_KEY_PARENT_INFO = 0x0004, OT_SETTINGS_KEY_CHILD_INFO = 0x0005, OT_SETTINGS_KEY_SLAAC_IID_SECRET_KEY = 0x0007, OT_SETTINGS_KEY_DAD_INFO = 0x0008, OT_SETTINGS_KEY_SRP_ECDSA_KEY = 0x000b, OT_SETTINGS_KEY_SRP_CLIENT_INFO = 0x000c, OT_SETTINGS_KEY_SRP_SERVER_INFO = 0x000d, OT_SETTINGS_KEY_BR_ULA_PREFIX = 0x000f, OT_SETTINGS_KEY_VENDOR_RESERVED_MIN = 0x8000, OT_SETTINGS_KEY_VENDOR_RESERVED_MAX = 0xffff } |
|
This enumeration defines the keys of settings.
|
|
Functions |
|
| void | otPlatSettingsInit ( otInstance *aInstance, const uint16_t *aSensitiveKeys, uint16_t aSensitiveKeysLength) |
|
Performs any initialization for the settings subsystem, if necessary.
|
|
| void | otPlatSettingsDeinit ( otInstance *aInstance) |
|
Performs any de-initialization for the settings subsystem, if necessary.
|
|
| otError | otPlatSettingsGet ( otInstance *aInstance, uint16_t aKey, int aIndex, uint8_t *aValue, uint16_t *aValueLength) |
|
Fetches the value of a setting.
|
|
| otError | otPlatSettingsSet ( otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength) |
|
Sets or replaces the value of a setting.
|
|
| otError | otPlatSettingsAdd ( otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength) |
|
Adds a value to a setting.
|
|
| otError | otPlatSettingsDelete ( otInstance *aInstance, uint16_t aKey, int aIndex) |
|
Removes a setting from the setting store.
|
|
| void | otPlatSettingsWipe ( otInstance *aInstance) |
|
Removes all settings from the setting store.
|
|
Detailed Description
This module includes the platform abstraction for non-volatile storage of settings.
Enumeration Type Documentation
◆ anonymous enum
| anonymous enum |
This enumeration defines the keys of settings.
Note: When adding a new settings key, if the settings corresponding to the key contains security sensitive information, the developer MUST add the key to the array
aSensitiveKeys
which is passed in
otPlatSettingsInit()
.
Function Documentation
◆ otPlatSettingsAdd()
| otError otPlatSettingsAdd | ( | otInstance * |
aInstance,
|
| uint16_t |
aKey,
|
||
| const uint8_t * |
aValue,
|
||
| uint16_t |
aValueLength
|
||
| ) |
Adds a value to a setting.
This function adds the value to a setting identified by
aKey
, without replacing any existing values.
Note that the underlying implementation is not required to maintain the order of the items associated with a specific key. The added value may be added to the end, the beginning, or even somewhere in the middle. The order of any pre-existing values may also change.
Calling this function successfully may cause unrelated settings with multiple values to be reordered.
OpenThread stack guarantees to use
otPlatSettingsAdd()
method for a
aKey
that was either previously managed by
otPlatSettingsAdd()
(i.e., contains one or more items) or is empty and/or fully deleted (contains no value).
Platform layer can rely and use this fact for optimizing its implementation.
- Parameters
-
[in] aInstanceThe OpenThread instance structure. [in] aKeyThe key associated with the setting to change. [in] aValueA pointer to where the new value of the setting should be read from. MUST NOT be NULL if aValueLengthis non-zero.[in] aValueLengthThe length of the data pointed to by aValue. May be zero.
- Return values
-
OT_ERROR_NONEThe given setting was added or staged to be added. OT_ERROR_NOT_IMPLEMENTEDThis function is not implemented on this platform. OT_ERROR_NO_BUFSNo space remaining to store the given setting.
◆ otPlatSettingsDeinit()
| void otPlatSettingsDeinit | ( | otInstance * |
aInstance
|
) |
Performs any de-initialization for the settings subsystem, if necessary.
- Parameters
-
[in] aInstanceThe OpenThread instance structure.
◆ otPlatSettingsDelete()
| otError otPlatSettingsDelete | ( | otInstance * |
aInstance,
|
| uint16_t |
aKey,
|
||
| int |
aIndex
|
||
| ) |
Removes a setting from the setting store.
This function deletes a specific value from the setting identified by aKey from the settings store.
Note that the underlying implementation is not required to maintain the order of the items associated with a specific key.
- Parameters
-
[in] aInstanceThe OpenThread instance structure. [in] aKeyThe key associated with the requested setting. [in] aIndexThe index of the value to be removed. If set to -1, all values for this aKeywill be removed.
- Return values
-
OT_ERROR_NONEThe given key and index was found and removed successfully. OT_ERROR_NOT_FOUNDThe given key or index was not found in the setting store. OT_ERROR_NOT_IMPLEMENTEDThis function is not implemented on this platform.
◆ otPlatSettingsGet()
| otError otPlatSettingsGet | ( | otInstance * |
aInstance,
|
| uint16_t |
aKey,
|
||
| int |
aIndex,
|
||
| uint8_t * |
aValue,
|
||
| uint16_t * |
aValueLength
|
||
| ) |
Fetches the value of a setting.
This function fetches the value of the setting identified by
aKey
and write it to the memory pointed to by aValue. It then writes the length to the integer pointed to by
aValueLength
. The initial value of
aValueLength
is the maximum number of bytes to be written to
aValue
.
This function can be used to check for the existence of a key without fetching the value by setting
aValue
and
aValueLength
to NULL. You can also check the length of the setting without fetching it by setting only aValue to NULL.
Note that the underlying storage implementation is not required to maintain the order of settings with multiple values. The order of such values MAY change after ANY write operation to the store.
- Parameters
-
[in] aInstanceThe OpenThread instance structure. [in] aKeyThe key associated with the requested setting. [in] aIndexThe index of the specific item to get. [out] aValueA pointer to where the value of the setting should be written. May be set to NULL if just testing for the presence or length of a setting. [in,out] aValueLengthA pointer to the length of the value. When called, this pointer should point to an integer containing the maximum value size that can be written to aValue. At return, the actual length of the setting is written. This may be set to NULL if performing a presence check.
- Return values
-
OT_ERROR_NONEThe given setting was found and fetched successfully. OT_ERROR_NOT_FOUNDThe given setting was not found in the setting store. OT_ERROR_NOT_IMPLEMENTEDThis function is not implemented on this platform.
◆ otPlatSettingsInit()
| void otPlatSettingsInit | ( | otInstance * |
aInstance,
|
| const uint16_t * |
aSensitiveKeys,
|
||
| uint16_t |
aSensitiveKeysLength
|
||
| ) |
Performs any initialization for the settings subsystem, if necessary.
This function also sets the sensitive keys that should be stored in the secure area.
Note that the memory pointed by
aSensitiveKeys
MUST not be released before
aInstance
is destroyed.
- Parameters
-
[in] aInstanceThe OpenThread instance structure. [in] aSensitiveKeysA pointer to an array containing the list of sensitive keys. May be NULL only if aSensitiveKeysLengthis 0, which means that there is no sensitive keys.[in] aSensitiveKeysLengthThe number of entries in the aSensitiveKeysarray.
◆ otPlatSettingsSet()
| otError otPlatSettingsSet | ( | otInstance * |
aInstance,
|
| uint16_t |
aKey,
|
||
| const uint8_t * |
aValue,
|
||
| uint16_t |
aValueLength
|
||
| ) |
Sets or replaces the value of a setting.
This function sets or replaces the value of a setting identified by
aKey
.
Calling this function successfully may cause unrelated settings with multiple values to be reordered.
OpenThread stack guarantees to use
otPlatSettingsSet()
method for a
aKey
that was either previously set using
otPlatSettingsSet()
(i.e., contains a single value) or is empty and/or fully deleted (contains no value).
Platform layer can rely and use this fact for optimizing its implementation.
- Parameters
-
[in] aInstanceThe OpenThread instance structure. [in] aKeyThe key associated with the setting to change. [in] aValueA pointer to where the new value of the setting should be read from. MUST NOT be NULL if aValueLengthis non-zero.[in] aValueLengthThe length of the data pointed to by aValue. May be zero.
- Return values
-
OT_ERROR_NONEThe given setting was changed or staged. OT_ERROR_NOT_IMPLEMENTEDThis function is not implemented on this platform. OT_ERROR_NO_BUFSNo space remaining to store the given setting.
◆ otPlatSettingsWipe()
| void otPlatSettingsWipe | ( | otInstance * |
aInstance
|
) |
Removes all settings from the setting store.
This function deletes all settings from the settings store, resetting it to its initial factory state.
- Parameters
-
[in] aInstanceThe OpenThread instance structure.