mirror of
https://github.com/JannisHeydemann/BoredOS.git
synced 2026-05-30 02:16:58 +00:00
Replace busy-wait with time-based sleep in sweden.c
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
#include "cli_utils.h"
|
||||
#include "wm.h"
|
||||
|
||||
// Forward declarations - these will be provided by cmd.c
|
||||
extern void cmd_putchar(char c);
|
||||
@@ -78,3 +79,14 @@ void cli_delay(int iterations) {
|
||||
__asm__ __volatile__("nop");
|
||||
}
|
||||
}
|
||||
|
||||
void cli_sleep(int ms) {
|
||||
// Timer is ~60Hz, so 1 tick = 16.66ms
|
||||
uint32_t ticks = ms / 16;
|
||||
if (ticks == 0 && ms > 0) ticks = 1;
|
||||
|
||||
uint32_t target = wm_get_ticks() + ticks;
|
||||
while (wm_get_ticks() < target) {
|
||||
__asm__ __volatile__("hlt");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user