diff options
author | Victor Chong <victor.chong@linaro.org> | 2017-02-13 16:29:39 +0900 |
---|---|---|
committer | Jerome Forissier <jerome.forissier@linaro.org> | 2017-02-23 11:26:37 +0100 |
commit | 889dbbbf502cf7455b62dc27920b55f9c0d4900f (patch) | |
tree | d5bc8ecc4f22eea719c18f95b437c7154badd05d /core/tee/tee_time_generic.c | |
parent | c8f27bdecf2f145a2dfc081388273c18bd33376d (diff) |
core: Add tee_time_busy_wait()
Signed-off-by: Victor Chong <victor.chong@linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Etienne Carriere <etienne.carriere@linaro.org>
[jf: rebase on top of master]
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Diffstat (limited to 'core/tee/tee_time_generic.c')
-rw-r--r-- | core/tee/tee_time_generic.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/core/tee/tee_time_generic.c b/core/tee/tee_time_generic.c index 54180a40..0b983b04 100644 --- a/core/tee/tee_time_generic.c +++ b/core/tee/tee_time_generic.c @@ -25,11 +25,12 @@ * POSSIBILITY OF SUCH DAMAGE. */ +#include <kernel/panic.h> +#include <kernel/tee_time.h> #include <string.h> #include <stdlib.h> #include <trace.h> #include <utee_defines.h> -#include <kernel/tee_time.h> struct tee_ta_time_offs { TEE_UUID uuid; @@ -139,3 +140,20 @@ TEE_Result tee_time_set_ta_time(const TEE_UUID *uuid, const TEE_Time *time) return tee_time_ta_set_offs(uuid, &offs, false); } } + +void tee_time_busy_wait(uint32_t milliseconds_delay) +{ + TEE_Time curr; + TEE_Time delta; + TEE_Time end; + + if (tee_time_get_sys_time(&curr) != TEE_SUCCESS) + panic(); + delta.seconds = milliseconds_delay / 1000; + delta.millis = milliseconds_delay % 1000; + TEE_TIME_ADD(curr, delta, end); + + while (TEE_TIME_LT(curr, end)) + if (tee_time_get_sys_time(&curr) != TEE_SUCCESS) + panic(); +} |