39#include <sys/syscall.h>
53 { 0,
"restart_syscall" },
112 { 59,
"oldolduname" },
125 { 72,
"sigsuspend" },
126 { 73,
"sigpending" },
127 { 74,
"sethostname" },
131 { 78,
"gettimeofday" },
132 { 79,
"settimeofday" },
149 { 96,
"getpriority" },
155 { 102,
"socketcall" },
157 { 104,
"setitimer" },
158 { 105,
"getitimer" },
172 { 119,
"sigreturn" },
174 { 121,
"setdomainname" },
176 { 123,
"modify_ldt" },
179 { 126,
"sigprocmask" },
180 { 127,
"create_module" },
181 { 128,
"init_module" },
182 { 129,
"delete_module" },
183 { 130,
"get_kernel_syms" },
189 { 136,
"personality" },
190 { 137,
"afs_syscall" },
194#if defined(SYS_getdents)
195 { 141,
"getdents", getdentsFunc },
199 { 142,
"_newselect" },
205 { 148,
"fdatasync" },
210 { 153,
"munlockall" },
211 { 154,
"sched_setparam" },
213 { 156,
"sched_setscheduler" },
214 { 157,
"sched_getscheduler" },
216 { 159,
"sched_get_priority_max" },
217 { 160,
"sched_get_priority_min" },
218 { 161,
"sched_rr_get_interval" },
222 { 165,
"getresuid" },
224 { 167,
"query_module" },
226 { 169,
"nfsservctl" },
227 { 170,
"setresgid" },
228 { 171,
"getresgid" },
230 { 173,
"rt_sigreturn" },
233 { 176,
"rt_sigpending" },
234 { 177,
"rt_sigtimedwait" },
235 { 178,
"rt_sigqueueinfo" },
236 { 179,
"rt_sigsuspend" },
243 { 186,
"sigaltstack" },
260 { 203,
"setreuid32" },
261 { 204,
"setregid32" },
262 { 205,
"getgroups32" },
263 { 206,
"setgroups32" },
265 { 208,
"setresuid32" },
266 { 209,
"getresuid32" },
267 { 210,
"setresgid32" },
268 { 211,
"getresgid32" },
272 { 215,
"setfsuid32" },
273 { 216,
"setfsgid32" },
274 { 217,
"pivot_root" },
278#if defined(SYS_getdents64)
279 { 221,
"getdents64", getdents64Func },
281 { 221,
"getdents64" },
286 { 225,
"readahead" },
288 { 227,
"lsetxattr" },
289 { 228,
"fsetxattr" },
291 { 230,
"lgetxattr" },
292 { 231,
"fgetxattr" },
293 { 232,
"listxattr" },
294 { 233,
"llistxattr" },
295 { 234,
"flistxattr" },
296 { 235,
"removexattr" },
297 { 236,
"lremovexattr" },
298 { 237,
"fremovexattr" },
300 { 239,
"sendfile64" },
305 { 244,
"get_thread_area" },
307 { 246,
"io_destroy" },
308 { 247,
"io_getevents" },
309 { 248,
"io_submit" },
310 { 249,
"io_cancel" },
311 { 250,
"fadvise64" },
314 { 253,
"lookup_dcookie" },
315 { 254,
"epoll_create" },
316 { 255,
"epoll_ctl" },
317 { 256,
"epoll_wait" },
318 { 257,
"remap_file_pages" },
320 { 259,
"timer_create" },
321 { 260,
"timer_settime" },
322 { 261,
"timer_gettime" },
323 { 262,
"timer_getoverrun" },
324 { 263,
"timer_delete" },
325 { 264,
"clock_settime" },
327 { 266,
"clock_getres" },
328 { 267,
"clock_nanosleep" },
330 { 269,
"fstatfs64" },
333 { 272,
"fadvise64_64" },
337 { 276,
"set_mempolicy" },
339 { 278,
"mq_unlink" },
340 { 279,
"mq_timedsend" },
341 { 280,
"mq_timedreceive" },
342 { 281,
"mq_notify" },
343 { 282,
"mq_getsetattr" },
344 { 283,
"kexec_load" },
346 { 285,
"sys_setaltroot" },
348 { 287,
"request_key" },
350 { 289,
"ioprio_set" },
351 { 290,
"ioprio_get" },
352 { 291,
"inotify_init" },
353 { 292,
"inotify_add_watch" },
354 { 293,
"inotify_rm_watch" },
355 { 294,
"migrate_pages" },
360 { 299,
"futimesat" },
361 { 300,
"fstatat64" },
365 { 304,
"symlinkat" },
368 { 307,
"faccessat" },
375 { 314,
"sync_file_range" },
378 { 317,
"move_pages" },
380 { 319,
"epoll_pwait" },
381 { 320,
"utimensat" },
static SyscallDescTable< SyscallABI32 > syscallDescs32
This is exposed globally, independent of the ISA.
SyscallReturn unameFunc(SyscallDesc *desc, ThreadContext *tc, VPtr< Linux::utsname > name)
Target uname() handler.
SyscallReturn setThreadArea32Func(SyscallDesc *desc, ThreadContext *tc, VPtr< UserDesc32 > userDesc)
Copyright (c) 2024 Arm Limited All rights reserved.
SyscallReturn gettidFunc(SyscallDesc *desc, ThreadContext *tc)
Target gettid() handler.
SyscallReturn getrandomFunc(SyscallDesc *desc, ThreadContext *tc, VPtr<> buf_ptr, typename OS::size_t count, unsigned int flags)
SyscallReturn fstat64Func(SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr< typename OS::tgt_stat64 > tgt_stat)
Target fstat64() handler.
SyscallReturn wait4Func(SyscallDesc *desc, ThreadContext *tc, pid_t pid, VPtr<> statPtr, int options, VPtr<> rusagePtr)
SyscallReturn clock_gettimeFunc(SyscallDesc *desc, ThreadContext *tc, int clk_id, VPtr< typename OS::timespec > tp)
Target clock_gettime() function.
SyscallReturn brkFunc(SyscallDesc *desc, ThreadContext *tc, VPtr<> new_brk)
Target brk() handler: set brk address.
SyscallReturn getpidFunc(SyscallDesc *desc, ThreadContext *tc)
Target getpid() handler.
SyscallReturn chdirFunc(SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname)
Target chdir() handler.
SyscallReturn truncate64Func(SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, int64_t length)
Target truncate64() handler.
SyscallReturn getuidFunc(SyscallDesc *desc, ThreadContext *tc)
SyscallReturn pwrite64Func(SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr<> bufPtr, typename OS::size_t nbytes, typename OS::off_t offset)
SyscallReturn getrusageFunc(SyscallDesc *desc, ThreadContext *tc, int who, VPtr< typename OS::rusage > rup)
Target getrusage() function.
SyscallReturn cloneFunc(SyscallDesc *desc, ThreadContext *tc, RegVal flags, RegVal newStack, VPtr<> ptidPtr, VPtr<> ctidPtr, VPtr<> tlsPtr)
SyscallReturn selectFunc(SyscallDesc *desc, ThreadContext *tc, int nfds, VPtr< typename OS::fd_set > readfds, VPtr< typename OS::fd_set > writefds, VPtr< typename OS::fd_set > errorfds, VPtr< typename OS::timeval > timeout)
SyscallReturn _llseekFunc(SyscallDesc *desc, ThreadContext *tc, int tgt_fd, uint32_t offset_high, uint32_t offset_low, VPtr<> result_ptr, int whence)
Target _llseek() handler.
SyscallReturn writeFunc(SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr<> buf_ptr, typename OS::size_t nbytes)
SyscallReturn writevFunc(SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr<> tiov_base, typename OS::size_t count)
Target writev() handler.
SyscallReturn mknodFunc(SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, mode_t mode, dev_t dev)
Target mknod() handler.
SyscallReturn setpgidFunc(SyscallDesc *desc, ThreadContext *tc, int pid, int pgid)
Target setpgid() handler.
SyscallReturn truncateFunc(SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, typename OS::off_t length)
Target truncate() handler.
SyscallReturn geteuidFunc(SyscallDesc *desc, ThreadContext *tc)
Target geteuid() handler.
SyscallReturn lseekFunc(SyscallDesc *desc, ThreadContext *tc, int tgt_fd, typename OS::off_t offs, int whence)
Target lseek() handler.
SyscallReturn sysinfoFunc(SyscallDesc *desc, ThreadContext *tc, VPtr< typename OS::tgt_sysinfo > sysinfo)
Target sysinfo() handler.
SyscallReturn pipeFunc(SyscallDesc *desc, ThreadContext *tc, VPtr<> tgt_addr)
Target pipe() handler.
SyscallReturn getrlimitFunc(SyscallDesc *desc, ThreadContext *tc, unsigned resource, VPtr< typename OS::rlimit > rlp)
Target getrlimit() handler.
SyscallReturn ftruncateFunc(SyscallDesc *desc, ThreadContext *tc, int tgt_fd, typename OS::off_t length)
Target ftruncate() handler.
SyscallReturn mkdirFunc(SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, mode_t mode)
Target mkdir() handler.
SyscallReturn readlinkatFunc(SyscallDesc *desc, ThreadContext *tc, int dirfd, VPtr<> pathname, VPtr<> buf_ptr, typename OS::size_t bufsiz)
Target readlinkat() handler.
SyscallReturn eventfdFunc(SyscallDesc *desc, ThreadContext *tc, unsigned initval, int in_flags)
Target eventfd() function.
SyscallReturn dupFunc(SyscallDesc *desc, ThreadContext *tc, int tgt_fd)
FIXME: The file description is not shared among file descriptors created with dup.
SyscallReturn readvFunc(SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr<> tiov_base, typename OS::size_t count)
Target readv() handler.
SyscallReturn ftruncate64Func(SyscallDesc *desc, ThreadContext *tc, int tgt_fd, int64_t length)
Target ftruncate64() handler.
SyscallReturn getcwdFunc(SyscallDesc *desc, ThreadContext *tc, VPtr<> buf_ptr, typename OS::size_t size)
Target getcwd() handler.
SyscallReturn openatFunc(SyscallDesc *desc, ThreadContext *tc, int tgt_dirfd, VPtr<> pathname, int tgt_flags, int mode)
Target open() handler.
SyscallReturn munmapFunc(SyscallDesc *desc, ThreadContext *tc, VPtr<> start, typename OS::size_t length)
Target munmap() handler.
SyscallReturn readlinkFunc(SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, VPtr<> buf_ptr, typename OS::size_t bufsiz)
Target readlink() handler.
SyscallReturn pread64Func(SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr<> bufPtr, typename OS::size_t nbytes, typename OS::off_t offset)
SyscallReturn setTidAddressFunc(SyscallDesc *desc, ThreadContext *tc, VPtr<> tidPtr)
Target set_tid_address() handler.
SyscallReturn timesFunc(SyscallDesc *desc, ThreadContext *tc, VPtr< typename OS::tms > bufp)
Target times() function.
SyscallReturn fcntlFunc(SyscallDesc *desc, ThreadContext *tc, int tgt_fd, int cmd, guest_abi::VarArgs< int > varargs)
Target fcntl() handler.
SyscallReturn openFunc(SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, int tgt_flags, int mode)
Target open() handler.
SyscallReturn pollFunc(SyscallDesc *desc, ThreadContext *tc, VPtr<> fdsPtr, int nfds, int tmout)
SyscallReturn getegidFunc(SyscallDesc *desc, ThreadContext *tc)
Target getegid() handler.
SyscallReturn timeFunc(SyscallDesc *desc, ThreadContext *tc, VPtr<> taddr)
Target time() function.
SyscallReturn getcpuFunc(SyscallDesc *desc, ThreadContext *tc, VPtr< uint32_t > cpu, VPtr< uint32_t > node, VPtr< uint32_t > tcache)
SyscallReturn ioctlFunc(SyscallDesc *desc, ThreadContext *tc, int tgt_fd, unsigned req, VPtr<> addr)
Target ioctl() handler.
SyscallReturn tgkillFunc(SyscallDesc *desc, ThreadContext *tc, int tgid, int tid, int sig)
SyscallReturn ignoreFunc(SyscallDesc *desc, ThreadContext *tc)
Handler for unimplemented syscalls that we never intend to implement (signal handling,...
SyscallReturn stat64Func(SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, VPtr< typename OS::tgt_stat64 > tgt_stat)
Target stat64() handler.
SyscallReturn execveFunc(SyscallDesc *desc, ThreadContext *tc, VPtr<> pathname, VPtr<> argv_mem_loc, VPtr<> envp_mem_loc)
SyscallReturn sched_getparamFunc(SyscallDesc *desc, ThreadContext *tc, int pid, VPtr< int > paramPtr)
SyscallReturn exitFunc(SyscallDesc *desc, ThreadContext *tc, int status)
Target exit() handler: terminate current context.
SyscallReturn dup2Func(SyscallDesc *desc, ThreadContext *tc, int old_tgt_fd, int new_tgt_fd)
Target dup2() handler.
SyscallReturn getgidFunc(SyscallDesc *desc, ThreadContext *tc)
Target getgid() handler.
SyscallReturn readFunc(SyscallDesc *desc, ThreadContext *tc, int tgt_fd, VPtr<> buf_ptr, typename OS::size_t nbytes)
SyscallReturn closeFunc(SyscallDesc *desc, ThreadContext *tc, int tgt_fd)
Target close() handler.
SyscallReturn umaskFunc(SyscallDesc *desc, ThreadContext *tc)
Target umask() handler.
SyscallReturn mmap2Func(SyscallDesc *desc, ThreadContext *tc, VPtr<> start, typename OS::size_t length, int prot, int tgt_flags, int tgt_fd, typename OS::off_t offset)
Target mmap2() handler.
This file defines objects used to emulate syscalls from the target application on the host machine.