Add support for catching system calls to native FreeBSD targets.

All platforms on FreeBSD use a shared system call table, so use a
single XML file to describe the system calls available on each FreeBSD
platform.

Recent versions of FreeBSD include the identifier of the current
system call when reporting a system call entry or exit event in the
ptrace_lwpinfo structure obtained via PT_LWPINFO in fbsd_wait.  As
such, FreeBSD native targets do not use the gdbarch method to fetch
the system call code.  In addition, FreeBSD register sets fetched via
ptrace do not include an equivalent of 'orig_rax' (on amd64 for
example), so the system call code cannot be extracted from the
available registers during a system call exit.  However, GDB assumes
that system call catch points are not supported if the gdbarch method
is not present.  As a workaround, FreeBSD ABIs install a dummy gdbarch
method that throws an internal_error if it is ever invoked.

gdb/ChangeLog:

	* configure.ac: Check for support for system call LWP fields on
	FreeBSD.
	* config.in, configure: Rebuild.
	* data-directory/Makefile.in (SYSCALLS_FILES): Add freebsd.xml.
	* fbsd-nat.c (fbsd_wait) [HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE]:
	Report system call events.
	[HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE]
	(fbsd_set_syscall_catchpoint): New function.
	(fbsd_nat_add_target) [HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE]:
	Set "to_set_syscall_catchpoint" to "fbsd_set_syscall_catchpoint".
	* fbsd-tdep.c: Include xml-syscall.h
	(fbsd_get_syscall_number): New function.
	(fbsd_init_abi): Set XML system call file name.
	Add "get_syscall_number" gdbarch method.
	* syscalls/freebsd.xml: New file.
This commit is contained in:
John Baldwin 2016-06-12 21:24:42 -07:00
parent 82372b2f27
commit e6cdd38e8f
8 changed files with 523 additions and 1 deletions

View File

@ -1,3 +1,21 @@
2016-06-24 John Baldwin <jhb@FreeBSD.org>
* configure.ac: Check for support for system call LWP fields on
FreeBSD.
* config.in, configure: Rebuild.
* data-directory/Makefile.in (SYSCALLS_FILES): Add freebsd.xml.
* fbsd-nat.c (fbsd_wait) [HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE]:
Report system call events.
[HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE]
(fbsd_set_syscall_catchpoint): New function.
(fbsd_nat_add_target) [HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE]:
Set "to_set_syscall_catchpoint" to "fbsd_set_syscall_catchpoint".
* fbsd-tdep.c: Include xml-syscall.h
(fbsd_get_syscall_number): New function.
(fbsd_init_abi): Set XML system call file name.
Add "get_syscall_number" gdbarch method.
* syscalls/freebsd.xml: New file.
2016-06-24 John Baldwin <jhb@FreeBSD.org>
* fbsd-tdep.c: Include "auxv.h".

View File

@ -456,6 +456,9 @@
/* Define to 1 if `struct ptrace_lwpinfo' is a member of `pl_tdname'. */
#undef HAVE_STRUCT_PTRACE_LWPINFO_PL_TDNAME
/* Define to 1 if `struct ptrace_lwpinfo' is a member of `pl_syscall_code'. */
#undef HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE
/* Define to 1 if your system has struct reg in <machine/reg.h>. */
#undef HAVE_STRUCT_REG

14
gdb/configure vendored
View File

@ -12927,6 +12927,20 @@ _ACEOF
fi
# See if <sys/ptrace.h> supports syscall fields on FreeBSD. The
# pl_syscall_code member of `struct ptrace_lwpinfo' was added in
# FreeBSD 10.3.
ac_fn_c_check_member "$LINENO" "struct ptrace_lwpinfo" "pl_syscall_code" "ac_cv_member_struct_ptrace_lwpinfo_pl_syscall_code" "#include <sys/ptrace.h>
"
if test "x$ac_cv_member_struct_ptrace_lwpinfo_pl_syscall_code" = x""yes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE 1
_ACEOF
fi
# Detect which type of /proc is in use, such as for Solaris.

View File

