forked from Bananymous/banan-os
Kernel: IRQs are now working :)
This commit is contained in:
@@ -3,8 +3,12 @@
|
||||
#include <kernel/kmalloc.h>
|
||||
#include <kernel/multiboot.h>
|
||||
#include <kernel/panic.h>
|
||||
#include <kernel/PIC.h>
|
||||
#include <kernel/PIT.h>
|
||||
#include <kernel/PS2.h>
|
||||
#include <kernel/tty.h>
|
||||
#include <kernel/kprint.h>
|
||||
#include <kernel/IO.h>
|
||||
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
@@ -18,21 +22,30 @@ extern "C"
|
||||
void kernel_main(multiboot_info_t* mbi, uint32_t magic)
|
||||
{
|
||||
DISABLE_INTERRUPTS();
|
||||
|
||||
if (magic != 0x2BADB002)
|
||||
asm volatile("hlt");
|
||||
|
||||
s_multiboot_info = mbi;
|
||||
|
||||
if (magic != 0x2BADB002)
|
||||
goto halt;
|
||||
|
||||
terminal_initialize();
|
||||
|
||||
kmalloc_initialize();
|
||||
|
||||
PIC::initialize();
|
||||
gdt_initialize();
|
||||
idt_initialize();
|
||||
IDT::initialize();
|
||||
|
||||
PIT::initialize();
|
||||
PS2::initialize();
|
||||
|
||||
kprint("Hello from the kernel!\n");
|
||||
|
||||
asm volatile("int $14");
|
||||
ENABLE_INTERRUPTS();
|
||||
|
||||
halt:
|
||||
for (;;)
|
||||
{
|
||||
asm("hlt");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user