...
This commit is contained in:
@@ -19,7 +19,6 @@ extern memory_map_t memory_map;
|
|||||||
void arch_panic(const char* msg);
|
void arch_panic(const char* msg);
|
||||||
void arch_putchar(char c);
|
void arch_putchar(char c);
|
||||||
|
|
||||||
uintptr_t arch_kernel_base();
|
|
||||||
uintptr_t arch_page_size();
|
uintptr_t arch_page_size();
|
||||||
|
|
||||||
void arch_interrupts_enable();
|
void arch_interrupts_enable();
|
||||||
|
|||||||
@@ -2,9 +2,11 @@
|
|||||||
#include "console/console.h"
|
#include "console/console.h"
|
||||||
#include "interrupts/idt.h"
|
#include "interrupts/idt.h"
|
||||||
#include "interrupts/irq.h"
|
#include "interrupts/irq.h"
|
||||||
|
#include "interrupts/isr.h"
|
||||||
#include "kernel.h"
|
#include "kernel.h"
|
||||||
#include "memory/mmap.h"
|
#include "memory/mmap.h"
|
||||||
#include "multiboot.h"
|
#include "multiboot.h"
|
||||||
|
#include "x86_64/util.h"
|
||||||
|
|
||||||
void x86_64_main(uint32_t magic, multiboot_info_t* info)
|
void x86_64_main(uint32_t magic, multiboot_info_t* info)
|
||||||
{
|
{
|
||||||
@@ -27,19 +29,38 @@ void x86_64_main(uint32_t magic, multiboot_info_t* info)
|
|||||||
kernel_main();
|
kernel_main();
|
||||||
}
|
}
|
||||||
|
|
||||||
void arch_panic(const char* msg);
|
void arch_panic(const char* msg)
|
||||||
|
{
|
||||||
|
printf(msg);
|
||||||
|
arch_halt();
|
||||||
|
}
|
||||||
|
|
||||||
void arch_putchar(char c)
|
void arch_putchar(char c)
|
||||||
{
|
{
|
||||||
console_put_char(c, VGA_DEFAULT_COLOR);
|
console_put_char(c, VGA_DEFAULT_COLOR);
|
||||||
}
|
}
|
||||||
|
|
||||||
uintptr_t arch_kernel_base();
|
uintptr_t arch_page_size()
|
||||||
uintptr_t arch_page_size();
|
{
|
||||||
|
return 4096;
|
||||||
|
}
|
||||||
|
|
||||||
void arch_interrupts_enable();
|
void arch_interrupts_enable()
|
||||||
void arch_interrupts_disable();
|
{
|
||||||
|
enable_interrupts();
|
||||||
|
}
|
||||||
|
|
||||||
void arch_register_interrupt_handler(int vector, void (*handler)(void));
|
void arch_interrupts_disable()
|
||||||
|
{
|
||||||
|
disable_interrupts();
|
||||||
|
}
|
||||||
|
|
||||||
void arch_halt();
|
void arch_register_interrupt_handler(int vector, void (*handler)(void))
|
||||||
|
{
|
||||||
|
register_irq_handler(vector, (irq_handler_t)handler);
|
||||||
|
}
|
||||||
|
|
||||||
|
void arch_halt()
|
||||||
|
{
|
||||||
|
halt();
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include "../multiboot.h"
|
||||||
#include "arch.h"
|
#include "arch.h"
|
||||||
#include "x86_64/multiboot.h"
|
|
||||||
|
|
||||||
void map_memory(multiboot_info_t* mbd);
|
void map_memory(multiboot_info_t* mbd);
|
||||||
|
|||||||
Reference in New Issue
Block a user