1 /*
2 * Copyright (C) 2022 Huawei Technologies Co., Ltd.
3 * Licensed under the Mulan PSL v2.
4 * You can use this software according to the terms and conditions of the Mulan PSL v2.
5 * You may obtain a copy of Mulan PSL v2 at:
6 * http://license.coscl.org.cn/MulanPSL2
7 * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR
8 * IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR
9 * PURPOSE.
10 * See the Mulan PSL v2 for more details.
11 */
12
13 #include "late_init_agent.h"
14 #include <errno.h>
15 #include <fcntl.h>
16 #include <sys/ioctl.h>
17 #include <sys/types.h>
18 #include <time.h>
19 #include <unistd.h>
20 #include "fs_work_agent.h"
21 #include "tc_ns_client.h"
22 #include "tee_log.h"
23
24 #ifdef LOG_TAG
25 #undef LOG_TAG
26 #endif
27 #define LOG_TAG "teecd_agent"
28
InitLateWorkThread(void * dummy)29 void *InitLateWorkThread(void *dummy)
30 {
31 (void)dummy;
32 unsigned int index = FS_LATE_INIT;
33
34 tlogd("now start to late init\n");
35
36 int fd = open(TC_PRIVATE_DEV_NAME, O_RDWR);
37 if (fd < 0) {
38 tloge("open tee client dev failed, fd is %d\n", fd);
39 return NULL;
40 }
41
42 int ret = ioctl(fd, (int)TC_NS_CLIENT_IOCTL_LATEINIT, index);
43 if (ret) {
44 tloge("failed to set late init, errno = %d\n", errno);
45 }
46
47 close(fd);
48 return NULL;
49 }
50