summaryrefslogtreecommitdiff
path: root/kernel/kernel.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/kernel.c')
-rw-r--r--kernel/kernel.c56
1 files changed, 29 insertions, 27 deletions
diff --git a/kernel/kernel.c b/kernel/kernel.c
index fdb43ba..40c576a 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -4,6 +4,7 @@
#include "lib/int/stdint.h"
#include "lib/bool/bool.h"
#include "smp.h"
+#include "time.h"
///////
// interrupt handler prototypes
@@ -45,6 +46,8 @@ void kernel_main(uint32_t initial_stack, int mp)
proc=0;
+ task_system_clock=0;
+
// move the foolfont and aps code before it gets overwritten!
uint8_t *source=0x16600;
uint8_t *dest=0x80000;
@@ -109,6 +112,32 @@ void kernel_main(uint32_t initial_stack, int mp)
//
+ // Interrupts
+ //
+
+ // init and interrupt decriptor table
+ int_init(0x08);
+
+ // set default interrupts
+ int_install();
+
+ // setup some custom interrupts
+ // remember that we shifted all interrupts with the pic by 32
+
+ // install PIT interrupt handler (irq 0 => 32)
+ int_install_ir(32, 0b10001110, 0x08,&int_clock_handler);
+
+ // install keyboard interrupt handler (irq 1 => 33)
+ int_install_ir(33, 0b10001110, 0x08,&int_kb_handler);
+
+ // install floppy interrupt handler (irq 6 => 38)
+ //int_install_ir(38, 0b10001110, 0x08,&int_floppy_handler);
+
+ // now we can enable interrupts back again
+ x86_int_enable();
+
+
+ //
// Memory Init
//
@@ -151,33 +180,6 @@ void kernel_main(uint32_t initial_stack, int mp)
// paging (pass the vesa physbase address for identity mapping)
vmem_init(vesa_physbase);
-
-
- //
- // Interrupts
- //
-
- // init and interrupt decriptor table
- int_init(0x08);
-
- // set default interrupts
- int_install();
-
- // setup some custom interrupts
- // remember that we shifted all interrupts with the pic by 32
-
- // install PIT interrupt handler (irq 0 => 32)
- int_install_ir(32, 0b10001110, 0x08,&int_clock_handler);
-
- // install keyboard interrupt handler (irq 1 => 33)
- int_install_ir(33, 0b10001110, 0x08,&int_kb_handler);
-
- // install floppy interrupt handler (irq 6 => 38)
- //int_install_ir(38, 0b10001110, 0x08,&int_floppy_handler);
-
- // now we can enable interrupts back again
- x86_int_enable();
-
//////////////////////
//