parlib: Add a syscall lookup table (XCC)
[akaros.git] / kern / include / ros / bits / syscall.h
1 #pragma once
2
3 /* system call numbers.  need to #def them for use in assembly.  Removing
4  * useless ones is okay, but if we change a number, we'll need to rebuild
5  * userspace (which is why we have holes). */
6 #define SYS_null                                         1
7 #define SYS_block                                        2
8 #define SYS_cache_invalidate             3
9 #define SYS_reboot                                       4
10 /* was SYS_cputs                                         5 */
11 /* was SYS_cgetc                                         6 */
12 #define SYS_getpcoreid                           7
13 #define SYS_getvcoreid                           8
14 /* was #define SYS_getpid                        9 */
15 #define SYS_proc_create                         10
16 #define SYS_proc_run                            11
17 #define SYS_proc_destroy                        12
18 #define SYS_yield                                       13
19 #define SYS_change_vcore                        14
20 #define SYS_fork                                        15
21 #define SYS_exec                                        16
22 #define SYS_waitpid                                     17
23 #define SYS_mmap                                        18
24 #define SYS_munmap                                      19
25 #define SYS_mprotect                            20
26 /* was SYS_brk                                          21 */
27 #define SYS_shared_page_alloc           22
28 #define SYS_shared_page_free            23
29 #define SYS_provision                           24
30 #define SYS_notify                                      25
31 #define SYS_self_notify                         26
32 #define SYS_halt_core                           27
33 #define SYS_init_arsc                           28
34 #define SYS_change_to_m                         29
35 #define SYS_poke_ksched                         30
36 #define SYS_abort_sysc                          31
37 #define SYS_populate_va                         32
38 #define SYS_abort_sysc_fd                       33
39 #define SYS_vmm_setup                           34
40 #define SYS_vc_entry                            35
41 #define SYS_nanosleep                           36
42 #define SYS_pop_ctx                                     37
43 #define SYS_vmm_poke_guest                      38
44
45 /* FS Syscalls */
46 #define SYS_read                                100
47 #define SYS_write                               101
48 #define SYS_openat                              102
49 #define SYS_close                               103
50 #define SYS_fstat                               104
51 #define SYS_stat                                105
52 #define SYS_lstat                               106
53 #define SYS_fcntl                               107
54 #define SYS_access                              108
55 #define SYS_umask                               109
56 /* was SYS_chmod                                110 */
57 #define SYS_llseek                              111
58 #define SYS_link                                112
59 #define SYS_unlink                              113
60 #define SYS_symlink                             114
61 #define SYS_readlink                    115
62 #define SYS_chdir                               116
63 #define SYS_getcwd                              117
64 #define SYS_mkdir                               118
65 #define SYS_rmdir                               119
66 /* was SYS_pipe                         120 */
67
68 #define SYS_wstat                               121
69 #define SYS_fwstat                              122
70 #define SYS_rename                              123
71 #define SYS_fchdir                              124
72 #define SYS_dup_fds_to                  125
73 #define SYS_tap_fds                             126
74
75 /* Misc syscalls */
76 /* was #define SYS_gettimeofday 140 */
77 #define SYS_tcgetattr                   141
78 #define SYS_tcsetattr                   142
79 #define SYS_setuid                              143
80 #define SYS_setgid                              144
81
82 /* hotness! */
83 #define SYS_nbind                               145
84 #define SYS_nmount                              146
85 #define SYS_nunmount                    147
86 /* was SYS_something                    148 */
87 #define SYS_fd2path                             149
88
89 #define MAX_SYSCALL_NR                  200
90
91 // for system calls that pass filenames
92 #define MAX_PATH_LEN 256
93
94 /* wstat flags, so the kernel knows what M fields to look at */
95 #define WSTAT_MODE                              0x001
96 #define WSTAT_ATIME                             0x002
97 #define WSTAT_MTIME                             0x004
98 #define WSTAT_LENGTH                    0x008
99 #define WSTAT_NAME                              0x010
100 #define WSTAT_UID                               0x020
101 #define WSTAT_GID                               0x040
102 #define WSTAT_MUID                              0x080