summaryrefslogtreecommitdiff
path: root/kernel/kmain.c
diff options
context:
space:
mode:
authorJake Mannens <jake72360@gmail.com>2018-06-19 05:22:54 +1000
committerJake Mannens <jake72360@gmail.com>2018-06-19 05:22:54 +1000
commitf6858b7333139441215e83e070e098bf09056762 (patch)
tree65b7ad0680174bc5331a5db8505be4213e6cc736 /kernel/kmain.c
parent627d2d0c0ee5147f53fdba8fc1f9108f8edeb8f3 (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.c22
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");
+ }
}