#include "pit8254.h"
#include "inttypes.h"
+#include "util.h"
#define PIT_TIMER_INTR 8
#define DOS_TIMER_INTR 0x1c
static void INTERRUPT timer_irq();
-static unsigned long ticks;
+static volatile unsigned long ticks;
static unsigned long tick_interval, ticks_per_dos_intr;
static int inum;
return ticks * tick_interval;
}
+void sleep_msec(unsigned long msec)
+{
+ unsigned long wakeup_time = ticks + msec / tick_interval;
+ while(ticks < wakeup_time) {
+#ifdef USE_HLT
+ halt();
+#endif
+ }
+}
+
static void set_timer_reload(int reload_val)
{
outp(PORT_CMD, CMD_CHAN0 | CMD_ACCESS_BOTH | CMD_OP_SQWAVE);