summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/posix/arch.cc17
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;