binutils-gdb/gdb/syscalls/freebsd.xml
John Baldwin e6cdd38e8f 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.
2016-06-24 10:46:03 -07:00

411 lines
17 KiB
XML

<?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>