From 03be5e6e920f241c0882bacbff25cc97dafbcc78 Mon Sep 17 00:00:00 2001 From: zhangfanfan2 Date: Tue, 11 May 2021 16:48:35 +0800 Subject: [PATCH] feature: Add sleep function --- kal/posix/src/time.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/kal/posix/src/time.c b/kal/posix/src/time.c index 4796740f..d897fad6 100644 --- a/kal/posix/src/time.c +++ b/kal/posix/src/time.c @@ -644,7 +644,17 @@ int settimeofday(const struct timeval *tv, const struct timezone *tz) int usleep(unsigned useconds) { struct timespec specTime = { 0 }; - UINT64 nanoseconds = useconds * OS_SYS_NS_PER_US; + UINT64 nanoseconds = (UINT64)useconds * OS_SYS_NS_PER_US; + + specTime.tv_sec = (time_t)(nanoseconds / OS_SYS_NS_PER_SECOND); + specTime.tv_nsec = (long)(nanoseconds % OS_SYS_NS_PER_SECOND); + return nanosleep(&specTime, NULL); +} + +unsigned sleep(unsigned seconds) +{ + struct timespec specTime = { 0 }; + UINT64 nanoseconds = (UINT64)seconds * OS_SYS_NS_PER_SECOND; specTime.tv_sec = (time_t)(nanoseconds / OS_SYS_NS_PER_SECOND); specTime.tv_nsec = (long)(nanoseconds % OS_SYS_NS_PER_SECOND);