Files
RockOS/kernel/syscall.c

27 lines
704 B
C
Raw Normal View History

2026-06-17 18:16:47 -05:00
#include <stdint.h>
#include "lib/print.h"
typedef struct registers {
uint32_t gs, fs, es, ds; // Pushed manually
uint32_t edi, esi, ebp, esp, ebx, edx, ecx, eax; // Pushed by pusha
uint32_t int_no, err_code; // Pushed manually
uint32_t eip, cs, eflags, useresp, ss; // Pushed automatically by CPU
} registers_t;
int32_t sys_vga_text_write(char* buf);
int32_t syscall(registers_t* regs) {
switch(regs->eax) {
case 1: {
return sys_vga_text_write((char*)regs->ebx);
}
default:
return -1;
}
}
int32_t sys_vga_text_write(char* buf) {
kprintf(buf);
return 0;
}