1 #pragma once
2 /**
3  * 请注意!!!由于系统调用模块已经使用Rust重构,当修改系统调用号时,需要同时修改syscall_num.hsyscall/mod.rs中的系统调用号
4  * 并且以syscall/mod.rs中的为准!!!
5  *
6  * TODO:在完成系统的重构后,删除syscall_num.h
7  *
8  */
9 
10 #define SYS_NOT_EXISTS 0
11 #define SYS_PUT_STRING 1
12 #define SYS_OPEN 2
13 #define SYS_CLOSE 3
14 #define SYS_READ 4
15 #define SYS_WRITE 5
16 #define SYS_LSEEK 6
17 #define SYS_FORK 7
18 #define SYS_VFORK 8
19 #define SYS_BRK 9
20 #define SYS_SBRK 10
21 
22 #define SYS_REBOOT 11    // 重启
23 #define SYS_CHDIR 12     // 切换工作目录
24 #define SYS_GET_DENTS 13 // 获取目录中的数据
25 #define SYS_EXECVE 14    // 执行新的应用程序
26 #define SYS_WAIT4 15     // 等待进程退出
27 #define SYS_EXIT 16      // 进程退出
28 #define SYS_MKDIR 17     // 创建文件夹
29 #define SYS_NANOSLEEP 18 // 纳秒级休眠
30 #define SYS_CLOCK 19     // 获取当前cpu时间
31 #define SYS_PIPE 20      // 创建管道
32 
33 #define SYS_UNLINK_AT 22    // 删除文件夹/删除文件链接
34 #define SYS_KILL 23         // kill一个进程(向这个进程发出信号)
35 #define SYS_SIGACTION 24    // 设置进程的信号处理动作
36 #define SYS_RT_SIGRETURN 25 // 从信号处理函数返回
37 #define SYS_GETPID 26       // 获取当前进程的pid(进程标识符)
38 #define SYS_SCHED 27        // 让系统立即运行调度器(该系统调用不能由运行在Ring3的程序发起)
39 #define SYS_DUP 28
40 #define SYS_DUP2 29
41 #define SYS_SOCKET 30 // 创建一个socket
42 
43 #define SYS_SETSOCKOPT 31  // 设置socket的选项
44 #define SYS_GETSOCKOPT 32  // 获取socket的选项
45 #define SYS_CONNECT 33     // 连接到一个socket
46 #define SYS_BIND 34        // 绑定一个socket
47 #define SYS_SENDTO 35      // 向一个socket发送数据
48 #define SYS_RECVFROM 36    // 从一个socket接收数据
49 #define SYS_RECVMSG 37     // 从一个socket接收消息
50 #define SYS_LISTEN 38      // 监听一个socket
51 #define SYS_SHUTDOWN 39    // 关闭socket
52 #define SYS_ACCEPT 40      // 接受一个socket连接
53 
54 #define SYS_GETSOCKNAME 41   // 获取socket的名字
55 #define SYS_GETPEERNAME 42   // 获取socket的对端名字
56 #define SYS_GETTIMEOFDAY 43 // 获取当前时间
57 #define SYS_MMAP 44         // 内存映射
58 #define SYS_MUNMAP 45       // 内存解除映射
59 #define SYS_MPROTECT 46     // 内存保护
60 
61 #define SYS_FSTAT 47        // 根据文件描述符获取文件信息
62 
63