summaryrefslogtreecommitdiff
path: root/arch/i386/kernel/syscall.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/i386/kernel/syscall.c')
-rw-r--r--arch/i386/kernel/syscall.c27
1 files changed, 8 insertions, 19 deletions
diff --git a/arch/i386/kernel/syscall.c b/arch/i386/kernel/syscall.c
index 27e1c60..e8b69a2 100644
--- a/arch/i386/kernel/syscall.c
+++ b/arch/i386/kernel/syscall.c
@@ -1,33 +1,22 @@
#include <kernel/syscall.h>
#include <kernel/panic.h>
-#include <kernel/framebuffer.h>
-#include <kernel/keyboard.h>
-#include <kernel/string.h>
-#include <kernel/io.h>
+#include <libk/string.h>
+#include <libk/io.h>
#include <stddef.h>
-extern char *keyboard_buffer;
-extern uint32_t kbuf_pos;
-
-void sys_read(struct regs *regs) {
- if (regs->ebx == 1) {
- while (kbuf_pos > regs->edx);
- memcpy((char*)regs->ecx, keyboard_buffer, regs->edx);
- }
+void sys_read(struct isr_frame *frame) {
}
-void sys_write(struct regs *regs) {
- if (regs->ebx == 0)
- fb_write((char*)regs->ecx, regs->edx);
+void sys_write(struct isr_frame *frame) {
}
-int handle_syscall(struct regs *regs) {
- switch (regs->eax) {
+int handle_syscall(struct isr_frame *frame) {
+ switch (frame->eax) {
case SYS_READ:
- sys_read(regs);
+ sys_read(frame);
break;
case SYS_WRITE:
- sys_write(regs);
+ sys_write(frame);
break;
default:
panic("Invalid system call number");