summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/sys/arch/amd64/io/hpet.c7
-rw-r--r--src/sys/include/os/clkdev.h1
2 files changed, 8 insertions, 0 deletions
diff --git a/src/sys/arch/amd64/io/hpet.c b/src/sys/arch/amd64/io/hpet.c
index d733d9b..b6ae483 100644
--- a/src/sys/arch/amd64/io/hpet.c
+++ b/src/sys/arch/amd64/io/hpet.c
@@ -121,6 +121,12 @@ hpet_msleep(size_t ms)
return hpet_sleep(ms, 1000000000000);
}
+static int
+hpet_usleep(size_t us)
+{
+ return hpet_sleep(us, 1000000000);
+}
+
/*
* Get time since init in usec
*/
@@ -184,6 +190,7 @@ hpet_init(void)
clkdev.name = "IA-PC HPET";
clkdev.attr = CLKDEV_MSLEEP | CLKDEV_GET_USEC;
clkdev.msleep = hpet_msleep;
+ clkdev.usleep = hpet_usleep;
clkdev.get_time_usec = hpet_time_usec;
if (clkdev_register(&clkdev) < 0) {
printf("hpet_init: could not register clock device\n");
diff --git a/src/sys/include/os/clkdev.h b/src/sys/include/os/clkdev.h
index e70d91b..928a2c5 100644
--- a/src/sys/include/os/clkdev.h
+++ b/src/sys/include/os/clkdev.h
@@ -51,6 +51,7 @@
struct clkdev {
const char *name;
int(*msleep)(size_t ms);
+ int(*usleep)(size_t usec);
size_t(*get_time_usec)(void);
uint16_t attr;
};