summaryrefslogtreecommitdiff
path: root/soh/src/code/sleep.c
blob: c637520e720ecb87b6d69d888d2fac49b4a73d63 (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 "global.h"

void Sleep_Cycles(OSTime cycles) {
    OSMesgQueue mq;
    OSMesg msg;
    OSTimer timer;

    osCreateMesgQueue(&mq, &msg, OS_MESG_BLOCK);
    osSetTimer(&timer, cycles, 0, &mq, OS_MESG_PTR(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));
}

// originally "msleep"
void Sleep_Msec(u32 ms) {
    Sleep_Cycles((ms * OS_CPU_COUNTER) / 1000ull);
}

void Sleep_Sec(u32 sec) {
    Sleep_Cycles(sec * OS_CPU_COUNTER);
}