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 #ifndef LIBTEEC_MISC_WORK_AGENT_H
14 #define LIBTEEC_MISC_WORK_AGENT_H
15 
16 #include <stdint.h>
17 #include <stdio.h>
18 
19 #define WIDEVINE_NV_WVLOCK_SIZE   68
20 #define MISC_CONTROL_TIME_STR_LEN 30
21 
22 typedef enum {
23     SEC_NV_INFO, /* bootloaderlock status in nv partition */
24     SEC_GET_TIME,
25 } MiscCmdType;
26 
27 struct MiscControlType {
28     MiscCmdType cmd; /* for s to n */
29     int32_t ret;
30     int32_t magic;
31     union Args2 {
32         /* bootloader lock status in nv partition */
33         struct {
34             uint8_t bootloaderInfo[WIDEVINE_NV_WVLOCK_SIZE];
35         } NvInfo;
36         struct {
37             uint32_t seconds;
38             uint32_t millis;
39             char timeStr[MISC_CONTROL_TIME_STR_LEN];
40         } GetTime;
41     } Args;
42 };
43 
44 void *MiscWorkThread(void *control);
45 
46 #endif
47