diff options
-rw-r--r-- | src/arch/posix/arch.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/arch/posix/arch.cc b/src/arch/posix/arch.cc index 98a3a08..a2d78e9 100644 --- a/src/arch/posix/arch.cc +++ b/src/arch/posix/arch.cc @@ -1,4 +1,5 @@ #include "arch.h" +#include <time.h> #include <unistd.h> #if defined(WITH_LOOP) || defined(TIMER_S) @@ -31,4 +32,20 @@ void Arch::idle(void) { } +void Arch::delay_us(unsigned int const us) +{ + struct timespec ts; + ts.tv_sec = 0; + ts.tv_nsec = us * 1000; + nanosleep(&ts, NULL); +} + +void Arch::delay_ms(unsigned int const ms) +{ + struct timespec ts; + ts.tv_sec = ms / 1000; + ts.tv_nsec = (ms % 1000) * 1000000; + nanosleep(&ts, NULL); +} + Arch arch; |