summaryrefslogtreecommitdiff
path: root/kernel/kernel.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/kernel.c')
-rw-r--r--kernel/kernel.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/kernel/kernel.c b/kernel/kernel.c
index a6322f0..0b87b64 100644
--- a/kernel/kernel.c
+++ b/kernel/kernel.c
@@ -1,4 +1,5 @@
#define FOOLOS_MODULE_NAME "kernel"
+#include "config.h"
#include "lib/logger/log.h"
#include "lib/int/stdint.h"
@@ -6,12 +7,16 @@
#include "smp.h"
#include "time.h"
+#ifdef FOOLOS_COMPILE_FLOPPY
+#include "floppy.h"
+#endif
+
///////
// interrupt handler prototypes
// todo: move somewhere else!?
void int_clock_handler();
void int_kb_handler();
-void int_floppy_handler();
+
uint32_t read_eip();
uint32_t c1,c2,c3;
@@ -66,6 +71,11 @@ void kernel_main(uint32_t initial_stack, int mp)
dest[i]=source[i];
}
+
+
+ /////////////////// BULLSHIT ABOVE THIS LINE: TODO: CLEANUP
+
+
//
// We want to get output to the screen as fast as possible!
//
@@ -90,6 +100,9 @@ void kernel_main(uint32_t initial_stack, int mp)
uint32_t vesa_physbase=vesa_init(0x8300,0x8400,0x80000);
+ char *ramdisk=0x80400;
+ log(FOOLOS_MODULE_NAME,FOOLOS_LOG_INFO,"ramdisk: %s",ramdisk);
+
//
// Print initial address of the esp stack pointer
//
@@ -133,8 +146,10 @@ void kernel_main(uint32_t initial_stack, int mp)
// install keyboard interrupt handler (irq 1 => 33)
int_install_ir(33, 0b10001110, 0x08,&int_kb_handler);
+#ifdef FOOLOS_COMPILE_FLOPPY
// install floppy interrupt handler (irq 6 => 38)
int_install_ir(38, 0b10001110, 0x08,&int_floppy_handler);
+#endif
// now we can enable interrupts back again
x86_int_enable();
@@ -183,7 +198,9 @@ void kernel_main(uint32_t initial_stack, int mp)
// Initialize Floppy Disk
//
+ #ifdef FOOLOS_COMPILE_FLOPPY
floppy_init();
+ #endif
//