...
This commit is contained in:
44
src/arch/x86_64/entry.c
Normal file
44
src/arch/x86_64/entry.c
Normal file
@@ -0,0 +1,44 @@
|
||||
#include "../../kernel.h"
|
||||
#include "../arch.h"
|
||||
#include "interrupts/idt.h"
|
||||
#include "interrupts/irq.h"
|
||||
#include "mmap.h"
|
||||
#include "multiboot.h"
|
||||
#include "util.h"
|
||||
#include "vga.h"
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
|
||||
void entry(uint32_t magic, multiboot_info_t* info)
|
||||
{
|
||||
if (magic != 0x2BADB002)
|
||||
{
|
||||
printf("Multiboot magic does not match");
|
||||
panic();
|
||||
}
|
||||
|
||||
if (info == NULL)
|
||||
{
|
||||
printf("Multiboot info is NULL");
|
||||
panic();
|
||||
}
|
||||
|
||||
vga_clear();
|
||||
idt_init();
|
||||
remap_pic();
|
||||
map_memory(info);
|
||||
enable_interrupts();
|
||||
main();
|
||||
}
|
||||
|
||||
void panic()
|
||||
{
|
||||
printf("Kernel panic!\n");
|
||||
disable_interrupts();
|
||||
halt();
|
||||
}
|
||||
|
||||
void put_char(char character)
|
||||
{
|
||||
vga_put_char(character, VGA_DEFAULT_COLOR);
|
||||
}
|
||||
Reference in New Issue
Block a user