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)59static inline struct timer_ops_t *get_time_ops(void) 60 { 61 return NULL; 62 } 63 #endif