diff options
| author | Jake Mannens <jake72360@gmail.com> | 2018-06-19 05:22:54 +1000 |
|---|---|---|
| committer | Jake Mannens <jake72360@gmail.com> | 2018-06-19 05:22:54 +1000 |
| commit | f6858b7333139441215e83e070e098bf09056762 (patch) | |
| tree | 65b7ad0680174bc5331a5db8505be4213e6cc736 /kernel/kmain.c | |
| parent | 627d2d0c0ee5147f53fdba8fc1f9108f8edeb8f3 (diff) | |
Added foundation code to initialize the PIT and create a 10ms jiffies
counter.
Diffstat (limited to 'kernel/kmain.c')
| -rw-r--r-- | kernel/kmain.c | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/kernel/kmain.c b/kernel/kmain.c index e31782c..5b10ee1 100644 --- a/kernel/kmain.c +++ b/kernel/kmain.c @@ -1,6 +1,16 @@ +#include <asm/io.h> #include <kernel/con.h> +#include <stdint.h> -extern int printf(char *fmt, ...); +uint32_t ticks = 0; + +#define millis() \ + (ticks * 10) + +void sleep(int ms) { + uint64_t t = millis() + ms; + while(millis() < t); +} void kmain(void) { con_init(); @@ -8,8 +18,10 @@ void kmain(void) { printf("Kernel booting...\n"); printf("Kernel booted!\n"); - printf("Number: %s %04x\n", "test", 0x18C); - printf("Number: %s %04X\n", "test", 0x18C); - printf("Number: %s %#04x\n", "test", 0x18C); - printf("Number: %s %#04X\n", "test", 0x18C); + printf("PIC1 Mask: 0x%02x\n", inb(0x21)); + + while(1) { + sleep(500); + printf("Reliable 500ms tick!\n"); + } } |