@ -1526,6 +1526,11 @@ fi
AC_CHECK_MEMBERS([struct ptrace_lwpinfo.pl_tdname], [], [],
[#include <sys/ptrace.h>])
# See if <sys/ptrace.h> supports syscall fields on FreeBSD. The
# pl_syscall_code member of `struct ptrace_lwpinfo' was added in
# FreeBSD 10.3.
AC_CHECK_MEMBERS([struct ptrace_lwpinfo.pl_syscall_code], [], [],
[#include <sys/ptrace.h>])
# Detect which type of /proc is in use, such as for Solaris.

View File

@ -51,7 +51,8 @@ SYSCALLS_FILES = \
i386-linux.xml amd64-linux.xml \
sparc-linux.xml sparc64-linux.xml \
mips-o32-linux.xml mips-n32-linux.xml mips-n64-linux.xml \
s390-linux.xml s390x-linux.xml
s390-linux.xml s390x-linux.xml \
freebsd.xml
PYTHON_DIR = python
PYTHON_INSTALL_DIR = $(DESTDIR)$(GDB_DATADIR)/$(PYTHON_DIR)

View File

@ -779,6 +779,40 @@ fbsd_wait (struct target_ops *ops,
return wptid;
}
#endif
/* Note that PL_FLAG_SCE is set for any event reported while
a thread is executing a system call in the kernel. In
particular, signals that interrupt a sleep in a system
call will report this flag as part of their event. Stops
explicitly for system call entry and exit always use
SIGTRAP, so only treat SIGTRAP events as system call
entry/exit events. */
if (pl.pl_flags & (PL_FLAG_SCE | PL_FLAG_SCX)
&& ourstatus->value.sig == SIGTRAP)
{
#ifdef HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE
if (catch_syscall_enabled ())
{
if (catching_syscall_number (pl.pl_syscall_code))
{
if (pl.pl_flags & PL_FLAG_SCE)
ourstatus->kind = TARGET_WAITKIND_SYSCALL_ENTRY;
else
ourstatus->kind = TARGET_WAITKIND_SYSCALL_RETURN;
ourstatus->value.syscall_number = pl.pl_syscall_code;
return wptid;
}
}
#endif
/* If the core isn't interested in this event, just
continue the process explicitly and wait for another
event. Note that PT_SYSCALL is "sticky" on FreeBSD
and once system call stops are enabled on a process
it stops for all system call entries and exits. */
if (ptrace (PT_CONTINUE, pid, (caddr_t) 1, 0) == -1)
perror_with_name (("ptrace"));
continue;
}
}
return wptid;
}
@ -889,6 +923,19 @@ fbsd_remove_exec_catchpoint (struct target_ops *self, int pid)
return 0;
}
#endif
#ifdef HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE
static int
fbsd_set_syscall_catchpoint (struct target_ops *self, int pid, int needed,
int any_count, int table_size, int *table)
{
/* Ignore the arguments. inf-ptrace.c will use PT_SYSCALL which
will catch all system call entries and exits. The system calls
are filtered by GDB rather than the kernel. */
return 0;
}
#endif
#endif
void
@ -925,6 +972,9 @@ fbsd_nat_add_target (struct target_ops *t)
t->to_insert_exec_catchpoint = fbsd_insert_exec_catchpoint;
t->to_remove_exec_catchpoint = fbsd_remove_exec_catchpoint;
#endif
#ifdef HAVE_STRUCT_PTRACE_LWPINFO_PL_SYSCALL_CODE
t->to_set_syscall_catchpoint = fbsd_set_syscall_catchpoint;
#endif
#endif
add_target (t);
}

View File

