summaryrefslogtreecommitdiff
path: root/src/boot/O2/sleep.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot/O2/sleep.c')
-rw-r--r--src/boot/O2/sleep.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/src/boot/O2/sleep.c b/src/boot/O2/sleep.c
new file mode 100644
index 000000000..a35abc5b2
--- /dev/null
+++ b/src/boot/O2/sleep.c
@@ -0,0 +1,27 @@
+#include "global.h"
+
+void Sleep_Cycles(u64 time) {
+ OSMesgQueue mq;
+ OSMesg msg[1];
+ OSTimer timer;
+
+ osCreateMesgQueue(&mq, msg, ARRAY_COUNT(msg));
+ osSetTimer(&timer, time, 0, &mq, NULL);
+ osRecvMesg(&mq, NULL, OS_MESG_BLOCK);
+}
+
+void Sleep_Nsec(u32 nsec) {
+ Sleep_Cycles(OS_NSEC_TO_CYCLES(nsec));
+}
+
+void Sleep_Usec(u32 usec) {
+ Sleep_Cycles(OS_USEC_TO_CYCLES(usec));
+}
+
+void Sleep_Msec(u32 ms) {
+ Sleep_Cycles((ms * OS_CPU_COUNTER) / 1000ULL);
+}
+
+void Sleep_Sec(u32 sec) {
+ Sleep_Cycles(sec * OS_CPU_COUNTER);
+}