Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Startup Init Lite
提交
00a7a514
S
Startup Init Lite
项目概览
OpenHarmony
/
Startup Init Lite
1 年多 前同步成功
通知
3
Star
37
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
Startup Init Lite
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
00a7a514
编写于
2月 15, 2022
作者:
熊
熊磊
提交者:
Gitee
2月 15, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of gitee.com:openharmony/startup_init_lite into init0210xyt
Signed-off-by:
N
xionglei
<
xionglei6@huawei.com
>
上级
4bec6438
28572ecb
变更
29
隐藏空白更改
内联
并排
Showing
29 changed file
with
88 addition
and
109 deletion
+88
-109
interfaces/innerkits/fd_holder/fd_holder.c
interfaces/innerkits/fd_holder/fd_holder.c
+1
-1
interfaces/innerkits/fd_holder/fd_holder_internal.c
interfaces/innerkits/fd_holder/fd_holder_internal.c
+1
-1
interfaces/innerkits/fs_manager/fstab_mount.c
interfaces/innerkits/fs_manager/fstab_mount.c
+2
-1
interfaces/innerkits/syscap/init_syscap.c
interfaces/innerkits/syscap/init_syscap.c
+5
-4
services/BUILD.gn
services/BUILD.gn
+20
-0
services/begetctl/param_cmd.c
services/begetctl/param_cmd.c
+1
-1
services/begetctl/service_control.c
services/begetctl/service_control.c
+1
-1
services/begetctl/shell/shell_bas.c
services/begetctl/shell/shell_bas.c
+1
-1
services/etc/group
services/etc/group
+1
-0
services/etc/init.cfg
services/etc/init.cfg
+7
-4
services/etc/init.without_two_stages.cfg
services/etc/init.without_two_stages.cfg
+4
-4
services/etc/passwd
services/etc/passwd
+1
-0
services/init/include/fd_holder_service.h
services/init/include/fd_holder_service.h
+1
-1
services/init/include/init.h
services/init/include/init.h
+1
-0
services/init/include/init_service.h
services/init/include/init_service.h
+3
-6
services/init/init_common_service.c
services/init/init_common_service.c
+8
-25
services/init/init_group_manager.c
services/init/init_group_manager.c
+2
-2
services/init/init_service_manager.c
services/init/init_service_manager.c
+12
-32
services/init/lite/init.c
services/init/lite/init.c
+0
-1
services/init/main.c
services/init/main.c
+0
-6
services/init/standard/fd_holder_service.c
services/init/standard/fd_holder_service.c
+3
-1
services/init/standard/init.c
services/init/standard/init.c
+2
-2
services/init/standard/init_mount.c
services/init/standard/init_mount.c
+0
-1
services/init/standard/init_service.c
services/init/standard/init_service.c
+4
-6
services/loopevent/task/le_asynctask.c
services/loopevent/task/le_asynctask.c
+1
-2
services/loopevent/timer/le_timer.c
services/loopevent/timer/le_timer.c
+2
-2
services/loopevent/timer/le_timer.h
services/loopevent/timer/le_timer.h
+2
-0
services/param/trigger/trigger_manager.c
services/param/trigger/trigger_manager.c
+2
-3
test/plugintest/plugin_param_test.c
test/plugintest/plugin_param_test.c
+0
-1
未找到文件。
interfaces/innerkits/fd_holder/fd_holder.c
浏览文件 @
00a7a514
...
...
@@ -25,7 +25,7 @@
static
int
BuildClientSocket
(
void
)
{
int
sockFd
;
sockFd
=
socket
(
AF_UNIX
,
SOCK_DGRAM
|
SOCK_CLOEXEC
,
0
);
sockFd
=
socket
(
AF_UNIX
,
SOCK_DGRAM
|
SOCK_CLOEXEC
,
0
);
if
(
sockFd
<
0
)
{
BEGET_LOGE
(
"Failed to build socket, err = %d"
,
errno
);
return
-
1
;
...
...
interfaces/innerkits/fd_holder/fd_holder_internal.c
浏览文件 @
00a7a514
...
...
@@ -40,7 +40,7 @@ int BuildControlMessage(struct msghdr *msghdr, int *fds, int fdCount, bool send
msghdr
->
msg_controllen
+=
CMSG_SPACE
(
sizeof
(
struct
ucred
));
}
msghdr
->
msg_control
=
calloc
(
1
,
(
msghdr
->
msg_controllen
==
0
?
1
:
msghdr
->
msg_controllen
));
msghdr
->
msg_control
=
calloc
(
1
,
(
(
msghdr
->
msg_controllen
==
0
)
?
1
:
msghdr
->
msg_controllen
));
if
(
msghdr
->
msg_control
==
NULL
)
{
BEGET_LOGE
(
"Failed to build control message"
);
return
-
1
;
...
...
interfaces/innerkits/fs_manager/fstab_mount.c
浏览文件 @
00a7a514
...
...
@@ -170,7 +170,8 @@ static int DoResizeF2fs(const char* device, const unsigned long long size)
char
**
argv
=
(
char
**
)
cmd
;
ret
=
ExecCommand
(
argc
,
argv
);
}
else
{
unsigned
long
long
realSize
=
size
*
((
unsigned
long
long
)
1024
*
1024
/
512
);
unsigned
long
long
realSize
=
size
*
((
unsigned
long
long
)
RESIZE_BUFFER_SIZE
*
RESIZE_BUFFER_SIZE
/
FS_MANAGER_BUFFER_SIZE
);
char
sizeStr
[
RESIZE_BUFFER_SIZE
]
=
{
0
};
sprintf_s
(
sizeStr
,
RESIZE_BUFFER_SIZE
,
"%llu"
,
realSize
);
char
*
cmd
[]
=
{
...
...
interfaces/innerkits/syscap/init_syscap.c
浏览文件 @
00a7a514
...
...
@@ -25,6 +25,7 @@
#define SYSCAP_MAX_SIZE 100
#define SYSCAP_PREFIX_NAME "SystemCapability"
#define CONST_SYSCAP_PREFIX_NAME "const.SystemCapability"
bool
HasSystemCapability
(
const
char
*
cap
)
{
...
...
@@ -32,12 +33,12 @@ bool HasSystemCapability(const char *cap)
char
paramValue
[
PARAM_VALUE_LEN_MAX
]
=
{
0
};
unsigned
int
valueLen
=
PARAM_VALUE_LEN_MAX
;
if
(
strncmp
(
SYSCAP_PREFIX_NAME
,
cap
,
sizeof
(
SYSCAP_PREFIX_NAME
)
-
1
)
!
=
0
)
{
if
(
s
trncpy_s
(
capName
,
sizeof
(
capName
),
cap
,
sizeof
(
capName
)
-
1
)
<
0
)
{
BEGET_LOGE
(
"Failed s
trncpy
_s err=%d"
,
errno
);
if
(
strncmp
(
SYSCAP_PREFIX_NAME
,
cap
,
sizeof
(
SYSCAP_PREFIX_NAME
)
-
1
)
=
=
0
)
{
if
(
s
nprintf_s
(
capName
,
SYSCAP_MAX_SIZE
,
SYSCAP_MAX_SIZE
-
1
,
"const.%s"
,
cap
)
==
-
1
)
{
BEGET_LOGE
(
"Failed s
nprintf
_s err=%d"
,
errno
);
return
false
;
}
}
else
if
(
snprintf_s
(
capName
,
SYSCAP_MAX_SIZE
,
SYSCAP_MAX_SIZE
-
1
,
SYSCAP_PREFIX_NAME
".%s"
,
cap
)
==
-
1
)
{
}
else
if
(
snprintf_s
(
capName
,
SYSCAP_MAX_SIZE
,
SYSCAP_MAX_SIZE
-
1
,
CONST_
SYSCAP_PREFIX_NAME
".%s"
,
cap
)
==
-
1
)
{
BEGET_LOGE
(
"Failed snprintf_s err=%d"
,
errno
);
return
false
;
}
...
...
services/BUILD.gn
浏览文件 @
00a7a514
...
...
@@ -275,6 +275,23 @@ if (defined(ohos_lite)) {
part_name = "init"
}
ohos_prebuilt_etc("syscap.para") {
source =
"${preloader_output_dir}/${product_name}/system/etc/param/syscap.para"
module_install_dir = "etc/param/"
part_name = "init"
}
ohos_prebuilt_etc("syscap.json") {
source = "${preloader_output_dir}/${product_name}/system/etc/syscap.json"
part_name = "init"
}
ohos_prebuilt_etc("systemcapability.json") {
source = "${preloader_output_dir}/${product_name}/system/etc/SystemCapability.json"
part_name = "init"
}
group("init_etc") {
deps = [
":boot.group",
...
...
@@ -286,6 +303,9 @@ if (defined(ohos_lite)) {
":ohos.para",
":ohos.para.dac",
":passwd",
":syscap.json",
":syscap.para",
":systemcapability.json",
]
}
}
services/begetctl/param_cmd.c
浏览文件 @
00a7a514
...
...
@@ -202,7 +202,7 @@ static int32_t BShellParamCmdLs(BShellHandle shell, int32_t argc, char *argv[])
char
*
buffer
=
GetLocalBuffer
(
&
buffSize
);
char
*
realParameter
=
GetRealParameter
(
shell
,
(
input
==
NULL
)
?
""
:
input
,
buffer
,
buffSize
);
BSH_CHECK
(
realParameter
!=
NULL
,
return
BSH_INVALID_PARAM
,
"Invalid shell env"
);
char
*
prefix
=
strdup
(
strlen
(
realParameter
)
==
0
?
"#"
:
realParameter
);
char
*
prefix
=
strdup
(
(
strlen
(
realParameter
)
==
0
)
?
"#"
:
realParameter
);
BSH_LOGV
(
"BShellParamCmdLs prefix %s"
,
prefix
);
int
ret
=
0
;
if
(
all
!=
0
)
{
...
...
services/begetctl/service_control.c
浏览文件 @
00a7a514
...
...
@@ -14,11 +14,11 @@
*/
#include "service_control.h"
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include "begetctl.h"
#include "securec.h"
#include "sys_param.h"
#define SERVICE_START_NUMBER 2
...
...
services/begetctl/shell/shell_bas.c
浏览文件 @
00a7a514
...
...
@@ -152,7 +152,7 @@ void BShellEnvOutputResult(BShellHandle handle, int32_t result)
static
void
BShellEnvOutputParam
(
BShellHandle
handle
,
char
*
var
)
{
BShellEnvOutput
(
handle
,
var
[
0
]
==
'$'
?
var
+
1
:
var
);
BShellEnvOutput
(
handle
,
(
var
[
0
]
==
'$'
)
?
var
+
1
:
var
);
BShellEnvOutputString
(
handle
,
" = "
);
BShellEnvOutputString
(
handle
,
BShellEnvGetStringParam
(
handle
,
var
));
}
...
...
services/etc/group
浏览文件 @
00a7a514
...
...
@@ -4,6 +4,7 @@ system:x:1000:
radio:x:1001:
bluetooth:x:1002:
graphics:x:1003:
file_manager:x:1006:
log:x:1007:
user_data_rw:x:1008:
dfs:x:1009:
...
...
services/etc/init.cfg
浏览文件 @
00a7a514
...
...
@@ -17,6 +17,10 @@
"start watchdog_service",
"mkdir /data",
"mount_fstab /vendor/etc/fstab.${ohos.boot.hardware}",
"chown system system /data",
"chmod 0771 /data",
"mkdir /data/service 0711 root root",
"mkdir /data/service/el0 0711 root root",
"load_persist_params ",
"chown access_token access_token /dev/access_token_id",
"chmod 0666 /dev/access_token_id"
...
...
@@ -143,6 +147,9 @@
"chown system system /sys/power/state",
"chown system system /sys/power/wakeup_count",
"chmod 0660 /sys/power/state",
"mount pstore pstore /sys/fs/pstore nodev noexec nosuid",
"chown system log /sys/fs/pstore",
"chmod 0550 /sys/fs/pstore",
"ifup lo",
"hostname localhost",
"domainname localdomain"
...
...
@@ -184,8 +191,6 @@
}, {
"name" : "post-fs-data",
"cmds" : [
"chown system system /data",
"chmod 0771 /data",
"mkdir /data/app 0711 root root",
"mkdir /data/app/el1 0711 root root",
"mkdir /data/app/el1/bundle 0711 root root",
...
...
@@ -193,8 +198,6 @@
"mkdir /data/app/el2 0711 root root",
"mkdir /data/app/el3 0711 root root",
"mkdir /data/app/el4 0711 root root",
"mkdir /data/service 0711 root root",
"mkdir /data/service/el0 0711 root root",
"mkdir /data/service/el1 0711 root root",
"mkdir /data/service/el1/public 0711 root root",
"mkdir /data/service/el1/public/AbilityManagerService 0711 system system",
...
...
services/etc/init.without_two_stages.cfg
浏览文件 @
00a7a514
...
...
@@ -19,6 +19,10 @@
"mkdir /data",
"mount ext4 /dev/block/platform/soc/10100000.himci.eMMC/by-name/vendor /vendor wait rdonly barrier=1",
"mount ext4 /dev/block/platform/soc/10100000.himci.eMMC/by-name/userdata /data wait nosuid nodev noatime barrier=1,data=ordered,noauto_da_alloc",
"chown system system /data",
"chmod 0771 /data",
"mkdir /data/service 0711 root root",
"mkdir /data/service/el0 0711 root root",
"load_persist_params "
]
}, {
...
...
@@ -184,8 +188,6 @@
}, {
"name" : "post-fs-data",
"cmds" : [
"chown system system /data",
"chmod 0771 /data",
"mkdir /data/app 0711 root root",
"mkdir /data/app/el1 0711 root root",
"mkdir /data/app/el1/bundle 0711 root root",
...
...
@@ -193,8 +195,6 @@
"mkdir /data/app/el2 0711 root root",
"mkdir /data/app/el3 0711 root root",
"mkdir /data/app/el4 0711 root root",
"mkdir /data/service 0711 root root",
"mkdir /data/service/el0 0711 root root",
"mkdir /data/service/el1 0711 root root",
"mkdir /data/service/el1/public 0711 root root",
"mkdir /data/service/el2 0711 root root",
...
...
services/etc/passwd
浏览文件 @
00a7a514
...
...
@@ -4,6 +4,7 @@ system:x:1000:1000:::/bin/false
radio:x:1001:1001:::/bin/false
bluetooth:x:1002:1002:::/bin/false
graphics:x:1003:1003:::/bin/false
file_manager:x:1006:1006:::/bin/false
log:x:1007:1007:::/bin/false
user_data_rw:x:1008:1008:::/bin/false
dfs:x:1009:1009:::/bin/false
...
...
services/init/include/fd_holder_service.h
浏览文件 @
00a7a514
...
...
@@ -19,6 +19,6 @@ extern "C" {
#endif
void
RegisterFdHoldWatcher
(
int
sock
);
#ifdef __cplusplus
extern
"C"
{
}
#endif
#endif // BASE_STARTUP_INITLITE_FD_HOLDER_SERVICE_H
services/init/include/init.h
浏览文件 @
00a7a514
...
...
@@ -30,6 +30,7 @@ extern "C" {
#define DEFAULT_UID_KIT_FRAMEWORK 3
// max length of one param/path
#define MAX_ONE_ARG_LEN 200
#define FD_HOLDER_BUFFER_SIZE 4096
#define UNUSED(x) (void)(x)
...
...
services/init/include/init_service.h
浏览文件 @
00a7a514
...
...
@@ -17,6 +17,8 @@
#include <stdbool.h>
#include <stdint.h>
#include <sys/types.h>
#include <sched.h>
#include <stdio.h>
#include "cJSON.h"
#include "init_cmds.h"
...
...
@@ -89,11 +91,6 @@ typedef enum {
END_RECV_READY
,
}
ServiceEndMode
;
typedef
struct
{
int
*
cpus
;
int
cpuNum
;
}
CpuArgs
;
typedef
struct
{
uid_t
uID
;
gid_t
*
gIDArray
;
...
...
@@ -148,7 +145,7 @@ typedef struct Service_ {
size_t
fdCount
;
TimerHandle
timer
;
ServiceJobs
serviceJobs
;
CpuArgs
cpuInfo
;
cpu_set_t
cpuSet
;
}
Service
;
int
ServiceStart
(
Service
*
service
);
...
...
services/init/init_common_service.c
浏览文件 @
00a7a514
...
...
@@ -18,8 +18,6 @@
#include <signal.h>
#include <stdlib.h>
#include <string.h>
#include <sched.h>
#include <stdio.h>
#ifdef __MUSL__
#include <stropts.h>
#endif
...
...
@@ -238,32 +236,17 @@ static void PublishHoldFds(Service *service)
static
int
BindCpuCore
(
Service
*
service
)
{
if
(
service
==
NULL
||
service
->
cpuInfo
.
cpuNum
<=
0
)
{
if
(
service
==
NULL
)
{
return
SERVICE_SUCCESS
;
}
long
cpuNum
=
sysconf
(
_SC_NPROCESSORS_CONF
);
INIT_ERROR_CHECK
(
service
->
cpuInfo
.
cpuNum
<=
cpuNum
,
return
SERVICE_FAILURE
,
"%s cpus cores exceeds total number of device cores"
,
service
->
name
);
int
index
=
0
;
cpu_set_t
setMask
;
CPU_ZERO
(
&
setMask
);
int
pid
=
getpid
();
for
(
int
i
=
0
;
i
<
service
->
cpuInfo
.
cpuNum
;
i
++
)
{
index
=
(
int
)
service
->
cpuInfo
.
cpus
[
i
];
if
((
int
)
cpuNum
<=
index
)
{
INIT_LOGW
(
"%s core number %d of CPU cores does not exist"
,
service
->
name
,
index
);
continue
;
}
if
(
CPU_ISSET
(
index
,
&
setMask
))
{
continue
;
}
CPU_SET
(
index
,
&
setMask
);
}
if
(
sched_setaffinity
(
pid
,
sizeof
(
setMask
),
&
setMask
)
!=
0
)
{
INIT_LOGI
(
"%s set affinity between process(pid=%d) with CPU's core failed"
,
service
->
name
,
pid
);
}
else
{
INIT_LOGE
(
"%s set affinity between process(pid=%d) with CPU's core successfully"
,
service
->
name
,
pid
);
#ifndef __LITEOS__
int
pid
=
getpid
();
if
(
sched_setaffinity
(
pid
,
sizeof
(
service
->
cpuSet
),
&
service
->
cpuSet
)
!=
0
)
{
INIT_LOGE
(
"%s set affinity between process(pid=%d) with CPU's core failed"
,
service
->
name
,
pid
);
return
SERVICE_FAILURE
;
}
INIT_LOGI
(
"%s set affinity between process(pid=%d) with CPU's core successfully"
,
service
->
name
,
pid
);
#endif
return
SERVICE_SUCCESS
;
}
...
...
services/init/init_group_manager.c
浏览文件 @
00a7a514
...
...
@@ -114,10 +114,10 @@ static char *GetAbsolutePath(const char *path, const char *cfgName, char *buffer
ext
=
strcmp
(
cfgName
+
cfgNameLen
-
strlen
(
".cfg"
),
".cfg"
)
==
0
;
}
if
(
cfgName
[
0
]
!=
'/'
)
{
const
char
*
format
=
(
ext
!=
0
)
?
"%s/%s"
:
"%s/%s.cfg"
;
const
char
*
format
=
(
(
ext
!=
0
)
?
"%s/%s"
:
"%s/%s.cfg"
)
;
len
=
sprintf_s
(
buffer
,
buffSize
,
format
,
path
,
cfgName
);
}
else
{
const
char
*
format
=
(
ext
!=
0
)
?
"%s"
:
"%s.cfg"
;
const
char
*
format
=
(
(
ext
!=
0
)
?
"%s"
:
"%s.cfg"
)
;
len
=
sprintf_s
(
buffer
,
buffSize
,
format
,
cfgName
);
}
if
(
len
<=
0
)
{
...
...
services/init/init_service_manager.c
浏览文件 @
00a7a514
...
...
@@ -175,6 +175,7 @@ Service *AddService(const char *name)
node
->
data
.
service
=
service
;
service
->
name
=
node
->
name
;
service
->
status
=
SERVICE_IDLE
;
CPU_ZERO
(
&
service
->
cpuSet
);
g_serviceSpace
.
serviceCount
++
;
INIT_LOGV
(
"AddService %s"
,
node
->
name
);
return
service
;
...
...
@@ -203,11 +204,6 @@ void ReleaseService(Service *service)
FreeServiceArg
(
&
service
->
writePidArgs
);
FreeServiceArg
(
&
service
->
capsArgs
);
if
(
service
->
cpuInfo
.
cpus
!=
NULL
)
{
free
(
service
->
cpuInfo
.
cpus
);
service
->
cpuInfo
.
cpus
=
NULL
;
}
service
->
cpuInfo
.
cpuNum
=
0
;
if
(
service
->
servPerm
.
caps
!=
NULL
)
{
free
(
service
->
servPerm
.
caps
);
service
->
servPerm
.
caps
=
NULL
;
...
...
@@ -274,7 +270,7 @@ static int GetServiceArgs(const cJSON *argJson, const char *name, int maxCount,
for
(
int
i
=
0
;
i
<
count
+
1
;
++
i
)
{
args
->
argv
[
i
]
=
NULL
;
}
// ServiceArgs have a variety of uses, some requiring a NULL ending, some not
// ServiceArgs have a variety of uses, some requiring a NULL ending, some not
if
(
strcmp
(
name
,
D_CAPS_STR_IN_CFG
)
!=
0
)
{
args
->
count
=
count
+
1
;
}
else
{
...
...
@@ -767,12 +763,7 @@ int GetCritical(const cJSON *curArrItem, Service *curServ, const char *attrName
return
SERVICE_SUCCESS
;
}
static
int
Comparefunc
(
const
void
*
before
,
const
void
*
after
)
{
return
(
*
(
int
*
)
before
-
*
(
int
*
)
after
);
}
static
int
GetCpuArgs
(
const
cJSON
*
argJson
,
const
char
*
name
,
CpuArgs
*
args
)
static
int
GetCpuArgs
(
const
cJSON
*
argJson
,
const
char
*
name
,
Service
*
service
)
{
INIT_ERROR_CHECK
(
argJson
!=
NULL
,
return
SERVICE_FAILURE
,
"Invalid argJson"
);
cJSON
*
obj
=
cJSON_GetObjectItem
(
argJson
,
name
);
...
...
@@ -781,31 +772,20 @@ static int GetCpuArgs(const cJSON *argJson, const char *name, CpuArgs *args)
int
ret
=
cJSON_IsArray
(
obj
);
INIT_ERROR_CHECK
(
ret
,
return
SERVICE_FAILURE
,
"Invalid type"
);
int
count
=
cJSON_GetArraySize
(
obj
);
int
tmpArray
[
count
];
int
cpus
=
-
1
;
int
cpuNumMax
=
sysconf
(
_SC_NPROCESSORS_CONF
);
for
(
int
i
=
0
;
i
<
count
;
++
i
)
{
cJSON
*
item
=
cJSON_GetArrayItem
(
obj
,
i
);
INIT_ERROR_CHECK
(
item
!=
NULL
,
return
SERVICE_FAILURE
,
"prase invalid"
);
tmpArray
[
i
]
=
(
int
)
cJSON_GetNumberValue
(
item
);
}
qsort
(
tmpArray
,
count
,
sizeof
(
int
),
Comparefunc
);
int
cpuCount
=
0
;
for
(
int
j
=
0
;
j
<
count
;
j
++
)
{
if
(
j
==
0
&&
tmpArray
[
0
]
==
0
)
{
tmpArray
[
cpuCount
++
]
=
0
;
cpus
=
(
int
)
cJSON_GetNumberValue
(
item
);
if
(
cpuNumMax
<=
cpus
)
{
INIT_LOGW
(
"%s core number %d of CPU cores does not exist"
,
service
->
name
,
cpus
);
continue
;
}
if
(
tmpArray
[
j
]
!=
tmpArray
[
j
-
1
]
)
{
tmpArray
[
cpuCount
++
]
=
tmpArray
[
j
]
;
if
(
CPU_ISSET
(
cpus
,
&
service
->
cpuSet
)
)
{
continue
;
}
}
args
->
cpus
=
(
int
*
)
malloc
(
cpuCount
*
sizeof
(
int
));
INIT_ERROR_CHECK
(
args
->
cpus
!=
NULL
,
return
SERVICE_FAILURE
,
"Failed to malloc for argv"
);
for
(
int
i
=
0
;
i
<
cpuCount
;
++
i
)
{
args
->
cpus
[
i
]
=
-
1
;
}
args
->
cpuNum
=
cpuCount
;
for
(
int
i
=
0
;
i
<
count
;
++
i
)
{
args
->
cpus
[
i
]
=
tmpArray
[
i
];
CPU_SET
(
cpus
,
&
service
->
cpuSet
);
}
return
SERVICE_SUCCESS
;
}
...
...
@@ -843,7 +823,7 @@ int ParseOneService(const cJSON *curItem, Service *service)
(
void
)
GetServiceArgs
(
curItem
,
"writepid"
,
MAX_WRITEPID_FILES
,
&
service
->
writePidArgs
);
(
void
)
GetServiceArgs
(
curItem
,
D_CAPS_STR_IN_CFG
,
MAX_WRITEPID_FILES
,
&
service
->
capsArgs
);
(
void
)
GetStringItem
(
curItem
,
APL_STR_IN_CFG
,
service
->
apl
,
MAX_APL_NAME
);
(
void
)
GetCpuArgs
(
curItem
,
CPU_CORE_STR_IN_CFG
,
&
service
->
cpuInfo
);
(
void
)
GetCpuArgs
(
curItem
,
CPU_CORE_STR_IN_CFG
,
service
);
ret
=
GetServiceCaps
(
curItem
,
service
);
INIT_ERROR_CHECK
(
ret
==
0
,
return
SERVICE_FAILURE
,
"Failed to get caps for service %s"
,
service
->
name
);
ret
=
GetDynamicService
(
curItem
,
service
);
...
...
services/init/lite/init.c
浏览文件 @
00a7a514
...
...
@@ -22,7 +22,6 @@
#endif
#include "loop_event.h"
#include "parameter.h"
#include "securec.h"
static
void
PrintSysInfo
(
void
)
{
...
...
services/init/main.c
浏览文件 @
00a7a514
...
...
@@ -17,11 +17,6 @@
static
const
pid_t
INIT_PROCESS_PID
=
1
;
int
__attribute__
((
weak
))
AtlibInit
(
void
)
{
return
0
;
}
int
main
(
int
argc
,
char
*
const
argv
[])
{
int
isSecondStage
=
0
;
...
...
@@ -40,7 +35,6 @@ int main(int argc, char * const argv[])
LogInit
();
}
LogInit
();
(
void
)
AtlibInit
();
SystemInit
();
SystemExecuteRcs
();
SystemConfig
();
...
...
services/init/standard/fd_holder_service.c
浏览文件 @
00a7a514
...
...
@@ -23,6 +23,8 @@
#include "loop_event.h"
#include "securec.h"
#define MSG_ARRAY_INDEX 2
static
void
FreeFds
(
int
*
fds
)
{
if
(
fds
!=
NULL
)
{
...
...
@@ -190,7 +192,7 @@ static void HandlerFdHolder(int sock)
}
char
*
serviceName
=
msg
[
0
];
char
*
action
=
msg
[
1
];
char
*
pollStr
=
msg
[
2
];
char
*
pollStr
=
msg
[
MSG_ARRAY_INDEX
];
Service
*
service
=
GetServiceByName
(
serviceName
);
if
(
CheckFdHolderPermission
(
service
,
requestPid
)
<
0
)
{
...
...
services/init/standard/init.c
浏览文件 @
00a7a514
...
...
@@ -47,8 +47,8 @@ static int FdHolderSockInit(void)
{
int
sock
=
-
1
;
int
on
=
1
;
int
fdHolderBufferSize
=
4
*
1024
;
// 4KiB
sock
=
socket
(
AF_UNIX
,
SOCK_DGRAM
|
SOCK_CLOEXEC
|
SOCK_NONBLOCK
,
0
);
int
fdHolderBufferSize
=
FD_HOLDER_BUFFER_SIZE
;
// 4KiB
sock
=
socket
(
AF_UNIX
,
SOCK_DGRAM
|
SOCK_CLOEXEC
|
SOCK_NONBLOCK
,
0
);
if
(
sock
<
0
)
{
INIT_LOGE
(
"Failed to create fd holder socket, err = %d"
,
errno
);
return
-
1
;
...
...
services/init/standard/init_mount.c
浏览文件 @
00a7a514
...
...
@@ -16,7 +16,6 @@
#include "fs_manager/fs_manager.h"
#include "init_cmds.h"
#include "init_log.h"
#include "securec.h"
int
MountRequriedPartitions
(
const
Fstab
*
fstab
)
{
...
...
services/init/standard/init_service.c
浏览文件 @
00a7a514
...
...
@@ -99,10 +99,9 @@ int ServiceExec(const Service *service)
int
SetAccessToken
(
const
Service
*
service
)
{
INIT_ERROR_CHECK
(
service
!=
NULL
,
return
SERVICE_FAILURE
,
"%s failed"
,
service
->
name
);
if
(
service
->
tokenId
!=
0
&&
SetSelfTokenID
(
service
->
tokenId
)
!=
0
)
{
INIT_LOGE
(
"%s: token id %lld, set token id result %d"
,
service
->
name
,
service
->
tokenId
,
errno
);
}
return
0
;
int
ret
=
SetSelfTokenID
(
service
->
tokenId
);
INIT_LOGI
(
"%s: token id %lld, set token id result %d"
,
service
->
name
,
service
->
tokenId
,
ret
);
return
ret
==
0
?
SERVICE_SUCCESS
:
SERVICE_FAILURE
;
}
void
GetAccessToken
(
void
)
...
...
@@ -115,8 +114,7 @@ void GetAccessToken(void)
service
->
capsArgs
.
argv
=
NULL
;
}
if
(
strlen
(
service
->
apl
)
==
0
)
{
(
void
)
strncpy_s
(
service
->
apl
,
sizeof
(
service
->
apl
),
"system_core"
,
sizeof
(
service
->
apl
)
-
1
);
(
void
)
strncpy_s
(
service
->
apl
,
sizeof
(
service
->
apl
),
"system_core"
,
sizeof
(
service
->
apl
)
-
1
);
}
uint64_t
tokenId
=
GetAccessTokenId
(
service
->
name
,
(
const
char
**
)
service
->
capsArgs
.
argv
,
service
->
capsArgs
.
count
,
service
->
apl
);
...
...
services/loopevent/task/le_asynctask.c
浏览文件 @
00a7a514
...
...
@@ -97,8 +97,7 @@ LE_STATUS LE_StartAsyncEvent(const LoopHandle loopHandle,
const
TaskHandle
taskHandle
,
uint64_t
eventId
,
const
uint8_t
*
data
,
uint32_t
buffLen
)
{
LE_CHECK
(
loopHandle
!=
NULL
&&
taskHandle
!=
NULL
,
return
LE_INVALID_PARAM
,
"Invalid parameters"
);
BufferHandle
handle
=
NULL
;
handle
=
LE_CreateBuffer
(
loopHandle
,
buffLen
+
1
+
sizeof
(
eventId
));
BufferHandle
handle
=
LE_CreateBuffer
(
loopHandle
,
buffLen
+
1
+
sizeof
(
eventId
));
char
*
buff
=
(
char
*
)
LE_GetBufferInfo
(
handle
,
NULL
,
NULL
);
int
ret
=
memcpy_s
(
buff
,
sizeof
(
eventId
),
&
eventId
,
sizeof
(
eventId
));
LE_CHECK
(
ret
==
0
,
return
-
1
,
"Failed to copy data"
);
...
...
services/loopevent/timer/le_timer.c
浏览文件 @
00a7a514
...
...
@@ -27,9 +27,9 @@
static
LE_STATUS
SetTimer_
(
int
tfd
,
uint64_t
timeout
)
{
struct
itimerspec
timeValue
;
time_t
sec
=
timeout
/
1000
;
time_t
sec
=
timeout
/
TIMEOUT_BASE
;
timeValue
.
it_interval
.
tv_sec
=
sec
;
long
nsec
=
(
timeout
%
1000
)
*
1000
;
long
nsec
=
(
timeout
%
TIMEOUT_BASE
)
*
TIMEOUT_BASE
;
timeValue
.
it_interval
.
tv_nsec
=
nsec
;
timeValue
.
it_value
.
tv_sec
=
sec
;
timeValue
.
it_value
.
tv_nsec
=
nsec
;
...
...
services/loopevent/timer/le_timer.h
浏览文件 @
00a7a514
...
...
@@ -18,6 +18,8 @@
#include "le_task.h"
#include "loop_event.h"
#define TIMEOUT_BASE 1000
typedef
struct
{
BaseTask
base
;
LE_ProcessTimer
processTimer
;
...
...
services/param/trigger/trigger_manager.c
浏览文件 @
00a7a514
...
...
@@ -410,8 +410,7 @@ static int CheckParamMatch_(const TriggerWorkSpace *workSpace,
PARAM_CHECK
((
type
==
TRIGGER_PARAM
)
||
(
type
==
TRIGGER_PARAM_WAIT
),
return
-
1
,
"Invaid type"
);
CalculatorInit
(
calculator
,
MAX_CONDITION_NUMBER
,
sizeof
(
LogicData
),
1
);
int
ret
=
GetValueFromContent
(
content
,
contentSize
,
0
,
calculator
->
inputName
,
SUPPORT_DATA_BUFFER_MAX
);
int
ret
=
GetValueFromContent
(
content
,
contentSize
,
0
,
calculator
->
inputName
,
SUPPORT_DATA_BUFFER_MAX
);
PARAM_CHECK
(
ret
==
0
,
return
-
1
,
"Failed parse content name"
);
ret
=
GetValueFromContent
(
content
,
contentSize
,
strlen
(
calculator
->
inputName
)
+
1
,
calculator
->
inputContent
,
SUPPORT_DATA_BUFFER_MAX
);
...
...
@@ -727,7 +726,7 @@ int CheckWatchTriggerTimeout(void)
TriggerHeader
*
GetTriggerHeader
(
const
TriggerWorkSpace
*
workSpace
,
int
type
)
{
if
(
workSpace
==
NULL
||
type
>=
TRIGGER_MAX
)
{
if
(
workSpace
==
NULL
||
type
>=
TRIGGER_MAX
)
{
return
NULL
;
}
return
(
TriggerHeader
*
)
&
workSpace
->
triggerHead
[
type
];
...
...
test/plugintest/plugin_param_test.c
浏览文件 @
00a7a514
...
...
@@ -17,7 +17,6 @@
#include <time.h>
#include "plugin_test.h"
#include "init_param.h"
#include "init_plugin.h"
#define MAX_COUNT 1000
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录