diff --git a/etc/visual-studio/libopenthread-windows.vcxproj b/etc/visual-studio/libopenthread-windows.vcxproj
index e69071857..ea68f4d3e 100644
--- a/etc/visual-studio/libopenthread-windows.vcxproj
+++ b/etc/visual-studio/libopenthread-windows.vcxproj
@@ -64,7 +64,7 @@
-
+
diff --git a/etc/visual-studio/libopenthread-windows.vcxproj.filters b/etc/visual-studio/libopenthread-windows.vcxproj.filters
index 440eca82a..d8d92025a 100644
--- a/etc/visual-studio/libopenthread-windows.vcxproj.filters
+++ b/etc/visual-studio/libopenthread-windows.vcxproj.filters
@@ -37,7 +37,7 @@
Source Files
-
+
Source Files
diff --git a/examples/platforms/utils/Makefile.am b/examples/platforms/utils/Makefile.am
index 220ead217..6ae6a1457 100644
--- a/examples/platforms/utils/Makefile.am
+++ b/examples/platforms/utils/Makefile.am
@@ -38,7 +38,7 @@ libopenthread_platform_utils_a_CPPFLAGS = \
libopenthread_platform_utils_a_SOURCES = \
debug_uart.c \
- settings.cpp \
+ settings_flash.c \
$(NULL)
noinst_HEADERS = \
diff --git a/examples/platforms/utils/settings.cpp b/examples/platforms/utils/settings_flash.c
similarity index 75%
rename from examples/platforms/utils/settings.cpp
rename to examples/platforms/utils/settings_flash.c
index c7648abe5..6dbcab1e4 100644
--- a/examples/platforms/utils/settings.cpp
+++ b/examples/platforms/utils/settings_flash.c
@@ -35,38 +35,28 @@
#include
#include
#include
-#include "utils/wrap_string.h"
#include
-#include "openthread/platform/settings.h"
-#include "openthread/types.h"
+#include
+#include
-#include
+#include "utils/code_utils.h"
+#include "utils/wrap_string.h"
#include "flash.h"
-#ifdef __cplusplus
-extern "C" {
-#endif
+#define OT_FLASH_BLOCK_ADD_BEGIN_FLAG (1 << 0)
+#define OT_FLASH_BLOCK_ADD_COMPLETE_FLAG (1 << 1)
+#define OT_FLASH_BLOCK_DELETE_FLAG (1 << 2)
+#define OT_FLASH_BLOCK_INDEX_0_FLAG (1 << 3)
-enum
-{
- kBlockAddBeginFlag = 0x1,
- kBlockAddCompleteFlag = 0x02,
- kBlockDeleteFlag = 0x04,
- kBlockIndex0Flag = 0x08,
-};
+#define OT_SETTINGS_FLAG_SIZE 4
+#define OT_SETTINGS_BLOCK_DATA_SIZE 255
-enum
-{
- kSettingsFlagSize = 4,
- kSettingsBlockDataSize = 255,
-
- kSettingsInSwap = 0xbe5cc5ef,
- kSettingsInUse = 0xbe5cc5ee,
- kSettingsNotUse = 0xbe5cc5ec,
-};
+#define OT_SETTINGS_IN_SWAP 0xbe5cc5ef
+#define OT_SETTINGS_IN_USE 0xbe5cc5ee
+#define OT_SETTINGS_NOT_USED 0xbe5cc5ec
OT_TOOL_PACKED_BEGIN
struct settingsBlock
@@ -117,7 +107,7 @@ static uint16_t getAlignLength(uint16_t length)
static void setSettingsFlag(uint32_t aBase, uint32_t aFlag)
{
- utilsFlashWrite(aBase, reinterpret_cast(&aFlag), sizeof(aFlag));
+ utilsFlashWrite(aBase, (uint8_t *)&aFlag, sizeof(aFlag));
}
static void initSettings(uint32_t aBase, uint32_t aFlag)
@@ -151,9 +141,9 @@ static uint32_t swapSettingsBlock(otInstance *aInstance)
sSettingsBaseAddress =
(swapAddress == SETTINGS_CONFIG_BASE_ADDRESS) ? (swapAddress + settingsSize) : SETTINGS_CONFIG_BASE_ADDRESS;
- initSettings(sSettingsBaseAddress, static_cast(kSettingsInSwap));
- sSettingsUsedSize = kSettingsFlagSize;
- swapAddress += kSettingsFlagSize;
+ initSettings(sSettingsBaseAddress, (uint32_t)OT_SETTINGS_IN_SWAP);
+ sSettingsUsedSize = OT_SETTINGS_FLAG_SIZE;
+ swapAddress += OT_SETTINGS_FLAG_SIZE;
while (swapAddress < (oldBase + usedSize))
{
@@ -161,14 +151,15 @@ static uint32_t swapSettingsBlock(otInstance *aInstance)
struct addSettingsBlock
{
struct settingsBlock block;
- uint8_t data[kSettingsBlockDataSize];
+ uint8_t data[OT_SETTINGS_BLOCK_DATA_SIZE];
} OT_TOOL_PACKED_END addBlock;
bool valid = true;
- utilsFlashRead(swapAddress, reinterpret_cast(&addBlock.block), sizeof(struct settingsBlock));
+ utilsFlashRead(swapAddress, (uint8_t *)(&addBlock.block), sizeof(struct settingsBlock));
swapAddress += sizeof(struct settingsBlock);
- if (!(addBlock.block.flag & kBlockAddCompleteFlag) && (addBlock.block.flag & kBlockDeleteFlag))
+ if (!(addBlock.block.flag & OT_FLASH_BLOCK_ADD_COMPLETE_FLAG) &&
+ (addBlock.block.flag & OT_FLASH_BLOCK_DELETE_FLAG))
{
uint32_t address = swapAddress + getAlignLength(addBlock.block.length);
@@ -176,10 +167,10 @@ static uint32_t swapSettingsBlock(otInstance *aInstance)
{
struct settingsBlock block;
- utilsFlashRead(address, reinterpret_cast(&block), sizeof(block));
+ utilsFlashRead(address, (uint8_t *)(&block), sizeof(block));
- if (!(block.flag & kBlockAddCompleteFlag) && (block.flag & kBlockDeleteFlag) &&
- !(block.flag & kBlockIndex0Flag) && (block.key == addBlock.block.key))
+ if (!(block.flag & OT_FLASH_BLOCK_ADD_COMPLETE_FLAG) && (block.flag & OT_FLASH_BLOCK_DELETE_FLAG) &&
+ !(block.flag & OT_FLASH_BLOCK_INDEX_0_FLAG) && (block.key == addBlock.block.key))
{
valid = false;
break;
@@ -191,7 +182,7 @@ static uint32_t swapSettingsBlock(otInstance *aInstance)
if (valid)
{
utilsFlashRead(swapAddress, addBlock.data, getAlignLength(addBlock.block.length));
- utilsFlashWrite(sSettingsBaseAddress + sSettingsUsedSize, reinterpret_cast(&addBlock),
+ utilsFlashWrite(sSettingsBaseAddress + sSettingsUsedSize, (uint8_t *)(&addBlock),
getAlignLength(addBlock.block.length) + sizeof(struct settingsBlock));
sSettingsUsedSize += (sizeof(struct settingsBlock) + getAlignLength(addBlock.block.length));
}
@@ -204,8 +195,8 @@ static uint32_t swapSettingsBlock(otInstance *aInstance)
swapAddress += getAlignLength(addBlock.block.length);
}
- setSettingsFlag(sSettingsBaseAddress, static_cast(kSettingsInUse));
- setSettingsFlag(oldBase, static_cast(kSettingsNotUse));
+ setSettingsFlag(sSettingsBaseAddress, (uint32_t)OT_SETTINGS_IN_USE);
+ setSettingsFlag(oldBase, (uint32_t)OT_SETTINGS_NOT_USED);
exit:
return settingsSize - sSettingsUsedSize;
@@ -222,7 +213,7 @@ static otError addSetting(otInstance * aInstance,
struct addSettingsBlock
{
struct settingsBlock block;
- uint8_t data[kSettingsBlockDataSize];
+ uint8_t data[OT_SETTINGS_BLOCK_DATA_SIZE];
} OT_TOOL_PACKED_END addBlock;
uint32_t settingsSize = SETTINGS_CONFIG_PAGE_NUM > 1 ? SETTINGS_CONFIG_PAGE_SIZE * SETTINGS_CONFIG_PAGE_NUM / 2
: SETTINGS_CONFIG_PAGE_SIZE;
@@ -232,10 +223,10 @@ static otError addSetting(otInstance * aInstance,
if (aIndex0)
{
- addBlock.block.flag &= (~kBlockIndex0Flag);
+ addBlock.block.flag &= (~OT_FLASH_BLOCK_INDEX_0_FLAG);
}
- addBlock.block.flag &= (~kBlockAddBeginFlag);
+ addBlock.block.flag &= (~OT_FLASH_BLOCK_ADD_BEGIN_FLAG);
addBlock.block.length = aValueLength;
if ((sSettingsUsedSize + getAlignLength(addBlock.block.length) + sizeof(struct settingsBlock)) >= settingsSize)
@@ -245,17 +236,17 @@ static otError addSetting(otInstance * aInstance,
error = OT_ERROR_NO_BUFS);
}
- utilsFlashWrite(sSettingsBaseAddress + sSettingsUsedSize, reinterpret_cast(&addBlock.block),
+ utilsFlashWrite(sSettingsBaseAddress + sSettingsUsedSize, (uint8_t *)(&addBlock.block),
sizeof(struct settingsBlock));
- memset(addBlock.data, 0xff, kSettingsBlockDataSize);
+ memset(addBlock.data, 0xff, OT_SETTINGS_BLOCK_DATA_SIZE);
memcpy(addBlock.data, aValue, addBlock.block.length);
- utilsFlashWrite(sSettingsBaseAddress + sSettingsUsedSize + sizeof(struct settingsBlock),
- reinterpret_cast(addBlock.data), getAlignLength(addBlock.block.length));
+ utilsFlashWrite(sSettingsBaseAddress + sSettingsUsedSize + sizeof(struct settingsBlock), (uint8_t *)(addBlock.data),
+ getAlignLength(addBlock.block.length));
- addBlock.block.flag &= (~kBlockAddCompleteFlag);
- utilsFlashWrite(sSettingsBaseAddress + sSettingsUsedSize, reinterpret_cast(&addBlock.block),
+ addBlock.block.flag &= (~OT_FLASH_BLOCK_ADD_COMPLETE_FLAG);
+ utilsFlashWrite(sSettingsBaseAddress + sSettingsUsedSize, (uint8_t *)(&addBlock.block),
sizeof(struct settingsBlock));
sSettingsUsedSize += (sizeof(struct settingsBlock) + getAlignLength(addBlock.block.length));
@@ -281,9 +272,9 @@ void otPlatSettingsInit(otInstance *aInstance)
uint32_t blockFlag;
sSettingsBaseAddress += settingsSize * index;
- utilsFlashRead(sSettingsBaseAddress, reinterpret_cast(&blockFlag), sizeof(blockFlag));
+ utilsFlashRead(sSettingsBaseAddress, (uint8_t *)(&blockFlag), sizeof(blockFlag));
- if (blockFlag == kSettingsInUse)
+ if (blockFlag == OT_SETTINGS_IN_USE)
{
break;
}
@@ -291,18 +282,18 @@ void otPlatSettingsInit(otInstance *aInstance)
if (index == 2)
{
- initSettings(sSettingsBaseAddress, static_cast(kSettingsInUse));
+ initSettings(sSettingsBaseAddress, (uint32_t)OT_SETTINGS_IN_USE);
}
- sSettingsUsedSize = kSettingsFlagSize;
+ sSettingsUsedSize = OT_SETTINGS_FLAG_SIZE;
while (sSettingsUsedSize < settingsSize)
{
struct settingsBlock block;
- utilsFlashRead(sSettingsBaseAddress + sSettingsUsedSize, reinterpret_cast(&block), sizeof(block));
+ utilsFlashRead(sSettingsBaseAddress + sSettingsUsedSize, (uint8_t *)(&block), sizeof(block));
- if (!(block.flag & kBlockAddBeginFlag))
+ if (!(block.flag & OT_FLASH_BLOCK_ADD_BEGIN_FLAG))
{
sSettingsUsedSize += (getAlignLength(block.length) + sizeof(struct settingsBlock));
}
@@ -334,7 +325,7 @@ otError otPlatSettingsAbandonChange(otInstance *aInstance)
otError otPlatSettingsGet(otInstance *aInstance, uint16_t aKey, int aIndex, uint8_t *aValue, uint16_t *aValueLength)
{
otError error = OT_ERROR_NOT_FOUND;
- uint32_t address = sSettingsBaseAddress + kSettingsFlagSize;
+ uint32_t address = sSettingsBaseAddress + OT_SETTINGS_FLAG_SIZE;
uint16_t valueLength = 0;
int index = 0;
@@ -344,16 +335,16 @@ otError otPlatSettingsGet(otInstance *aInstance, uint16_t aKey, int aIndex, uint
{
struct settingsBlock block;
- utilsFlashRead(address, reinterpret_cast(&block), sizeof(block));
+ utilsFlashRead(address, (uint8_t *)(&block), sizeof(block));
if (block.key == aKey)
{
- if (!(block.flag & kBlockIndex0Flag))
+ if (!(block.flag & OT_FLASH_BLOCK_INDEX_0_FLAG))
{
index = 0;
}
- if (!(block.flag & kBlockAddCompleteFlag) && (block.flag & kBlockDeleteFlag))
+ if (!(block.flag & OT_FLASH_BLOCK_ADD_COMPLETE_FLAG) && (block.flag & OT_FLASH_BLOCK_DELETE_FLAG))
{
if (index == aIndex)
{
@@ -407,7 +398,7 @@ otError otPlatSettingsAdd(otInstance *aInstance, uint16_t aKey, const uint8_t *a
otError otPlatSettingsDelete(otInstance *aInstance, uint16_t aKey, int aIndex)
{
otError error = OT_ERROR_NOT_FOUND;
- uint32_t address = sSettingsBaseAddress + kSettingsFlagSize;
+ uint32_t address = sSettingsBaseAddress + OT_SETTINGS_FLAG_SIZE;
int index = 0;
(void)aInstance;
@@ -416,28 +407,28 @@ otError otPlatSettingsDelete(otInstance *aInstance, uint16_t aKey, int aIndex)
{
struct settingsBlock block;
- utilsFlashRead(address, reinterpret_cast(&block), sizeof(block));
+ utilsFlashRead(address, (uint8_t *)(&block), sizeof(block));
if (block.key == aKey)
{
- if (!(block.flag & kBlockIndex0Flag))
+ if (!(block.flag & OT_FLASH_BLOCK_INDEX_0_FLAG))
{
index = 0;
}
- if (!(block.flag & kBlockAddCompleteFlag) && (block.flag & kBlockDeleteFlag))
+ if (!(block.flag & OT_FLASH_BLOCK_ADD_COMPLETE_FLAG) && (block.flag & OT_FLASH_BLOCK_DELETE_FLAG))
{
if (aIndex == index || aIndex == -1)
{
error = OT_ERROR_NONE;
- block.flag &= (~kBlockDeleteFlag);
- utilsFlashWrite(address, reinterpret_cast(&block), sizeof(block));
+ block.flag &= (~OT_FLASH_BLOCK_DELETE_FLAG);
+ utilsFlashWrite(address, (uint8_t *)(&block), sizeof(block));
}
if (index == 1 && aIndex == 0)
{
- block.flag &= (~kBlockIndex0Flag);
- utilsFlashWrite(address, reinterpret_cast(&block), sizeof(block));
+ block.flag &= (~OT_FLASH_BLOCK_INDEX_0_FLAG);
+ utilsFlashWrite(address, (uint8_t *)(&block), sizeof(block));
}
index++;
@@ -452,10 +443,6 @@ otError otPlatSettingsDelete(otInstance *aInstance, uint16_t aKey, int aIndex)
void otPlatSettingsWipe(otInstance *aInstance)
{
- initSettings(sSettingsBaseAddress, static_cast(kSettingsInUse));
+ initSettings(sSettingsBaseAddress, (uint32_t)OT_SETTINGS_IN_USE);
otPlatSettingsInit(aInstance);
}
-
-#ifdef __cplusplus
-};
-#endif