Skip to main content

aperture_shared/utils/
syscalls.rs

1//! Syscall name lookup utilities
2//!
3//! This module provides mappings from syscall numbers to names.
4//! Currently supports x86_64 Linux syscalls.
5
6/// Get the name of a syscall by its ID (x86_64)
7pub fn syscall_name(id: u32) -> &'static str {
8    match id {
9        0 => "read",
10        1 => "write",
11        2 => "open",
12        3 => "close",
13        4 => "stat",
14        5 => "fstat",
15        6 => "lstat",
16        7 => "poll",
17        8 => "lseek",
18        9 => "mmap",
19        10 => "mprotect",
20        11 => "munmap",
21        12 => "brk",
22        13 => "rt_sigaction",
23        14 => "rt_sigprocmask",
24        15 => "rt_sigreturn",
25        16 => "ioctl",
26        17 => "pread64",
27        18 => "pwrite64",
28        19 => "readv",
29        20 => "writev",
30        21 => "access",
31        22 => "pipe",
32        23 => "select",
33        24 => "sched_yield",
34        25 => "mremap",
35        26 => "msync",
36        27 => "mincore",
37        28 => "madvise",
38        29 => "shmget",
39        30 => "shmat",
40        31 => "shmctl",
41        32 => "dup",
42        33 => "dup2",
43        34 => "pause",
44        35 => "nanosleep",
45        36 => "getitimer",
46        37 => "alarm",
47        38 => "setitimer",
48        39 => "getpid",
49        40 => "sendfile",
50        41 => "socket",
51        42 => "connect",
52        43 => "accept",
53        44 => "sendto",
54        45 => "recvfrom",
55        46 => "sendmsg",
56        47 => "recvmsg",
57        48 => "shutdown",
58        49 => "bind",
59        50 => "listen",
60        51 => "getsockname",
61        52 => "getpeername",
62        53 => "socketpair",
63        54 => "setsockopt",
64        55 => "getsockopt",
65        56 => "clone",
66        57 => "fork",
67        58 => "vfork",
68        59 => "execve",
69        60 => "exit",
70        61 => "wait4",
71        62 => "kill",
72        63 => "uname",
73        64 => "semget",
74        65 => "semop",
75        66 => "semctl",
76        67 => "shmdt",
77        68 => "msgget",
78        69 => "msgsnd",
79        70 => "msgrcv",
80        71 => "msgctl",
81        72 => "fcntl",
82        73 => "flock",
83        74 => "fsync",
84        75 => "fdatasync",
85        76 => "truncate",
86        77 => "ftruncate",
87        78 => "getdents",
88        79 => "getcwd",
89        80 => "chdir",
90        81 => "fchdir",
91        82 => "rename",
92        83 => "mkdir",
93        84 => "rmdir",
94        85 => "creat",
95        86 => "link",
96        87 => "unlink",
97        88 => "symlink",
98        89 => "readlink",
99        90 => "chmod",
100        91 => "fchmod",
101        92 => "chown",
102        93 => "fchown",
103        94 => "lchown",
104        95 => "umask",
105        96 => "gettimeofday",
106        97 => "getrlimit",
107        98 => "getrusage",
108        99 => "sysinfo",
109        100 => "times",
110        101 => "ptrace",
111        102 => "getuid",
112        103 => "syslog",
113        104 => "getgid",
114        105 => "setuid",
115        106 => "setgid",
116        107 => "geteuid",
117        108 => "getegid",
118        109 => "setpgid",
119        110 => "getppid",
120        111 => "getpgrp",
121        112 => "setsid",
122        113 => "setreuid",
123        114 => "setregid",
124        115 => "getgroups",
125        116 => "setgroups",
126        117 => "setresuid",
127        118 => "getresuid",
128        119 => "setresgid",
129        120 => "getresgid",
130        121 => "getpgid",
131        122 => "setfsuid",
132        123 => "setfsgid",
133        124 => "getsid",
134        125 => "capget",
135        126 => "capset",
136        127 => "rt_sigpending",
137        128 => "rt_sigtimedwait",
138        129 => "rt_sigqueueinfo",
139        130 => "rt_sigsuspend",
140        131 => "sigaltstack",
141        132 => "utime",
142        133 => "mknod",
143        134 => "uselib",
144        135 => "personality",
145        136 => "ustat",
146        137 => "statfs",
147        138 => "fstatfs",
148        139 => "sysfs",
149        140 => "getpriority",
150        141 => "setpriority",
151        142 => "sched_setparam",
152        143 => "sched_getparam",
153        144 => "sched_setscheduler",
154        145 => "sched_getscheduler",
155        146 => "sched_get_priority_max",
156        147 => "sched_get_priority_min",
157        148 => "sched_rr_get_interval",
158        149 => "mlock",
159        150 => "munlock",
160        151 => "mlockall",
161        152 => "munlockall",
162        153 => "vhangup",
163        154 => "modify_ldt",
164        155 => "pivot_root",
165        156 => "_sysctl",
166        157 => "prctl",
167        158 => "arch_prctl",
168        159 => "adjtimex",
169        160 => "setrlimit",
170        161 => "chroot",
171        162 => "sync",
172        163 => "acct",
173        164 => "settimeofday",
174        165 => "mount",
175        166 => "umount2",
176        167 => "swapon",
177        168 => "swapoff",
178        169 => "reboot",
179        170 => "sethostname",
180        171 => "setdomainname",
181        172 => "iopl",
182        173 => "ioperm",
183        174 => "create_module",
184        175 => "init_module",
185        176 => "delete_module",
186        177 => "get_kernel_syms",
187        178 => "query_module",
188        179 => "quotactl",
189        180 => "nfsservctl",
190        181 => "getpmsg",
191        182 => "putpmsg",
192        183 => "afs_syscall",
193        184 => "tuxcall",
194        185 => "security",
195        186 => "gettid",
196        187 => "readahead",
197        188 => "setxattr",
198        189 => "lsetxattr",
199        190 => "fsetxattr",
200        191 => "getxattr",
201        192 => "lgetxattr",
202        193 => "fgetxattr",
203        194 => "listxattr",
204        195 => "llistxattr",
205        196 => "flistxattr",
206        197 => "removexattr",
207        198 => "lremovexattr",
208        199 => "fremovexattr",
209        200 => "tkill",
210        201 => "time",
211        202 => "futex",
212        203 => "sched_setaffinity",
213        204 => "sched_getaffinity",
214        205 => "set_thread_area",
215        206 => "io_setup",
216        207 => "io_destroy",
217        208 => "io_getevents",
218        209 => "io_submit",
219        210 => "io_cancel",
220        211 => "get_thread_area",
221        212 => "lookup_dcookie",
222        213 => "epoll_create",
223        214 => "epoll_ctl_old",
224        215 => "epoll_wait_old",
225        216 => "remap_file_pages",
226        217 => "getdents64",
227        218 => "set_tid_address",
228        219 => "restart_syscall",
229        220 => "semtimedop",
230        221 => "fadvise64",
231        222 => "timer_create",
232        223 => "timer_settime",
233        224 => "timer_gettime",
234        225 => "timer_getoverrun",
235        226 => "timer_delete",
236        227 => "clock_settime",
237        228 => "clock_gettime",
238        229 => "clock_getres",
239        230 => "clock_nanosleep",
240        231 => "exit_group",
241        232 => "epoll_wait",
242        233 => "epoll_ctl",
243        234 => "tgkill",
244        235 => "utimes",
245        236 => "vserver",
246        237 => "mbind",
247        238 => "set_mempolicy",
248        239 => "get_mempolicy",
249        240 => "mq_open",
250        241 => "mq_unlink",
251        242 => "mq_timedsend",
252        243 => "mq_timedreceive",
253        244 => "mq_notify",
254        245 => "mq_getsetattr",
255        246 => "kexec_load",
256        247 => "waitid",
257        248 => "add_key",
258        249 => "request_key",
259        250 => "keyctl",
260        251 => "ioprio_set",
261        252 => "ioprio_get",
262        253 => "inotify_init",
263        254 => "inotify_add_watch",
264        255 => "inotify_rm_watch",
265        256 => "migrate_pages",
266        257 => "openat",
267        258 => "mkdirat",
268        259 => "mknodat",
269        260 => "fchownat",
270        261 => "futimesat",
271        262 => "newfstatat",
272        263 => "unlinkat",
273        264 => "renameat",
274        265 => "linkat",
275        266 => "symlinkat",
276        267 => "readlinkat",
277        268 => "fchmodat",
278        269 => "faccessat",
279        270 => "pselect6",
280        271 => "ppoll",
281        272 => "unshare",
282        273 => "set_robust_list",
283        274 => "get_robust_list",
284        275 => "splice",
285        276 => "tee",
286        277 => "sync_file_range",
287        278 => "vmsplice",
288        279 => "move_pages",
289        280 => "utimensat",
290        281 => "epoll_pwait",
291        282 => "signalfd",
292        283 => "timerfd_create",
293        284 => "eventfd",
294        285 => "fallocate",
295        286 => "timerfd_settime",
296        287 => "timerfd_gettime",
297        288 => "accept4",
298        289 => "signalfd4",
299        290 => "eventfd2",
300        291 => "epoll_create1",
301        292 => "dup3",
302        293 => "pipe2",
303        294 => "inotify_init1",
304        295 => "preadv",
305        296 => "pwritev",
306        297 => "rt_tgsigqueueinfo",
307        298 => "perf_event_open",
308        299 => "recvmmsg",
309        300 => "fanotify_init",
310        301 => "fanotify_mark",
311        302 => "prlimit64",
312        303 => "name_to_handle_at",
313        304 => "open_by_handle_at",
314        305 => "clock_adjtime",
315        306 => "syncfs",
316        307 => "sendmmsg",
317        308 => "setns",
318        309 => "getcpu",
319        310 => "process_vm_readv",
320        311 => "process_vm_writev",
321        312 => "kcmp",
322        313 => "finit_module",
323        314 => "sched_setattr",
324        315 => "sched_getattr",
325        316 => "renameat2",
326        317 => "seccomp",
327        318 => "getrandom",
328        319 => "memfd_create",
329        320 => "kexec_file_load",
330        321 => "bpf",
331        322 => "execveat",
332        323 => "userfaultfd",
333        324 => "membarrier",
334        325 => "mlock2",
335        326 => "copy_file_range",
336        327 => "preadv2",
337        328 => "pwritev2",
338        329 => "pkey_mprotect",
339        330 => "pkey_alloc",
340        331 => "pkey_free",
341        332 => "statx",
342        333 => "io_pgetevents",
343        334 => "rseq",
344        424 => "pidfd_send_signal",
345        425 => "io_uring_setup",
346        426 => "io_uring_enter",
347        427 => "io_uring_register",
348        428 => "open_tree",
349        429 => "move_mount",
350        430 => "fsopen",
351        431 => "fsconfig",
352        432 => "fsmount",
353        433 => "fspick",
354        434 => "pidfd_open",
355        435 => "clone3",
356        436 => "close_range",
357        437 => "openat2",
358        438 => "pidfd_getfd",
359        439 => "faccessat2",
360        440 => "process_madvise",
361        441 => "epoll_pwait2",
362        442 => "mount_setattr",
363        443 => "quotactl_fd",
364        444 => "landlock_create_ruleset",
365        445 => "landlock_add_rule",
366        446 => "landlock_restrict_self",
367        447 => "memfd_secret",
368        448 => "process_mrelease",
369        449 => "futex_waitv",
370        450 => "set_mempolicy_home_node",
371        _ => "unknown",
372    }
373}