system_call.c

来自「一个用于学习的操作系统」· C语言 代码 · 共 52 行

C
52
字号
#include <fairysky/defs.h>#include <fairysky/types.h>#include <fairysky/kernel.h>#include <asm/system.h>#include <fairysky/string.h>#include <fairysky/scheduler.h>#include <fairysky/system_call.h>#include <fairysky/unistd.h>typedef int (*fun_system_call)();#ifdef WINDOWS_CYGWIN    #define SYSTEM_CALLS system_calls#else    #define SYSTEM_CALLS _system_calls#endif#define BEGIN_SYSTEM_CALLS \    fun_system_call SYSTEM_CALLS[] = {#define END_SYSTEM_CALLS \        NULL \    };#define SYSTEM_CALL(index, system_call) \    (fun_system_call)system_call,void sys_print_msg(char *msg){    printk("%s", msg);    return;}s32 sys_exit(){    return -1;}BEGIN_SYSTEM_CALLS    SYSTEM_CALL(0, sys_setup)    SYSTEM_CALL(1, sys_exit)    SYSTEM_CALL(2, sys_fork)    SYSTEM_CALL(3, sys_read)    SYSTEM_CALL(4, sys_write)    SYSTEM_CALL(5, sys_open)    SYSTEM_CALL(6, sys_close)    SYSTEM_CALL(7, sys_print_msg)    SYSTEM_CALL(8, sys_show_state)END_SYSTEM_CALLS

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?