blob: ff1be8a089ecda8317ba5e30b46a55772238f2d1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#include "libc64/sleep.h"
#include "macros.h"
void csleep(OSTime t) {
OSMesgQueue mq;
OSMesg msg[1];
OSTimer timer;
osCreateMesgQueue(&mq, msg, ARRAY_COUNT(msg));
osSetTimer(&timer, t, 0, &mq, NULL);
osRecvMesg(&mq, NULL, OS_MESG_BLOCK);
}
void nsleep(u32 t) {
csleep(OS_NSEC_TO_CYCLES(t));
}
void usleep(u32 t) {
csleep(OS_USEC_TO_CYCLES(t));
}
void msleep(u32 t) {
csleep((t * OS_CPU_COUNTER) / 1000ULL);
}
void sleep(u32 t) {
csleep(t * OS_CPU_COUNTER);
}
|