Added stub syscall handler

This commit is contained in:
2020-07-18 18:55:26 -05:00
parent 15f6fc4bda
commit 2f98f59538
3 changed files with 17 additions and 3 deletions

View File

@@ -1,8 +1,12 @@
#include "../interrupts.hpp" #include "../interrupts.hpp"
#include "idt.hpp" #include "idt.hpp"
#include "inthandlers.hpp"
kernel::Interrupts::Interrupts() kernel::Interrupts::Interrupts()
{ {
idt[0] = InterruptDescriptor((void*) &divisionByZero, InterruptDescriptor::INT32, 0);
idt[8] = InterruptDescriptor((void*) &doubleFaultHandler, InterruptDescriptor::INT32, 0);
idt[0x80] = InterruptDescriptor((void*) &syscallHandler, InterruptDescriptor::INT32, 0);
// Load interrupt handlers // Load interrupt handlers
// Configure PIC // Configure PIC
_lidt(); _lidt();

View File

@@ -13,20 +13,27 @@ __attribute__ ((interrupt))
void gpFaultHandler(void* frame, unsigned int error) void gpFaultHandler(void* frame, unsigned int error)
{ {
*display = 'a'; *display = 'a';
asm("hlt"); display += 2;
} }
__attribute__ ((interrupt)) __attribute__ ((interrupt))
void pageFaultHandler(void* frame, unsigned int error) void pageFaultHandler(void* frame, unsigned int error)
{ {
*display = '0'; *display = '0';
//asm("hlt"); display += 2;
} }
__attribute__ ((interrupt)) __attribute__ ((interrupt))
void doubleFaultHandler(void* frame, unsigned int error) void doubleFaultHandler(void* frame, unsigned int error)
{ {
*display = '#'; *display = '#';
//asm("hlt"); asm("hlt");
}
__attribute__ ((interrupt))
void syscallHandler(void* frame)
{
*display = 'z';
display += 2;
} }

View File

@@ -13,4 +13,7 @@ void pageFaultHandler(void* frame, unsigned int error);
__attribute__ ((interrupt)) __attribute__ ((interrupt))
void doubleFaultHandler(void* frame, unsigned int error); void doubleFaultHandler(void* frame, unsigned int error);
__attribute__ ((interrupt))
void syscallHandler(void* frame);
#endif #endif