@ -24,6 +24,7 @@
#include "regcache.h"
#include "regset.h"
#include "gdbthread.h"
#include "xml-syscall.h"
#include "elf-bfd.h"
#include "fbsd-tdep.h"
@ -317,6 +318,22 @@ fbsd_print_auxv_entry (struct gdbarch *gdbarch, struct ui_file *file,
fprint_auxv_entry (file, name, description, format, type, val);
}
/* Implement the "get_syscall_number" gdbarch method. */
static LONGEST
fbsd_get_syscall_number (struct gdbarch *gdbarch,
ptid_t ptid)
{
/* FreeBSD doesn't use gdbarch_get_syscall_number since FreeBSD
native targets fetch the system call number from the
'pl_syscall_code' member of struct ptrace_lwpinfo in fbsd_wait.
However, system call catching requires this function to be
set. */
internal_error (__FILE__, __LINE__, _("fbsd_get_sycall_number called"));
}
/* To be called from GDB_OSABI_FREEBSD_ELF handlers. */
void
@ -326,4 +343,8 @@ fbsd_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
set_gdbarch_core_thread_name (gdbarch, fbsd_core_thread_name);
set_gdbarch_make_corefile_notes (gdbarch, fbsd_make_corefile_notes);
set_gdbarch_print_auxv_entry (gdbarch, fbsd_print_auxv_entry);
/* `catch syscall' */
set_xml_syscall_file_name (gdbarch, "syscalls/freebsd.xml");
set_gdbarch_get_syscall_number (gdbarch, fbsd_get_syscall_number);
}

410
gdb/syscalls/freebsd.xml Normal file
View File

