syscall test

This commit is contained in:
2025-11-26 08:24:31 +01:00
parent 3808f494af
commit da3f961edb
6 changed files with 51 additions and 28 deletions

View File

@@ -1,14 +1,14 @@
#include "syscall/handler.h"
#include "arch/core.h"
#include "arch/core_interrupt.h"
#include "arch/gdt.h"
#include "arch/idt.h"
#include "debug/kernelpanic.h"
#include "debug/output.h"
#include "interrupt/guard.h"
#include "syscall/skeleton.h"
#include "syscall/stub.h"
#include "../arch/core.h"
#include "../arch/core_interrupt.h"
#include "../arch/gdt.h"
#include "../arch/idt.h"
#include "../debug/kernelpanic.h"
#include "../debug/output.h"
#include "../interrupt/guard.h"
#include "../syscall/skeleton.h"
#include "../syscall/stub.h"
#include "types.h"
/*! \brief Interrupt based system call entry function
@@ -46,11 +46,22 @@ extern "C" size_t syscall_handler(size_t sysnum, size_t p1, size_t p2,
(void)p5;
(void)sysnum;
(void)user;
switch ((Syscall::ID)sysnum) {
case Syscall::ID::TEST:
Syscall::Skeleton::test(Guard::enter().vault(), p1, p2, p3, p4, p5);
break;
case Syscall::ID::WRITE:
break;
}
return static_cast<size_t>(-1);
}
void init() {
// Set interrupt based syscall handler
IDT::set(Core::Interrupt::Vector::SYSCALL, IDT::InterruptDescriptor::Returning(syscall_entry, 0, IDT::DPL_USER));
IDT::load();
}
} // namespace Syscall

View File

@@ -6,5 +6,7 @@
align 8
sys_call:
; BSB2 1 - Syscall stub
int 0x80
ret

View File

@@ -7,6 +7,7 @@ namespace Syscall {
*/
enum class ID : size_t {
TEST = 0,
WRITE = 1,
};
} // namespace Syscall