summaryrefslogtreecommitdiff
path: root/core/tee/tee_time_generic.c
diff options
context:
space:
mode:
authorVictor Chong <victor.chong@linaro.org>2017-02-13 16:29:39 +0900
committerJerome Forissier <jerome.forissier@linaro.org>2017-02-23 11:26:37 +0100
commit889dbbbf502cf7455b62dc27920b55f9c0d4900f (patch)
treed5bc8ecc4f22eea719c18f95b437c7154badd05d /core/tee/tee_time_generic.c
parentc8f27bdecf2f145a2dfc081388273c18bd33376d (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.c20
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();
+}