@ -0,0 +1,410 @@
<?xml version="1.0"?>
<!-- Copyright (C) 2009-2016 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved. -->
<!DOCTYPE feature SYSTEM "gdb-syscalls.dtd">
<!-- This file was generated using the following file:
/usr/src/sys/sys/syscall.h
The file mentioned above belongs to the FreeBSD Kernel. -->
<syscalls_info>
<syscall name="syscall" number="0"/>
<syscall name="exit" number="1"/>
<syscall name="fork" number="2"/>
<syscall name="read" number="3"/>
<syscall name="write" number="4"/>
<syscall name="open" number="5"/>
<syscall name="close" number="6"/>
<syscall name="wait4" number="7"/>
<syscall name="link" number="9"/>
<syscall name="unlink" number="10"/>
<syscall name="chdir" number="12"/>
<syscall name="fchdir" number="13"/>
<syscall name="mknod" number="14"/>
<syscall name="chmod" number="15"/>
<syscall name="chown" number="16"/>
<syscall name="break" number="17"/>
<syscall name="getpid" number="20"/>
<syscall name="mount" number="21"/>
<syscall name="unmount" number="22"/>
<syscall name="setuid" number="23"/>
<syscall name="getuid" number="24"/>
<syscall name="geteuid" number="25"/>
<syscall name="ptrace" number="26"/>
<syscall name="recvmsg" number="27"/>
<syscall name="sendmsg" number="28"/>
<syscall name="recvfrom" number="29"/>
<syscall name="accept" number="30"/>
<syscall name="getpeername" number="31"/>
<syscall name="getsockname" number="32"/>
<syscall name="access" number="33"/>
<syscall name="chflags" number="34"/>
<syscall name="fchflags" number="35"/>
<syscall name="sync" number="36"/>
<syscall name="kill" number="37"/>
<syscall name="getppid" number="39"/>
<syscall name="dup" number="41"/>
<syscall name="pipe" number="42"/>
<syscall name="getegid" number="43"/>
<syscall name="profil" number="44"/>
<syscall name="ktrace" number="45"/>
<syscall name="getgid" number="47"/>
<syscall name="getlogin" number="49"/>
<syscall name="setlogin" number="50"/>
<syscall name="acct" number="51"/>
<syscall name="sigaltstack" number="53"/>
<syscall name="ioctl" number="54"/>
<syscall name="reboot" number="55"/>
<syscall name="revoke" number="56"/>
<syscall name="symlink" number="57"/>
<syscall name="readlink" number="58"/>
<syscall name="execve" number="59"/>
<syscall name="umask" number="60"/>
<syscall name="chroot" number="61"/>
<syscall name="msync" number="65"/>
<syscall name="vfork" number="66"/>
<syscall name="sbrk" number="69"/>
<syscall name="sstk" number="70"/>
<syscall name="vadvise" number="72"/>
<syscall name="munmap" number="73"/>
<syscall name="mprotect" number="74"/>
<syscall name="madvise" number="75"/>
<syscall name="mincore" number="78"/>
<syscall name="getgroups" number="79"/>
<syscall name="setgroups" number="80"/>
<syscall name="getpgrp" number="81"/>
<syscall name="setpgid" number="82"/>
<syscall name="setitimer" number="83"/>
<syscall name="swapon" number="85"/>
<syscall name="getitimer" number="86"/>
<syscall name="getdtablesize" number="89"/>
<syscall name="dup2" number="90"/>
<syscall name="fcntl" number="92"/>
<syscall name="select" number="93"/>
<syscall name="fsync" number="95"/>
<syscall name="setpriority" number="96"/>
<syscall name="socket" number="97"/>
<syscall name="connect" number="98"/>
<syscall name="getpriority" number="100"/>
<syscall name="bind" number="104"/>
<syscall name="setsockopt" number="105"/>
<syscall name="listen" number="106"/>
<syscall name="gettimeofday" number="116"/>
<syscall name="getrusage" number="117"/>
<syscall name="getsockopt" number="118"/>
<syscall name="readv" number="120"/>
<syscall name="writev" number="121"/>
<syscall name="settimeofday" number="122"/>
<syscall name="fchown" number="123"/>
<syscall name="fchmod" number="124"/>
<syscall name="setreuid" number="126"/>
<syscall name="setregid" number="127"/>
<syscall name="rename" number="128"/>
<syscall name="flock" number="131"/>
<syscall name="mkfifo" number="132"/>
<syscall name="sendto" number="133"/>
<syscall name="shutdown" number="134"/>
<syscall name="socketpair" number="135"/>
<syscall name="mkdir" number="136"/>
<syscall name="rmdir" number="137"/>
<syscall name="utimes" number="138"/>
<syscall name="adjtime" number="140"/>
<syscall name="setsid" number="147"/>
<syscall name="quotactl" number="148"/>
<syscall name="nlm_syscall" number="154"/>
<syscall name="nfssvc" number="155"/>
<syscall name="lgetfh" number="160"/>
<syscall name="getfh" number="161"/>
<syscall name="sysarch" number="165"/>
<syscall name="rtprio" number="166"/>
<syscall name="semsys" number="169"/>
<syscall name="msgsys" number="170"/>
<syscall name="shmsys" number="171"/>
<syscall name="setfib" number="175"/>
<syscall name="ntp_adjtime" number="176"/>
<syscall name="setgid" number="181"/>
<syscall name="setegid" number="182"/>
<syscall name="seteuid" number="183"/>
<syscall name="stat" number="188"/>
<syscall name="fstat" number="189"/>
<syscall name="lstat" number="190"/>
<syscall name="pathconf" number="191"/>
<syscall name="fpathconf" number="192"/>
<syscall name="getrlimit" number="194"/>
<syscall name="setrlimit" number="195"/>
<syscall name="getdirentries" number="196"/>
<syscall name="__syscall" number="198"/>
<syscall name="__sysctl" number="202"/>
<syscall name="mlock" number="203"/>
<syscall name="munlock" number="204"/>
<syscall name="undelete" number="205"/>
<syscall name="futimes" number="206"/>
<syscall name="getpgid" number="207"/>
<syscall name="poll" number="209"/>
<syscall name="freebsd7___semctl" number="220"/>
<syscall name="semget" number="221"/>
<syscall name="semop" number="222"/>
<syscall name="freebsd7_msgctl" number="224"/>
<syscall name="msgget" number="225"/>
<syscall name="msgsnd" number="226"/>
<syscall name="msgrcv" number="227"/>
<syscall name="shmat" number="228"/>
<syscall name="freebsd7_shmctl" number="229"/>
<syscall name="shmdt" number="230"/>
<syscall name="shmget" number="231"/>
<syscall name="clock_gettime" number="232"/>
<syscall name="clock_settime" number="233"/>
<syscall name="clock_getres" number="234"/>
<syscall name="ktimer_create" number="235"/>
<syscall name="ktimer_delete" number="236"/>
<syscall name="ktimer_settime" number="237"/>
<syscall name="ktimer_gettime" number="238"/>
<syscall name="ktimer_getoverrun" number="239"/>
<syscall name="nanosleep" number="240"/>
<syscall name="ffclock_getcounter" number="241"/>
<syscall name="ffclock_setestimate" number="242"/>
<syscall name="ffclock_getestimate" number="243"/>
<syscall name="clock_getcpuclockid2" number="247"/>
<syscall name="ntp_gettime" number="248"/>
<syscall name="minherit" number="250"/>
<syscall name="rfork" number="251"/>
<syscall name="openbsd_poll" number="252"/>
<syscall name="issetugid" number="253"/>
<syscall name="lchown" number="254"/>
<syscall name="aio_read" number="255"/>
<syscall name="aio_write" number="256"/>
<syscall name="lio_listio" number="257"/>
<syscall name="getdents" number="272"/>
<syscall name="lchmod" number="274"/>
<syscall name="netbsd_lchown" number="275"/>
<syscall name="lutimes" number="276"/>
<syscall name="netbsd_msync" number="277"/>
<syscall name="nstat" number="278"/>
<syscall name="nfstat" number="279"/>
<syscall name="nlstat" number="280"/>
<syscall name="preadv" number="289"/>
<syscall name="pwritev" number="290"/>
<syscall name="fhopen" number="298"/>
<syscall name="fhstat" number="299"/>
<syscall name="modnext" number="300"/>
<syscall name="modstat" number="301"/>
<syscall name="modfnext" number="302"/>
<syscall name="modfind" number="303"/>
<syscall name="kldload" number="304"/>
<syscall name="kldunload" number="305"/>
<syscall name="kldfind" number="306"/>
<syscall name="kldnext" number="307"/>
<syscall name="kldstat" number="308"/>
<syscall name="kldfirstmod" number="309"/>
<syscall name="getsid" number="310"/>
<syscall name="setresuid" number="311"/>
<syscall name="setresgid" number="312"/>
<syscall name="aio_return" number="314"/>
<syscall name="aio_suspend" number="315"/>
<syscall name="aio_cancel" number="316"/>
<syscall name="aio_error" number="317"/>
<syscall name="yield" number="321"/>
<syscall name="mlockall" number="324"/>
<syscall name="munlockall" number="325"/>
<syscall name="__getcwd" number="326"/>
<syscall name="sched_setparam" number="327"/>
<syscall name="sched_getparam" number="328"/>
<syscall name="sched_setscheduler" number="329"/>
<syscall name="sched_getscheduler" number="330"/>
<syscall name="sched_yield" number="331"/>
<syscall name="sched_get_priority_max" number="332"/>
<syscall name="sched_get_priority_min" number="333"/>
<syscall name="sched_rr_get_interval" number="334"/>
<syscall name="utrace" number="335"/>
<syscall name="kldsym" number="337"/>
<syscall name="jail" number="338"/>
<syscall name="nnpfs_syscall" number="339"/>
<syscall name="sigprocmask" number="340"/>
<syscall name="sigsuspend" number="341"/>
<syscall name="sigpending" number="343"/>
<syscall name="sigtimedwait" number="345"/>
<syscall name="sigwaitinfo" number="346"/>
<syscall name="__acl_get_file" number="347"/>
<syscall name="__acl_set_file" number="348"/>
<syscall name="__acl_get_fd" number="349"/>
<syscall name="__acl_set_fd" number="350"/>
<syscall name="__acl_delete_file" number="351"/>
<syscall name="__acl_delete_fd" number="352"/>
<syscall name="__acl_aclcheck_file" number="353"/>
<syscall name="__acl_aclcheck_fd" number="354"/>
<syscall name="extattrctl" number="355"/>
<syscall name="extattr_set_file" number="356"/>
<syscall name="extattr_get_file" number="357"/>
<syscall name="extattr_delete_file" number="358"/>
<syscall name="aio_waitcomplete" number="359"/>
<syscall name="getresuid" number="360"/>
<syscall name="getresgid" number="361"/>
<syscall name="kqueue" number="362"/>
<syscall name="kevent" number="363"/>
<syscall name="extattr_set_fd" number="371"/>
<syscall name="extattr_get_fd" number="372"/>
<syscall name="extattr_delete_fd" number="373"/>
<syscall name="__setugid" number="374"/>
<syscall name="eaccess" number="376"/>
<syscall name="afs3_syscall" number="377"/>
<syscall name="nmount" number="378"/>
<syscall name="__mac_get_proc" number="384"/>
<syscall name="__mac_set_proc" number="385"/>
<syscall name="__mac_get_fd" number="386"/>
<syscall name="__mac_get_file" number="387"/>
<syscall name="__mac_set_fd" number="388"/>
<syscall name="__mac_set_file" number="389"/>
<syscall name="kenv" number="390"/>
<syscall name="lchflags" number="391"/>
<syscall name="uuidgen" number="392"/>
<syscall name="sendfile" number="393"/>
<syscall name="mac_syscall" number="394"/>
<syscall name="getfsstat" number="395"/>
<syscall name="statfs" number="396"/>
<syscall name="fstatfs" number="397"/>
<syscall name="fhstatfs" number="398"/>
<syscall name="ksem_close" number="400"/>
<syscall name="ksem_post" number="401"/>
<syscall name="ksem_wait" number="402"/>
<syscall name="ksem_trywait" number="403"/>
<syscall name="ksem_init" number="404"/>
<syscall name="ksem_open" number="405"/>
<syscall name="ksem_unlink" number="406"/>
<syscall name="ksem_getvalue" number="407"/>
<syscall name="ksem_destroy" number="408"/>
<syscall name="__mac_get_pid" number="409"/>
<syscall name="__mac_get_link" number="410"/>
<syscall name="__mac_set_link" number="411"/>
<syscall name="extattr_set_link" number="412"/>
<syscall name="extattr_get_link" number="413"/>
<syscall name="extattr_delete_link" number="414"/>
<syscall name="__mac_execve" number="415"/>
<syscall name="sigaction" number="416"/>
<syscall name="sigreturn" number="417"/>
<syscall name="getcontext" number="421"/>
<syscall name="setcontext" number="422"/>
<syscall name="swapcontext" number="423"/>
<syscall name="swapoff" number="424"/>
<syscall name="__acl_get_link" number="425"/>
<syscall name="__acl_set_link" number="426"/>
<syscall name="__acl_delete_link" number="427"/>
<syscall name="__acl_aclcheck_link" number="428"/>
<syscall name="sigwait" number="429"/>
<syscall name="thr_create" number="430"/>
<syscall name="thr_exit" number="431"/>
<syscall name="thr_self" number="432"/>
<syscall name="thr_kill" number="433"/>
<syscall name="jail_attach" number="436"/>
<syscall name="extattr_list_fd" number="437"/>
<syscall name="extattr_list_file" number="438"/>
<syscall name="extattr_list_link" number="439"/>
<syscall name="ksem_timedwait" number="441"/>
<syscall name="thr_suspend" number="442"/>
<syscall name="thr_wake" number="443"/>
<syscall name="kldunloadf" number="444"/>
<syscall name="audit" number="445"/>
<syscall name="auditon" number="446"/>
<syscall name="getauid" number="447"/>
<syscall name="setauid" number="448"/>
<syscall name="getaudit" number="449"/>
<syscall name="setaudit" number="450"/>
<syscall name="getaudit_addr" number="451"/>
<syscall name="setaudit_addr" number="452"/>
<syscall name="auditctl" number="453"/>
<syscall name="_umtx_op" number="454"/>
<syscall name="thr_new" number="455"/>
<syscall name="sigqueue" number="456"/>
<syscall name="kmq_open" number="457"/>
<syscall name="kmq_setattr" number="458"/>
<syscall name="kmq_timedreceive" number="459"/>
<syscall name="kmq_timedsend" number="460"/>
<syscall name="kmq_notify" number="461"/>
<syscall name="kmq_unlink" number="462"/>
<syscall name="abort2" number="463"/>
<syscall name="thr_set_name" number="464"/>
<syscall name="aio_fsync" number="465"/>
<syscall name="rtprio_thread" number="466"/>
<syscall name="sctp_peeloff" number="471"/>
<syscall name="sctp_generic_sendmsg" number="472"/>
<syscall name="sctp_generic_sendmsg_iov" number="473"/>
<syscall name="sctp_generic_recvmsg" number="474"/>
<syscall name="pread" number="475"/>
<syscall name="pwrite" number="476"/>
<syscall name="mmap" number="477"/>
<syscall name="lseek" number="478"/>
<syscall name="truncate" number="479"/>
<syscall name="ftruncate" number="480"/>
<syscall name="thr_kill2" number="481"/>
<syscall name="shm_open" number="482"/>
<syscall name="shm_unlink" number="483"/>
<syscall name="cpuset" number="484"/>
<syscall name="cpuset_setid" number="485"/>
<syscall name="cpuset_getid" number="486"/>
<syscall name="cpuset_getaffinity" number="487"/>
<syscall name="cpuset_setaffinity" number="488"/>
<syscall name="faccessat" number="489"/>
<syscall name="fchmodat" number="490"/>
<syscall name="fchownat" number="491"/>
<syscall name="fexecve" number="492"/>
<syscall name="fstatat" number="493"/>
<syscall name="futimesat" number="494"/>
<syscall name="linkat" number="495"/>
<syscall name="mkdirat" number="496"/>
<syscall name="mkfifoat" number="497"/>
<syscall name="mknodat" number="498"/>
<syscall name="openat" number="499"/>
<syscall name="readlinkat" number="500"/>
<syscall name="renameat" number="501"/>
<syscall name="symlinkat" number="502"/>
<syscall name="unlinkat" number="503"/>
<syscall name="posix_openpt" number="504"/>
<syscall name="gssd_syscall" number="505"/>
<syscall name="jail_get" number="506"/>
<syscall name="jail_set" number="507"/>
<syscall name="jail_remove" number="508"/>
<syscall name="closefrom" number="509"/>
<syscall name="__semctl" number="510"/>
<syscall name="msgctl" number="511"/>
<syscall name="shmctl" number="512"/>
<syscall name="lpathconf" number="513"/>
<syscall name="__cap_rights_get" number="515"/>
<syscall name="cap_enter" number="516"/>
<syscall name="cap_getmode" number="517"/>
<syscall name="pdfork" number="518"/>
<syscall name="pdkill" number="519"/>
<syscall name="pdgetpid" number="520"/>
<syscall name="pselect" number="522"/>
<syscall name="getloginclass" number="523"/>
<syscall name="setloginclass" number="524"/>
<syscall name="rctl_get_racct" number="525"/>
<syscall name="rctl_get_rules" number="526"/>
<syscall name="rctl_get_limits" number="527"/>
<syscall name="rctl_add_rule" number="528"/>
<syscall name="rctl_remove_rule" number="529"/>
<syscall name="posix_fallocate" number="530"/>
<syscall name="posix_fadvise" number="531"/>
<syscall name="wait6" number="532"/>
<syscall name="cap_rights_limit" number="533"/>
<syscall name="cap_ioctls_limit" number="534"/>
<syscall name="cap_ioctls_get" number="535"/>
<syscall name="cap_fcntls_limit" number="536"/>
<syscall name="cap_fcntls_get" number="537"/>
<syscall name="bindat" number="538"/>
<syscall name="connectat" number="539"/>
<syscall name="chflagsat" number="540"/>
<syscall name="accept4" number="541"/>
<syscall name="pipe2" number="542"/>
<syscall name="aio_mlock" number="543"/>
<syscall name="procctl" number="544"/>
<syscall name="ppoll" number="545"/>
<syscall name="futimens" number="546"/>
<syscall name="utimensat" number="547"/>
<syscall name="numa_getaffinity" number="548"/>
<syscall name="numa_setaffinity" number="549"/>
</syscalls_info>