• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 #ifndef LIBTIMER_TIMER_ADAPT_H
13 #define LIBTIMER_TIMER_ADAPT_H
14 
15 #define SHIFT_32        32U
16 
17 typedef uint64_t (*timer_read_time_stamp)(void);
18 typedef void (*timer_get_sys_rtc_time)(TEE_Time *time);
19 typedef uint32_t (*timer_get_rtc_seconds)(void);
20 typedef uint32_t (*timer_sleep)(uint32_t msec);
21 typedef timer_event *(*timer_time_event_create)(sw_timer_event_handler handler, int32_t timer_class, void *priv_data);
22 typedef uint32_t (*timer_time_event_destroy)(timer_event *t_event);
23 typedef uint32_t (*timer_time_event_start)(timer_event *t_event, timeval_t *time);
24 typedef uint32_t (*timer_time_event_stop)(timer_event *t_event);
25 typedef uint64_t (*timer_time_event_get_expire)(timer_event *t_event);
26 typedef uint32_t (*timer_time_event_check)(timer_notify_data_kernel *timer_data);
27 typedef void (*timer_release_timer_event)(const TEE_UUID *uuid);
28 typedef int32_t (*timer_set_ta_timer_permission)(const TEE_UUID *uuid, uint64_t permission);
29 typedef uint32_t (*timer_adjust_sys_time)(const struct tee_time_t *time);
30 typedef int (*timer_tee_timer_init)(void);
31 typedef int (*timer_renew_hmtimer_job_handler)(void);
32 
33 struct timer_ops_t {
34     timer_read_time_stamp read_time_stamp;
35     timer_get_sys_rtc_time get_sys_rtc_time;
36     timer_get_rtc_seconds get_rtc_seconds;
37     timer_sleep sleep;
38     timer_time_event_create time_event_create;
39     timer_time_event_destroy time_event_destroy;
40     timer_time_event_start time_event_start;
41     timer_time_event_stop time_event_stop;
42     timer_time_event_get_expire time_event_get_expire;
43     timer_time_event_check time_event_check;
44     timer_release_timer_event release_timer_event;
45     timer_set_ta_timer_permission set_ta_timer_permission;
46     timer_adjust_sys_time adjust_sys_time;
47     timer_tee_timer_init tee_timer_init;
48     timer_renew_hmtimer_job_handler renew_hmtimer_job_handler;
49 };
50 
51 struct timer_event_private_data {
52     uint32_t dev_id;
53     TEE_UUID uuid;
54     uint32_t session_id;
55     uint32_t type;
56     uint32_t expire_time;
57 };
58 
get_time_ops(void)59 static inline struct timer_ops_t *get_time_ops(void)
60 {
61     return NULL;
62 }
63 #endif