提交 2ddc9f24 编写于 作者: C chengjinsong2

实现产品param workspace大小自定义

Signed-off-by: Nchengjinsong2 <chengjinsong2@huawei.com>
Change-Id: Icf3f56e967c41ffb98aec672172ee61e9bcf3c9b
上级 487bebe2
......@@ -28,5 +28,8 @@ declare_args() {
enable_ohos_startup_init_lite_use_posix_file_api = false
config_ohos_startup_init_lite_data_path = "/"
# config memory size for liteos-m
config_ohos_startup_init_lite_memory_size = 5120
# boot_kernel_extended_cmdline for extend cmdline
}
......@@ -69,6 +69,10 @@ if (defined(ohos_lite)) {
"PARAMWORKSPACE_NEED_MUTEX",
]
}
if (defined(config_ohos_startup_init_lite_memory_size)) {
defines +=
[ "PARAM_WORKSPACE_MAX=${config_ohos_startup_init_lite_memory_size}" ]
}
}
} else {
if (use_musl) {
......
......@@ -59,7 +59,9 @@ extern "C" {
#ifdef STARTUP_INIT_TEST
#define PARAM_WORKSPACE_MAX (1024 * 50)
#else
#define PARAM_WORKSPACE_MAX (1024 * 4)
#ifndef PARAM_WORKSPACE_MAX
#define PARAM_WORKSPACE_MAX (1024 * 5)
#endif
#endif
#define PARAM_WORKSPACE_SMALL PARAM_WORKSPACE_MAX
#define PARAM_WORKSPACE_DEF PARAM_WORKSPACE_MAX
......
......@@ -103,6 +103,10 @@ static_library("param_init_lite") {
"PARAM_SUPPORT_CYCLE_CHECK",
]
}
if (defined(config_ohos_startup_init_lite_memory_size)) {
defines +=
[ "PARAM_WORKSPACE_MAX=${config_ohos_startup_init_lite_memory_size}" ]
}
}
static_library("param_client_lite") {
......@@ -148,5 +152,10 @@ static_library("param_client_lite") {
include_dirs += [ "$root_out_dir/gen/init" ]
defines += [ "PARAM_LOAD_CFG_FROM_CODE" ]
}
if (defined(config_ohos_startup_init_lite_memory_size)) {
defines +=
[ "PARAM_WORKSPACE_MAX=${config_ohos_startup_init_lite_memory_size}" ]
}
}
}
......@@ -215,13 +215,26 @@ INIT_LOCAL_API int ParamMutexDelete(ParamMutex *mutex)
#endif
#ifdef __LITEOS_M__
__attribute__((weak)) void* GetSysParamMem(uint32_t spaceSize)
{
return malloc(spaceSize);
}
__attribute__((weak)) void FreeSysParamMem(void *mem)
{
if (mem == NULL) {
return;
}
free(mem);
}
INIT_LOCAL_API void *GetSharedMem(const char *fileName, MemHandle *handle, uint32_t spaceSize, int readOnly)
{
PARAM_CHECK(spaceSize <= PARAM_WORKSPACE_MAX, return NULL, "Invalid spaceSize %u", spaceSize);
UNUSED(fileName);
UNUSED(handle);
UNUSED(readOnly);
return (void *)malloc(spaceSize);
return GetSysParamMem(spaceSize);
}
INIT_LOCAL_API void FreeSharedMem(const MemHandle *handle, void *mem, uint32_t dataSize)
......@@ -229,7 +242,7 @@ INIT_LOCAL_API void FreeSharedMem(const MemHandle *handle, void *mem, uint32_t d
PARAM_CHECK(mem != NULL && handle != NULL, return, "Invalid mem or handle");
UNUSED(handle);
UNUSED(dataSize);
free(mem);
FreeSysParamMem(mem);
}
INIT_LOCAL_API void paramMutexEnvInit(void)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册