diff --git a/kernel/amd64/bootmain.c b/kernel/amd64/bootmain.c index ab54260..4d0f706 100644 --- a/kernel/amd64/bootmain.c +++ b/kernel/amd64/bootmain.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #define UACPI_MEMORY_BUFFER_MAX 4096 @@ -29,7 +30,7 @@ void bootmain (void) { for (size_t i = 0; i < 1000; i++) { DEBUG ("i=%zu\n", i); - amd64_hpet_sleep_micro (1000000); + sleep_micro (1000000); } for (;;) diff --git a/kernel/amd64/src.mk b/kernel/amd64/src.mk index 35fab8b..5e8e04a 100644 --- a/kernel/amd64/src.mk +++ b/kernel/amd64/src.mk @@ -8,7 +8,8 @@ c += amd64/bootmain.c \ amd64/apic.c \ amd64/msr.c \ amd64/hpet.c \ - amd64/mm.c + amd64/mm.c \ + amd64/time.c S += amd64/intr_stub.S \ amd64/spin.S @@ -25,4 +26,5 @@ o += amd64/bootmain.o \ amd64/apic.o \ amd64/msr.o \ amd64/hpet.o \ - amd64/mm.o + amd64/mm.o \ + amd64/time.o diff --git a/kernel/amd64/time.c b/kernel/amd64/time.c new file mode 100644 index 0000000..afe922a --- /dev/null +++ b/kernel/amd64/time.c @@ -0,0 +1,7 @@ +#include +#include +#include + +void sleep_micro (size_t us) { + amd64_hpet_sleep_micro (us); +} diff --git a/kernel/sys/time.h b/kernel/sys/time.h new file mode 100644 index 0000000..85cc074 --- /dev/null +++ b/kernel/sys/time.h @@ -0,0 +1,9 @@ +#ifndef _KERNEL_SYS_TIME_H +#define _KERNEL_SYS_TIME_H + +#include + +/* May take a timer peripheral lock! */ +void sleep_micro (size_t us); + +#endif // _KERNEL_SYS_TIME_H