This table is a reference of linux syscalls for the arm64 architecture and their compatibility status in gVisor. gVisor does not support all syscalls and some syscalls may have a partial implementation.
This page is automatically generated from the source code.
Of 293 syscalls, 237 syscalls have a full or partial implementation. There are currently 56 unsupported syscalls.
# | Name | Support | Notes |
---|---|---|---|
0 | io_setup | Partial Support | Generally supported with exceptions. User ring optimizations are not implemented. See: https://gvisor.dev/issue/204 |
1 | io_destroy | Partial Support | Generally supported with exceptions. User ring optimizations are not implemented. See: https://gvisor.dev/issue/204 |
2 | io_submit | Partial Support | Generally supported with exceptions. User ring optimizations are not implemented. See: https://gvisor.dev/issue/204 |
3 | io_cancel | Partial Support | Generally supported with exceptions. User ring optimizations are not implemented. See: https://gvisor.dev/issue/204 |
4 | io_getevents | Partial Support | Generally supported with exceptions. User ring optimizations are not implemented. See: https://gvisor.dev/issue/204 |
5 | setxattr | Full Support | Fully Supported. |
6 | lsetxattr | Full Support | Fully Supported. |
7 | fsetxattr | Full Support | Fully Supported. |
8 | getxattr | Full Support | Fully Supported. |
9 | lgetxattr | Full Support | Fully Supported. |
10 | fgetxattr | Full Support | Fully Supported. |
11 | listxattr | Full Support | Fully Supported. |
12 | llistxattr | Full Support | Fully Supported. |
13 | flistxattr | Full Support | Fully Supported. |
14 | removexattr | Full Support | Fully Supported. |
15 | lremovexattr | Full Support | Fully Supported. |
16 | fremovexattr | Full Support | Fully Supported. |
17 | getcwd | Full Support | Fully Supported. |
18 | lookup_dcookie | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_ADMIN; "invalid system call number" otherwise. |
19 | eventfd2 | Full Support | Fully Supported. |
20 | epoll_create1 | Full Support | Fully Supported. |
21 | epoll_ctl | Full Support | Fully Supported. |
22 | epoll_pwait | Full Support | Fully Supported. |
23 | dup | Full Support | Fully Supported. |
24 | dup3 | Full Support | Fully Supported. |
25 | fcntl | Full Support | Fully Supported. |
26 | inotify_init1 | Partial Support | inotify events are only available inside the sandbox. |
27 | inotify_add_watch | Partial Support | inotify events are only available inside the sandbox. |
28 | inotify_rm_watch | Partial Support | inotify events are only available inside the sandbox. |
29 | ioctl | Full Support | Fully Supported. |
30 | ioprio_set | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_ADMIN; "invalid system call number" otherwise. |
31 | ioprio_get | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_ADMIN; "invalid system call number" otherwise. |
32 | flock | Full Support | Fully Supported. |
33 | mknodat | Full Support | Fully Supported. |
34 | mkdirat | Full Support | Fully Supported. |
35 | unlinkat | Full Support | Fully Supported. |
36 | symlinkat | Full Support | Fully Supported. |
37 | linkat | Full Support | Fully Supported. |
38 | renameat | Full Support | Fully Supported. |
39 | umount2 | Full Support | Fully Supported. |
40 | mount | Full Support | Fully Supported. |
41 | pivot_root | Full Support | Fully Supported. |
42 | nfsservctl | Unimplemented | Removed after Linux 3.1.; Returns "invalid system call number". |
43 | statfs | Full Support | Fully Supported. |
44 | fstatfs | Full Support | Fully Supported. |
45 | truncate | Full Support | Fully Supported. |
46 | ftruncate | Full Support | Fully Supported. |
47 | fallocate | Partial Support | Not all options are supported. |
48 | faccessat | Full Support | Fully Supported. |
49 | chdir | Full Support | Fully Supported. |
50 | fchdir | Full Support | Fully Supported. |
51 | chroot | Full Support | Fully Supported. |
52 | fchmod | Full Support | Fully Supported. |
53 | fchmodat | Full Support | Fully Supported. |
54 | fchownat | Full Support | Fully Supported. |
55 | fchown | Full Support | Fully Supported. |
56 | openat | Full Support | Fully Supported. |
57 | close | Full Support | Fully Supported. |
58 | vhangup | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_TTY_CONFIG; "invalid system call number" otherwise. |
59 | pipe2 | Full Support | Fully Supported. |
60 | quotactl | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_ADMIN; "invalid system call number" otherwise. |
61 | getdents64 | Full Support | Fully Supported. |
62 | lseek | Full Support | Fully Supported. |
63 | read | Full Support | Fully Supported. |
64 | write | Full Support | Fully Supported. |
65 | readv | Full Support | Fully Supported. |
66 | writev | Full Support | Fully Supported. |
67 | pread64 | Full Support | Fully Supported. |
68 | pwrite64 | Full Support | Fully Supported. |
69 | preadv | Full Support | Fully Supported. |
70 | pwritev | Full Support | Fully Supported. |
71 | sendfile | Full Support | Fully Supported. |
72 | pselect6 | Full Support | Fully Supported. |
73 | ppoll | Full Support | Fully Supported. |
74 | signalfd4 | Full Support | Fully Supported. |
75 | vmsplice | Unimplemented | Returns "invalid system call number". See: https://gvisor.dev/issue/138 |
76 | splice | Full Support | Fully Supported. |
77 | tee | Full Support | Fully Supported. |
78 | readlinkat | Full Support | Fully Supported. |
79 | newfstatat | Full Support | Fully Supported. |
80 | fstat | Full Support | Fully Supported. |
81 | sync | Full Support | Fully Supported. |
82 | fsync | Full Support | Fully Supported. |
83 | fdatasync | Full Support | Fully Supported. |
84 | sync_file_range | Full Support | Fully Supported. |
85 | timerfd_create | Full Support | Fully Supported. |
86 | timerfd_settime | Full Support | Fully Supported. |
87 | timerfd_gettime | Full Support | Fully Supported. |
88 | utimensat | Full Support | Fully Supported. |
89 | acct | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_PACCT; "invalid system call number" otherwise. |
90 | capget | Full Support | Fully Supported. |
91 | capset | Full Support | Fully Supported. |
92 | personality | Unimplemented | Unable to change personality.; Returns "invalid argument". |
93 | exit | Full Support | Fully Supported. |
94 | exit_group | Full Support | Fully Supported. |
95 | waitid | Full Support | Fully Supported. |
96 | set_tid_address | Full Support | Fully Supported. |
97 | unshare | Partial Support | Mount, cgroup namespaces not supported. Network namespaces supported but must be empty. |
98 | futex | Partial Support | Robust futexes not supported. |
99 | set_robust_list | Full Support | Fully Supported. |
100 | get_robust_list | Full Support | Fully Supported. |
101 | nanosleep | Full Support | Fully Supported. |
102 | getitimer | Full Support | Fully Supported. |
103 | setitimer | Full Support | Fully Supported. |
104 | kexec_load | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_BOOT; "invalid system call number" otherwise. |
105 | init_module | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_MODULE; "invalid system call number" otherwise. |
106 | delete_module | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_MODULE; "invalid system call number" otherwise. |
107 | timer_create | Full Support | Fully Supported. |
108 | timer_gettime | Full Support | Fully Supported. |
109 | timer_getoverrun | Full Support | Fully Supported. |
110 | timer_settime | Full Support | Fully Supported. |
111 | timer_delete | Full Support | Fully Supported. |
112 | clock_settime | Full Support | Fully Supported. |
113 | clock_gettime | Full Support | Fully Supported. |
114 | clock_getres | Full Support | Fully Supported. |
115 | clock_nanosleep | Full Support | Fully Supported. |
116 | syslog | Partial Support | Outputs a dummy message for security reasons. |
117 | ptrace | Partial Support | Options PTRACE_PEEKSIGINFO, PTRACE_SECCOMP_GET_FILTER not supported. |
118 | sched_setparam | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_NICE; "invalid system call number" otherwise. |
119 | sched_setscheduler | Partial Support | Stub implementation. |
120 | sched_getscheduler | Partial Support | Stub implementation. |
121 | sched_getparam | Partial Support | Stub implementation. |
122 | sched_setaffinity | Partial Support | Stub implementation. |
123 | sched_getaffinity | Partial Support | Stub implementation. |
124 | sched_yield | Full Support | Fully Supported. |
125 | sched_get_priority_max | Partial Support | Stub implementation. |
126 | sched_get_priority_min | Partial Support | Stub implementation. |
127 | sched_rr_get_interval | Unimplemented | Returns "operation not permitted". |
128 | restart_syscall | Full Support | Fully Supported. |
129 | kill | Full Support | Fully Supported. |
130 | tkill | Full Support | Fully Supported. |
131 | tgkill | Full Support | Fully Supported. |
132 | sigaltstack | Full Support | Fully Supported. |
133 | rt_sigsuspend | Full Support | Fully Supported. |
134 | rt_sigaction | Full Support | Fully Supported. |
135 | rt_sigprocmask | Full Support | Fully Supported. |
136 | rt_sigpending | Full Support | Fully Supported. |
137 | rt_sigtimedwait | Full Support | Fully Supported. |
138 | rt_sigqueueinfo | Full Support | Fully Supported. |
139 | rt_sigreturn | Full Support | Fully Supported. |
140 | setpriority | Partial Support | Stub implementation. |
141 | getpriority | Partial Support | Stub implementation. |
142 | reboot | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_BOOT; "invalid system call number" otherwise. |
143 | setregid | Full Support | Fully Supported. |
144 | setgid | Full Support | Fully Supported. |
145 | setreuid | Full Support | Fully Supported. |
146 | setuid | Full Support | Fully Supported. |
147 | setresuid | Full Support | Fully Supported. |
148 | getresuid | Full Support | Fully Supported. |
149 | setresgid | Full Support | Fully Supported. |
150 | getresgid | Full Support | Fully Supported. |
151 | setfsuid | Unimplemented | Returns "invalid system call number". See: https://gvisor.dev/issue/260 |
152 | setfsgid | Unimplemented | Returns "invalid system call number". See: https://gvisor.dev/issue/260 |
153 | times | Full Support | Fully Supported. |
154 | setpgid | Full Support | Fully Supported. |
155 | getpgid | Full Support | Fully Supported. |
156 | getsid | Full Support | Fully Supported. |
157 | setsid | Full Support | Fully Supported. |
158 | getgroups | Full Support | Fully Supported. |
159 | setgroups | Full Support | Fully Supported. |
160 | uname | Full Support | Fully Supported. |
161 | sethostname | Full Support | Fully Supported. |
162 | setdomainname | Full Support | Fully Supported. |
163 | getrlimit | Full Support | Fully Supported. |
164 | setrlimit | Partial Support | Not all rlimits are enforced. |
165 | getrusage | Partial Support | Fields ru_maxrss, ru_minflt, ru_majflt, ru_inblock, ru_oublock are not supported. Fields ru_utime and ru_stime have low precision. |
166 | umask | Full Support | Fully Supported. |
167 | prctl | Partial Support | Not all options are supported. |
168 | getcpu | Full Support | Fully Supported. |
169 | gettimeofday | Full Support | Fully Supported. |
170 | settimeofday | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_TIME; "invalid system call number" otherwise. |
171 | adjtimex | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_TIME; "invalid system call number" otherwise. |
172 | getpid | Full Support | Fully Supported. |
173 | getppid | Full Support | Fully Supported. |
174 | getuid | Full Support | Fully Supported. |
175 | geteuid | Full Support | Fully Supported. |
176 | getgid | Full Support | Fully Supported. |
177 | getegid | Full Support | Fully Supported. |
178 | gettid | Full Support | Fully Supported. |
179 | sysinfo | Partial Support | Fields loads, sharedram, bufferram, totalswap, freeswap, totalhigh, freehigh not supported. |
180 | mq_open | Full Support | Fully Supported. |
181 | mq_unlink | Full Support | Fully Supported. |
182 | mq_timedsend | Unimplemented | Returns "invalid system call number". See: https://gvisor.dev/issue/136 |
183 | mq_timedreceive | Unimplemented | Returns "invalid system call number". See: https://gvisor.dev/issue/136 |
184 | mq_notify | Unimplemented | Returns "invalid system call number". See: https://gvisor.dev/issue/136 |
185 | mq_getsetattr | Unimplemented | Returns "invalid system call number". See: https://gvisor.dev/issue/136 |
186 | msgget | Full Support | Fully Supported. |
187 | msgctl | Full Support | Fully Supported. |
188 | msgrcv | Full Support | Fully Supported. |
189 | msgsnd | Full Support | Fully Supported. |
190 | semget | Full Support | Fully Supported. |
191 | semctl | Full Support | Fully Supported. |
192 | semtimedop | Full Support | Fully Supported. |
193 | semop | Partial Support | Option SEM_UNDO not supported. |
194 | shmget | Partial Support | Option SHM_HUGETLB is not supported. |
195 | shmctl | Partial Support | Options SHM_LOCK, SHM_UNLOCK are not supported. |
196 | shmat | Partial Support | Option SHM_RND is not supported. |
197 | shmdt | Full Support | Fully Supported. |
198 | socket | Full Support | Fully Supported. |
199 | socketpair | Full Support | Fully Supported. |
200 | bind | Full Support | Fully Supported. |
201 | listen | Full Support | Fully Supported. |
202 | accept | Full Support | Fully Supported. |
203 | connect | Full Support | Fully Supported. |
204 | getsockname | Full Support | Fully Supported. |
205 | getpeername | Full Support | Fully Supported. |
206 | sendto | Full Support | Fully Supported. |
207 | recvfrom | Full Support | Fully Supported. |
208 | setsockopt | Full Support | Fully Supported. |
209 | getsockopt | Full Support | Fully Supported. |
210 | shutdown | Full Support | Fully Supported. |
211 | sendmsg | Full Support | Fully Supported. |
212 | recvmsg | Full Support | Fully Supported. |
213 | readahead | Full Support | Fully Supported. |
214 | brk | Full Support | Fully Supported. |
215 | munmap | Full Support | Fully Supported. |
216 | mremap | Full Support | Fully Supported. |
217 | add_key | Unimplemented | Not available to user.; Returns "permission denied". |
218 | request_key | Unimplemented | Not available to user.; Returns "permission denied". |
219 | keyctl | Partial Support | Only supports session keyrings with zero keys in them. |
220 | clone | Partial Support | Options CLONE_PIDFD, CLONE_NEWCGROUP, CLONE_PARENT, CLONE_NEWTIME, CLONE_CLEAR_SIGHAND, and CLONE_SYSVSEM not supported. |
221 | execve | Full Support | Fully Supported. |
222 | mmap | Full Support | Fully Supported. |
223 | fadvise64 | Partial Support | Not all options are supported. |
224 | swapon | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_ADMIN; "invalid system call number" otherwise. |
225 | swapoff | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_ADMIN; "invalid system call number" otherwise. |
226 | mprotect | Full Support | Fully Supported. |
227 | msync | Partial Support | Full data flush is not guaranteed at this time. |
228 | mlock | Partial Support | Stub implementation. The sandbox lacks appropriate permissions. |
229 | munlock | Partial Support | Stub implementation. The sandbox lacks appropriate permissions. |
230 | mlockall | Partial Support | Stub implementation. The sandbox lacks appropriate permissions. |
231 | munlockall | Partial Support | Stub implementation. The sandbox lacks appropriate permissions. |
232 | mincore | Partial Support | Stub implementation. The sandbox does not have access to this information. Reports all mapped pages are resident. |
233 | madvise | Partial Support | Options MADV_DONTNEED, MADV_DONTFORK are supported. Other advice is ignored. |
234 | remap_file_pages | Unimplemented | Deprecated since Linux 3.16.; Returns "invalid system call number". |
235 | mbind | Partial Support | Stub implementation. Only a single NUMA node is advertised, and mempolicy is ignored accordingly, but mbind() will succeed and has effects reflected by get_mempolicy. See: https://gvisor.dev/issue/262 |
236 | get_mempolicy | Partial Support | Stub implementation. |
237 | set_mempolicy | Partial Support | Stub implementation. |
238 | migrate_pages | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_NICE; "invalid system call number" otherwise. |
239 | move_pages | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_NICE; "invalid system call number" otherwise. |
240 | rt_tgsigqueueinfo | Full Support | Fully Supported. |
241 | perf_event_open | Unimplemented | No support for perf counters; Returns "no such device". |
242 | accept4 | Full Support | Fully Supported. |
243 | recvmmsg | Full Support | Fully Supported. |
260 | wait4 | Full Support | Fully Supported. |
261 | prlimit64 | Full Support | Fully Supported. |
262 | fanotify_init | Unimplemented | Needs CONFIG_FANOTIFY; Returns "invalid system call number". |
263 | fanotify_mark | Unimplemented | Needs CONFIG_FANOTIFY; Returns "invalid system call number". |
264 | name_to_handle_at | Unimplemented | Not supported by gVisor filesystems; Returns "operation not supported on transport endpoint". |
265 | open_by_handle_at | Unimplemented | Not supported by gVisor filesystems; Returns "operation not supported on transport endpoint". |
266 | clock_adjtime | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_TIME; "invalid system call number" otherwise. |
267 | syncfs | Full Support | Fully Supported. |
268 | setns | Full Support | Fully Supported. |
269 | sendmmsg | Full Support | Fully Supported. |
270 | process_vm_readv | Full Support | Fully Supported. |
271 | process_vm_writev | Full Support | Fully Supported. |
272 | kcmp | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_PTRACE; "invalid system call number" otherwise. |
273 | finit_module | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_MODULE; "invalid system call number" otherwise. |
274 | sched_setattr | Unimplemented | gVisor does not implement a scheduler.; Returns "invalid system call number". See: https://gvisor.dev/issue/264 |
275 | sched_getattr | Unimplemented | gVisor does not implement a scheduler.; Returns "invalid system call number". See: https://gvisor.dev/issue/264 |
276 | renameat2 | Full Support | Fully Supported. |
277 | seccomp | Full Support | Fully Supported. |
278 | getrandom | Full Support | Fully Supported. |
279 | memfd_create | Full Support | Fully Supported. |
280 | bpf | Unimplemented | Returns "operation not permitted" if the process does not have CAP_SYS_ADMIN; "invalid system call number" otherwise. |
281 | execveat | Full Support | Fully Supported. |
282 | userfaultfd | Unimplemented | Returns "invalid system call number". See: https://gvisor.dev/issue/266 |
283 | membarrier | Partial Support | Not supported on all platforms. |
284 | mlock2 | Partial Support | Stub implementation. The sandbox lacks appropriate permissions. |
285 | copy_file_range | Unimplemented | Returns "invalid system call number". |
286 | preadv2 | Full Support | Fully Supported. |
287 | pwritev2 | Full Support | Fully Supported. |
288 | pkey_mprotect | Unimplemented | Returns "invalid system call number". |
289 | pkey_alloc | Unimplemented | Returns "invalid system call number". |
290 | pkey_free | Unimplemented | Returns "invalid system call number". |
291 | statx | Full Support | Fully Supported. |
292 | io_pgetevents | Unimplemented | Returns "invalid system call number". |
293 | rseq | Partial Support | Not supported on all platforms. |
424 | pidfd_send_signal | Unimplemented | Returns "invalid system call number". |
425 | io_uring_setup | Partial Support | Not all flags and functionality supported. |
426 | io_uring_enter | Partial Support | Not all flags and functionality supported. |
427 | io_uring_register | Unimplemented | Returns "invalid system call number". |
428 | open_tree | Unimplemented | Returns "invalid system call number". |
429 | move_mount | Unimplemented | Returns "invalid system call number". |
430 | fsopen | Unimplemented | Returns "invalid system call number". |
431 | fsconfig | Unimplemented | Returns "invalid system call number". |
432 | fsmount | Unimplemented | Returns "invalid system call number". |
433 | fspick | Unimplemented | Returns "invalid system call number". |
434 | pidfd_open | Unimplemented | Returns "invalid system call number". |
435 | clone3 | Partial Support | Options CLONE_PIDFD, CLONE_NEWCGROUP, CLONE_INTO_CGROUP, CLONE_NEWTIME, CLONE_CLEAR_SIGHAND, CLONE_PARENT, CLONE_SYSVSEM and clone_args.set_tid are not supported. |
436 | close_range | Full Support | Fully Supported. |
439 | faccessat2 | Full Support | Fully Supported. |
441 | epoll_pwait2 | Full Support | Fully Supported. |