1 #pragma once 2 3 #include <stdint.h> 4 5 // 系统调用号 6 #define SYS_NOT_EXISTS 0 7 #define SYS_PUT_STRING 1 8 #define SYS_OPEN 2 9 #define SYS_CLOSE 3 10 #define SYS_READ 4 11 #define SYS_WRITE 5 12 #define SYS_LSEEK 6 13 #define SYS_FORK 7 14 #define SYS_VFORK 8 15 #define SYS_BRK 9 16 #define SYS_SBRK 10 17 18 #define SYS_REBOOT 11 // 重启 19 #define SYS_CHDIR 12 // 切换工作目录 20 #define SYS_GET_DENTS 13 // 获取目录中的数据 21 #define SYS_EXECVE 14 // 执行新的应用程序 22 #define SYS_WAIT4 15 // 等待进程退出 23 #define SYS_EXIT 16 // 进程退出 24 #define SYS_MKDIR 17 // 创建文件夹 25 #define SYS_NANOSLEEP 18 // 纳秒级休眠 26 #define SYS_CLOCK 19 // 获取当前cpu时间 27 #define SYS_PIPE 20 28 29 #define SYS_MSTAT 21 // 获取系统的内存状态信息 30 #define SYS_UNLINK_AT 22 // 删除文件夹/删除文件链接 31 #define SYS_KILL 23 // kill一个进程(向这个进程发出信号) 32 #define SYS_SIGACTION 24 // 设置进程的信号处理动作 33 #define SYS_RT_SIGRETURN 25 // 从信号处理函数返回 34 35 /** 36 * @brief 用户态系统调用函数 37 * 38 * @param syscall_id 39 * @param arg0 40 * @param arg1 41 * @param arg2 42 * @param arg3 43 * @param arg4 44 * @param arg5 45 * @param arg6 46 * @param arg7 47 * @return long 48 */ 49 long syscall_invoke(uint64_t syscall_id, uint64_t arg0, uint64_t arg1, uint64_t arg2, uint64_t arg3, uint64_t arg4, 50 uint64_t arg5, uint64_t arg6, uint64_t arg7);