diff --git a/src/arch/posix/arch.cc b/src/arch/posix/arch.cc index 98a3a08bf85397b125298bd7ea64e8c8edfd2c49..a2d78e93d997e2fb6edac0cd269fbf18f5f6eb07 100644 --- a/src/arch/posix/arch.cc +++ b/src/arch/posix/arch.cc @@ -1,4 +1,5 @@ #include "arch.h" +#include #include #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;