1 // SPDX-License-Identifier: BSD-2-Clause 2 /* 3 * Copyright (c) 2014, Linaro Limited 4 */ 5 6 #include <kernel/tee_time.h> 7 #include <kernel/mutex.h> 8 9 static TEE_Time prev; 10 11 static struct mutex time_mu = MUTEX_INITIALIZER; 12 tee_time_get_sys_time(TEE_Time * time)13TEE_Result tee_time_get_sys_time(TEE_Time *time) 14 { 15 TEE_Result res; 16 17 res = tee_time_get_ree_time(time); 18 if (res != TEE_SUCCESS) 19 return res; 20 21 mutex_lock(&time_mu); 22 if (time->seconds < prev.seconds || 23 (time->seconds == prev.seconds && 24 time->millis < prev.millis)) 25 *time = prev; /* REE time was rolled back */ 26 else 27 prev = *time; 28 mutex_unlock(&time_mu); 29 30 return res; 31 } 32 tee_time_get_sys_time_protection_level(void)33uint32_t tee_time_get_sys_time_protection_level(void) 34 { 35 return 100; 36 } 37