This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH]: Add sparc catch syscall support.
- From: Mark Kettenis <mark dot kettenis at xs4all dot nl>
- To: davem at davemloft dot net
- Cc: gdb-patches at sourceware dot org
- Date: Wed, 24 Feb 2010 16:02:00 +0100 (CET)
- Subject: Re: [PATCH]: Add sparc catch syscall support.
- References: <20100224.064923.50041816.davem@davemloft.net>
> Date: Wed, 24 Feb 2010 06:49:23 -0800 (PST)
> From: David Miller <davem@davemloft.net>
>
> Ok to commit?
Looks reasonable to me.
> 2010-02-24 David S. Miller <davem@davemloft.net>
>
> * gdb_ptrace.h (PT_SYSCALL): If PTRACE_SYSCALL is available, use it.
> * syscalls/sparc-linux.xml: New.
> * syscalls/sparc64-linux.xml: New.
> * Makefile.in (XML_SYSCALL_FILES): Add new syscall XML files.
> * sparc-linux-tdep.c (XML_SYSCALL_FILENAME_SPARC32): Define.
> (sparc32_linux_get_syscall_number): New function.
> (sparc32_linux_init_abi): Set syscall XML file name and hook up
> syscall number fetcher.
> * sparc64-linux-tdep.c (XML_SYSCALL_FILENAME_SPARC64): Define.
> (sparc64_linux_get_syscall_number): New function.
> (sparc64_linux_init_abi): Set syscall XML file name and hook up
> syscall number fetcher.
> ---
> gdb/Makefile.in | 3 +-
> gdb/gdb_ptrace.h | 6 +-
> gdb/sparc-linux-tdep.c | 30 ++++
> gdb/sparc64-linux-tdep.c | 30 ++++
> gdb/syscalls/sparc-linux.xml | 344 ++++++++++++++++++++++++++++++++++++++++
> gdb/syscalls/sparc64-linux.xml | 326 +++++++++++++++++++++++++++++++++++++
> 6 files changed, 737 insertions(+), 2 deletions(-)
> create mode 100644 gdb/syscalls/sparc-linux.xml
> create mode 100644 gdb/syscalls/sparc64-linux.xml
>
> diff --git a/gdb/Makefile.in b/gdb/Makefile.in
> index 98f42b9..8e68bb1 100644
> --- a/gdb/Makefile.in
> +++ b/gdb/Makefile.in
> @@ -845,7 +845,8 @@ COMMON_OBS = $(DEPFILES) $(CONFIG_OBS) $(YYOBJ) \
> XML_SYSCALLS_DIR = syscalls/
> XML_SYSCALLS_FILES = gdb-syscalls.dtd \
> ppc-linux.xml ppc64-linux.xml \
> - i386-linux.xml amd64-linux.xml
> + i386-linux.xml amd64-linux.xml \
> + sparc-linux.xml sparc64-linux.xml
>
> TSOBS = inflow.o
>
> diff --git a/gdb/gdb_ptrace.h b/gdb/gdb_ptrace.h
> index 71b448f..8ee8c4e 100644
> --- a/gdb/gdb_ptrace.h
> +++ b/gdb/gdb_ptrace.h
> @@ -115,7 +115,11 @@
> and there is probably no special request that we would be required
> to use when resuming the execution of our program. */
> #ifndef PT_SYSCALL
> -# define PT_SYSCALL PT_CONTINUE
> +# ifdef PTRACE_SYSCALL
> +# define PT_SYSCALL PTRACE_SYSCALL
> +#else
> +# define PT_SYSCALL PT_CONTINUE
> +# endif
> #endif
>
> /* Some systems, in particular DEC OSF/1, Digital Unix, Compaq Tru64
> diff --git a/gdb/sparc-linux-tdep.c b/gdb/sparc-linux-tdep.c
> index d65db6c..20644b4 100644
> --- a/gdb/sparc-linux-tdep.c
> +++ b/gdb/sparc-linux-tdep.c
> @@ -32,6 +32,10 @@
> #include "symtab.h"
> #include "trad-frame.h"
> #include "tramp-frame.h"
> +#include "xml-syscall.h"
> +
> +/* The syscall's XML filename for sparc 32-bit. */
> +#define XML_SYSCALL_FILENAME_SPARC32 "syscalls/sparc-linux.xml"
>
> #include "sparc-tdep.h"
>
> @@ -241,6 +245,27 @@ sparc_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
> regcache_cooked_write_unsigned (regcache, SPARC32_PSR_REGNUM, psr);
> }
>
> +static LONGEST
> +sparc32_linux_get_syscall_number (struct gdbarch *gdbarch,
> + ptid_t ptid)
> +{
> + struct regcache *regcache = get_thread_regcache (ptid);
> + enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> + /* The content of a register. */
> + gdb_byte buf[4];
> + /* The result. */
> + LONGEST ret;
> +
> + /* Getting the system call number from the register.
> + When dealing with the sparc architecture, this information
> + is stored at the %g1 register. */
> + regcache_cooked_read (regcache, SPARC_G1_REGNUM, buf);
> +
> + ret = extract_signed_integer (buf, 4, byte_order);
> +
> + return ret;
> +}
> +
>
>
> static void
> @@ -279,6 +304,11 @@ sparc32_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
> dwarf2_append_unwinders (gdbarch);
>
> set_gdbarch_write_pc (gdbarch, sparc_linux_write_pc);
> +
> + /* Functions for 'catch syscall'. */
> + set_xml_syscall_file_name (XML_SYSCALL_FILENAME_SPARC32);
> + set_gdbarch_get_syscall_number (gdbarch,
> + sparc32_linux_get_syscall_number);
> }
>
> /* Provide a prototype to silence -Wmissing-prototypes. */
> diff --git a/gdb/sparc64-linux-tdep.c b/gdb/sparc64-linux-tdep.c
> index 8b7e908..72bbb32 100644
> --- a/gdb/sparc64-linux-tdep.c
> +++ b/gdb/sparc64-linux-tdep.c
> @@ -31,6 +31,10 @@
> #include "symtab.h"
> #include "trad-frame.h"
> #include "tramp-frame.h"
> +#include "xml-syscall.h"
> +
> +/* The syscall's XML filename for sparc 64-bit. */
> +#define XML_SYSCALL_FILENAME_SPARC64 "syscalls/sparc64-linux.xml"
>
> #include "sparc64-tdep.h"
>
> @@ -205,6 +209,27 @@ sparc64_linux_write_pc (struct regcache *regcache, CORE_ADDR pc)
> regcache_cooked_write_unsigned (regcache, SPARC64_STATE_REGNUM, state);
> }
>
> +static LONGEST
> +sparc64_linux_get_syscall_number (struct gdbarch *gdbarch,
> + ptid_t ptid)
> +{
> + struct regcache *regcache = get_thread_regcache (ptid);
> + enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
> + /* The content of a register. */
> + gdb_byte buf[8];
> + /* The result. */
> + LONGEST ret;
> +
> + /* Getting the system call number from the register.
> + When dealing with the sparc architecture, this information
> + is stored at the %g1 register. */
> + regcache_cooked_read (regcache, SPARC_G1_REGNUM, buf);
> +
> + ret = extract_signed_integer (buf, 8, byte_order);
> +
> + return ret;
> +}
> +
>
>
> static void
> @@ -244,6 +269,11 @@ sparc64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
> tdep->step_trap = sparc64_linux_step_trap;
>
> set_gdbarch_write_pc (gdbarch, sparc64_linux_write_pc);
> +
> + /* Functions for 'catch syscall'. */
> + set_xml_syscall_file_name (XML_SYSCALL_FILENAME_SPARC64);
> + set_gdbarch_get_syscall_number (gdbarch,
> + sparc64_linux_get_syscall_number);
> }
>
>
> diff --git a/gdb/syscalls/sparc-linux.xml b/gdb/syscalls/sparc-linux.xml
> new file mode 100644
> index 0000000..4e3bde0
> --- /dev/null
> +++ b/gdb/syscalls/sparc-linux.xml
> @@ -0,0 +1,344 @@
> +<?xml version="1.0"?>
> +<!-- Copyright (C) 2010 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/linux/arch/sparc/include/asm/unistd.h
> +
> + The file mentioned above belongs to the Linux Kernel. -->
> +
> +<syscalls_info>
> + <syscall name="restart_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="creat" number="8"/>
> + <syscall name="link" number="9"/>
> + <syscall name="unlink" number="10"/>
> + <syscall name="execv" number="11"/>
> + <syscall name="chdir" number="12"/>
> + <syscall name="chown" number="13"/>
> + <syscall name="mknod" number="14"/>
> + <syscall name="chmod" number="15"/>
> + <syscall name="lchown" number="16"/>
> + <syscall name="brk" number="17"/>
> + <syscall name="perfctr" number="18"/>
> + <syscall name="lseek" number="19"/>
> + <syscall name="getpid" number="20"/>
> + <syscall name="capget" number="21"/>
> + <syscall name="capset" number="22"/>
> + <syscall name="setuid" number="23"/>
> + <syscall name="getuid" number="24"/>
> + <syscall name="vmsplice" number="25"/>
> + <syscall name="ptrace" number="26"/>
> + <syscall name="alarm" number="27"/>
> + <syscall name="sigaltstack" number="28"/>
> + <syscall name="pause" number="29"/>
> + <syscall name="utime" number="30"/>
> + <syscall name="lchown32" number="31"/>
> + <syscall name="fchown32" number="32"/>
> + <syscall name="access" number="33"/>
> + <syscall name="nice" number="34"/>
> + <syscall name="chown32" number="35"/>
> + <syscall name="sync" number="36"/>
> + <syscall name="kill" number="37"/>
> + <syscall name="stat" number="38"/>
> + <syscall name="sendfile" number="39"/>
> + <syscall name="lstat" number="40"/>
> + <syscall name="dup" number="41"/>
> + <syscall name="pipe" number="42"/>
> + <syscall name="times" number="43"/>
> + <syscall name="getuid32" number="44"/>
> + <syscall name="umount2" number="45"/>
> + <syscall name="setgid" number="46"/>
> + <syscall name="getgid" number="47"/>
> + <syscall name="signal" number="48"/>
> + <syscall name="geteuid" number="49"/>
> + <syscall name="getegid" number="50"/>
> + <syscall name="acct" number="51"/>
> + <syscall name="getgid32" number="53"/>
> + <syscall name="ioctl" number="54"/>
> + <syscall name="reboot" number="55"/>
> + <syscall name="mmap2" 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="fstat" number="62"/>
> + <syscall name="fstat64" number="63"/>
> + <syscall name="getpagesize" number="64"/>
> + <syscall name="msync" number="65"/>
> + <syscall name="vfork" number="66"/>
> + <syscall name="pread64" number="67"/>
> + <syscall name="pwrite64" number="68"/>
> + <syscall name="geteuid32" number="69"/>
> + <syscall name="getegid32" number="70"/>
> + <syscall name="mmap" number="71"/>
> + <syscall name="setreuid32" number="72"/>
> + <syscall name="munmap" number="73"/>
> + <syscall name="mprotect" number="74"/>
> + <syscall name="madvise" number="75"/>
> + <syscall name="vhangup" number="76"/>
> + <syscall name="truncate64" number="77"/>
> + <syscall name="mincore" number="78"/>
> + <syscall name="getgroups" number="79"/>
> + <syscall name="setgroups" number="80"/>
> + <syscall name="getpgrp" number="81"/>
> + <syscall name="setgroups32" number="82"/>
> + <syscall name="setitimer" number="83"/>
> + <syscall name="ftruncate64" number="84"/>
> + <syscall name="swapon" number="85"/>
> + <syscall name="getitimer" number="86"/>
> + <syscall name="setuid32" number="87"/>
> + <syscall name="sethostname" number="88"/>
> + <syscall name="setgid32" number="89"/>
> + <syscall name="dup2" number="90"/>
> + <syscall name="setfsuid32" number="91"/>
> + <syscall name="fcntl" number="92"/>
> + <syscall name="select" number="93"/>
> + <syscall name="setfsgid32" number="94"/>
> + <syscall name="fsync" number="95"/>
> + <syscall name="setpriority" number="96"/>
> + <syscall name="socket" number="97"/>
> + <syscall name="connect" number="98"/>
> + <syscall name="accept" number="99"/>
> + <syscall name="getpriority" number="100"/>
> + <syscall name="rt_sigreturn" number="101"/>
> + <syscall name="rt_sigaction" number="102"/>
> + <syscall name="rt_sigprocmask" number="103"/>
> + <syscall name="rt_sigpending" number="104"/>
> + <syscall name="rt_sigtimedwait" number="105"/>
> + <syscall name="rt_sigqueueinfo" number="106"/>
> + <syscall name="rt_sigsuspend" number="107"/>
> + <syscall name="setresuid32" number="108"/>
> + <syscall name="getresuid32" number="109"/>
> + <syscall name="setresgid32" number="110"/>
> + <syscall name="getresgid32" number="111"/>
> + <syscall name="setregid32" number="112"/>
> + <syscall name="recvmsg" number="113"/>
> + <syscall name="sendmsg" number="114"/>
> + <syscall name="getgroups32" number="115"/>
> + <syscall name="gettimeofday" number="116"/>
> + <syscall name="getrusage" number="117"/>
> + <syscall name="getsockopt" number="118"/>
> + <syscall name="getcwd" number="119"/>
> + <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="recvfrom" number="125"/>
> + <syscall name="setreuid" number="126"/>
> + <syscall name="setregid" number="127"/>
> + <syscall name="rename" number="128"/>
> + <syscall name="truncate" number="129"/>
> + <syscall name="ftruncate" number="130"/>
> + <syscall name="flock" number="131"/>
> + <syscall name="lstat64" 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="stat64" number="139"/>
> + <syscall name="sendfile64" number="140"/>
> + <syscall name="getpeername" number="141"/>
> + <syscall name="futex" number="142"/>
> + <syscall name="gettid" number="143"/>
> + <syscall name="getrlimit" number="144"/>
> + <syscall name="setrlimit" number="145"/>
> + <syscall name="pivot_root" number="146"/>
> + <syscall name="prctl" number="147"/>
> + <syscall name="pciconfig_read" number="148"/>
> + <syscall name="pciconfig_write" number="149"/>
> + <syscall name="getsockname" number="150"/>
> + <syscall name="inotify_init" number="151"/>
> + <syscall name="inotify_add_watch" number="152"/>
> + <syscall name="poll" number="153"/>
> + <syscall name="getdents64" number="154"/>
> + <syscall name="fcntl64" number="155"/>
> + <syscall name="inotify_rm_watch" number="156"/>
> + <syscall name="statfs" number="157"/>
> + <syscall name="fstatfs" number="158"/>
> + <syscall name="umount" number="159"/>
> + <syscall name="sched_set_affinity" number="160"/>
> + <syscall name="sched_get_affinity" number="161"/>
> + <syscall name="getdomainname" number="162"/>
> + <syscall name="setdomainname" number="163"/>
> + <syscall name="quotactl" number="165"/>
> + <syscall name="set_tid_address" number="166"/>
> + <syscall name="mount" number="167"/>
> + <syscall name="ustat" number="168"/>
> + <syscall name="setxattr" number="169"/>
> + <syscall name="lsetxattr" number="170"/>
> + <syscall name="fsetxattr" number="171"/>
> + <syscall name="getxattr" number="172"/>
> + <syscall name="lgetxattr" number="173"/>
> + <syscall name="getdents" number="174"/>
> + <syscall name="setsid" number="175"/>
> + <syscall name="fchdir" number="176"/>
> + <syscall name="fgetxattr" number="177"/>
> + <syscall name="listxattr" number="178"/>
> + <syscall name="llistxattr" number="179"/>
> + <syscall name="flistxattr" number="180"/>
> + <syscall name="removexattr" number="181"/>
> + <syscall name="lremovexattr" number="182"/>
> + <syscall name="sigpending" number="183"/>
> + <syscall name="query_module" number="184"/>
> + <syscall name="setpgid" number="185"/>
> + <syscall name="fremovexattr" number="186"/>
> + <syscall name="tkill" number="187"/>
> + <syscall name="exit_group" number="188"/>
> + <syscall name="uname" number="189"/>
> + <syscall name="init_module" number="190"/>
> + <syscall name="personality" number="191"/>
> + <syscall name="remap_file_pages" number="192"/>
> + <syscall name="epoll_create" number="193"/>
> + <syscall name="epoll_ctl" number="194"/>
> + <syscall name="epoll_wait" number="195"/>
> + <syscall name="ioprio_set" number="196"/>
> + <syscall name="getppid" number="197"/>
> + <syscall name="sigaction" number="198"/>
> + <syscall name="sgetmask" number="199"/>
> + <syscall name="ssetmask" number="200"/>
> + <syscall name="sigsuspend" number="201"/>
> + <syscall name="oldlstat" number="202"/>
> + <syscall name="uselib" number="203"/>
> + <syscall name="readdir" number="204"/>
> + <syscall name="readahead" number="205"/>
> + <syscall name="socketcall" number="206"/>
> + <syscall name="syslog" number="207"/>
> + <syscall name="lookup_dcookie" number="208"/>
> + <syscall name="fadvise64" number="209"/>
> + <syscall name="fadvise64_64" number="210"/>
> + <syscall name="tgkill" number="211"/>
> + <syscall name="waitpid" number="212"/>
> + <syscall name="swapoff" number="213"/>
> + <syscall name="sysinfo" number="214"/>
> + <syscall name="ipc" number="215"/>
> + <syscall name="sigreturn" number="216"/>
> + <syscall name="clone" number="217"/>
> + <syscall name="ioprio_get" number="218"/>
> + <syscall name="adjtimex" number="219"/>
> + <syscall name="sigprocmask" number="220"/>
> + <syscall name="create_module" number="221"/>
> + <syscall name="delete_module" number="222"/>
> + <syscall name="get_kernel_syms" number="223"/>
> + <syscall name="getpgid" number="224"/>
> + <syscall name="bdflush" number="225"/>
> + <syscall name="sysfs" number="226"/>
> + <syscall name="afs_syscall" number="227"/>
> + <syscall name="setfsuid" number="228"/>
> + <syscall name="setfsgid" number="229"/>
> + <syscall name="_newselect" number="230"/>
> + <syscall name="time" number="231"/>
> + <syscall name="splice" number="232"/>
> + <syscall name="stime" number="233"/>
> + <syscall name="statfs64" number="234"/>
> + <syscall name="fstatfs64" number="235"/>
> + <syscall name="_llseek" number="236"/>
> + <syscall name="mlock" number="237"/>
> + <syscall name="munlock" number="238"/>
> + <syscall name="mlockall" number="239"/>
> + <syscall name="munlockall" number="240"/>
> + <syscall name="sched_setparam" number="241"/>
> + <syscall name="sched_getparam" number="242"/>
> + <syscall name="sched_setscheduler" number="243"/>
> + <syscall name="sched_getscheduler" number="244"/>
> + <syscall name="sched_yield" number="245"/>
> + <syscall name="sched_get_priority_max" number="246"/>
> + <syscall name="sched_get_priority_min" number="247"/>
> + <syscall name="sched_rr_get_interval" number="248"/>
> + <syscall name="nanosleep" number="249"/>
> + <syscall name="mremap" number="250"/>
> + <syscall name="_sysctl" number="251"/>
> + <syscall name="getsid" number="252"/>
> + <syscall name="fdatasync" number="253"/>
> + <syscall name="nfsservctl" number="254"/>
> + <syscall name="sync_file_range" number="255"/>
> + <syscall name="clock_settime" number="256"/>
> + <syscall name="clock_gettime" number="257"/>
> + <syscall name="clock_getres" number="258"/>
> + <syscall name="clock_nanosleep" number="259"/>
> + <syscall name="sched_getaffinity" number="260"/>
> + <syscall name="sched_setaffinity" number="261"/>
> + <syscall name="timer_settime" number="262"/>
> + <syscall name="timer_gettime" number="263"/>
> + <syscall name="timer_getoverrun" number="264"/>
> + <syscall name="timer_delete" number="265"/>
> + <syscall name="timer_create" number="266"/>
> + <syscall name="vserver" number="267"/>
> + <syscall name="io_setup" number="268"/>
> + <syscall name="io_destroy" number="269"/>
> + <syscall name="io_submit" number="270"/>
> + <syscall name="io_cancel" number="271"/>
> + <syscall name="io_getevents" number="272"/>
> + <syscall name="mq_open" number="273"/>
> + <syscall name="mq_unlink" number="274"/>
> + <syscall name="mq_timedsend" number="275"/>
> + <syscall name="mq_timedreceive" number="276"/>
> + <syscall name="mq_notify" number="277"/>
> + <syscall name="mq_getsetattr" number="278"/>
> + <syscall name="waitid" number="279"/>
> + <syscall name="tee" number="280"/>
> + <syscall name="add_key" number="281"/>
> + <syscall name="request_key" number="282"/>
> + <syscall name="keyctl" number="283"/>
> + <syscall name="openat" number="284"/>
> + <syscall name="mkdirat" number="285"/>
> + <syscall name="mknodat" number="286"/>
> + <syscall name="fchownat" number="287"/>
> + <syscall name="futimesat" number="288"/>
> + <syscall name="fstatat64" number="289"/>
> + <syscall name="unlinkat" number="290"/>
> + <syscall name="renameat" number="291"/>
> + <syscall name="linkat" number="292"/>
> + <syscall name="symlinkat" number="293"/>
> + <syscall name="readlinkat" number="294"/>
> + <syscall name="fchmodat" number="295"/>
> + <syscall name="faccessat" number="296"/>
> + <syscall name="pselect6" number="297"/>
> + <syscall name="ppoll" number="298"/>
> + <syscall name="unshare" number="299"/>
> + <syscall name="set_robust_list" number="300"/>
> + <syscall name="get_robust_list" number="301"/>
> + <syscall name="migrate_pages" number="302"/>
> + <syscall name="mbind" number="303"/>
> + <syscall name="get_mempolicy" number="304"/>
> + <syscall name="set_mempolicy" number="305"/>
> + <syscall name="kexec_load" number="306"/>
> + <syscall name="move_pages" number="307"/>
> + <syscall name="getcpu" number="308"/>
> + <syscall name="epoll_pwait" number="309"/>
> + <syscall name="utimensat" number="310"/>
> + <syscall name="signalfd" number="311"/>
> + <syscall name="timerfd_create" number="312"/>
> + <syscall name="eventfd" number="313"/>
> + <syscall name="fallocate" number="314"/>
> + <syscall name="timerfd_settime" number="315"/>
> + <syscall name="timerfd_gettime" number="316"/>
> + <syscall name="signalfd4" number="317"/>
> + <syscall name="eventfd2" number="318"/>
> + <syscall name="epoll_create1" number="319"/>
> + <syscall name="dup3" number="320"/>
> + <syscall name="pipe2" number="321"/>
> + <syscall name="inotify_init1" number="322"/>
> + <syscall name="accept4" number="323"/>
> + <syscall name="preadv" number="324"/>
> + <syscall name="pwritev" number="325"/>
> + <syscall name="rt_tgsigqueueinfo" number="326"/>
> + <syscall name="perf_event_open" number="327"/>
> + <syscall name="recvmmsg" number="328"/>
> +</syscalls_info>
> diff --git a/gdb/syscalls/sparc64-linux.xml b/gdb/syscalls/sparc64-linux.xml
> new file mode 100644
> index 0000000..b701883
> --- /dev/null
> +++ b/gdb/syscalls/sparc64-linux.xml
> @@ -0,0 +1,326 @@
> +<?xml version="1.0"?>
> +<!-- Copyright (C) 2010 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/linux/arch/sparc/include/asm/unistd.h
> +
> + The file mentioned above belongs to the Linux Kernel. -->
> +
> +<syscalls_info>
> + <syscall name="restart_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="creat" number="8"/>
> + <syscall name="link" number="9"/>
> + <syscall name="unlink" number="10"/>
> + <syscall name="execv" number="11"/>
> + <syscall name="chdir" number="12"/>
> + <syscall name="chown" number="13"/>
> + <syscall name="mknod" number="14"/>
> + <syscall name="chmod" number="15"/>
> + <syscall name="lchown" number="16"/>
> + <syscall name="brk" number="17"/>
> + <syscall name="perfctr" number="18"/>
> + <syscall name="lseek" number="19"/>
> + <syscall name="getpid" number="20"/>
> + <syscall name="capget" number="21"/>
> + <syscall name="capset" number="22"/>
> + <syscall name="setuid" number="23"/>
> + <syscall name="getuid" number="24"/>
> + <syscall name="vmsplice" number="25"/>
> + <syscall name="ptrace" number="26"/>
> + <syscall name="alarm" number="27"/>
> + <syscall name="sigaltstack" number="28"/>
> + <syscall name="pause" number="29"/>
> + <syscall name="utime" number="30"/>
> + <syscall name="access" number="33"/>
> + <syscall name="nice" number="34"/>
> + <syscall name="sync" number="36"/>
> + <syscall name="kill" number="37"/>
> + <syscall name="stat" number="38"/>
> + <syscall name="sendfile" number="39"/>
> + <syscall name="lstat" number="40"/>
> + <syscall name="dup" number="41"/>
> + <syscall name="pipe" number="42"/>
> + <syscall name="times" number="43"/>
> + <syscall name="umount2" number="45"/>
> + <syscall name="setgid" number="46"/>
> + <syscall name="getgid" number="47"/>
> + <syscall name="signal" number="48"/>
> + <syscall name="geteuid" number="49"/>
> + <syscall name="getegid" number="50"/>
> + <syscall name="acct" number="51"/>
> + <syscall name="memory_ordering" number="52"/>
> + <syscall name="ioctl" number="54"/>
> + <syscall name="reboot" number="55"/>
> + <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="fstat" number="62"/>
> + <syscall name="fstat64" number="63"/>
> + <syscall name="getpagesize" number="64"/>
> + <syscall name="msync" number="65"/>
> + <syscall name="vfork" number="66"/>
> + <syscall name="pread64" number="67"/>
> + <syscall name="pwrite64" number="68"/>
> + <syscall name="mmap" number="71"/>
> + <syscall name="munmap" number="73"/>
> + <syscall name="mprotect" number="74"/>
> + <syscall name="madvise" number="75"/>
> + <syscall name="vhangup" number="76"/>
> + <syscall name="mincore" number="78"/>
> + <syscall name="getgroups" number="79"/>
> + <syscall name="setgroups" number="80"/>
> + <syscall name="getpgrp" number="81"/>
> + <syscall name="setitimer" number="83"/>
> + <syscall name="swapon" number="85"/>
> + <syscall name="getitimer" number="86"/>
> + <syscall name="sethostname" number="88"/>
> + <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="accept" number="99"/>
> + <syscall name="getpriority" number="100"/>
> + <syscall name="rt_sigreturn" number="101"/>
> + <syscall name="rt_sigaction" number="102"/>
> + <syscall name="rt_sigprocmask" number="103"/>
> + <syscall name="rt_sigpending" number="104"/>
> + <syscall name="rt_sigtimedwait" number="105"/>
> + <syscall name="rt_sigqueueinfo" number="106"/>
> + <syscall name="rt_sigsuspend" number="107"/>
> + <syscall name="setresuid" number="108"/>
> + <syscall name="getresuid" number="109"/>
> + <syscall name="setresgid" number="110"/>
> + <syscall name="getresgid" number="111"/>
> + <syscall name="recvmsg" number="113"/>
> + <syscall name="sendmsg" number="114"/>
> + <syscall name="gettimeofday" number="116"/>
> + <syscall name="getrusage" number="117"/>
> + <syscall name="getsockopt" number="118"/>
> + <syscall name="getcwd" number="119"/>
> + <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="recvfrom" number="125"/>
> + <syscall name="setreuid" number="126"/>
> + <syscall name="setregid" number="127"/>
> + <syscall name="rename" number="128"/>
> + <syscall name="truncate" number="129"/>
> + <syscall name="ftruncate" number="130"/>
> + <syscall name="flock" number="131"/>
> + <syscall name="lstat64" 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="stat64" number="139"/>
> + <syscall name="sendfile64" number="140"/>
> + <syscall name="getpeername" number="141"/>
> + <syscall name="futex" number="142"/>
> + <syscall name="gettid" number="143"/>
> + <syscall name="getrlimit" number="144"/>
> + <syscall name="setrlimit" number="145"/>
> + <syscall name="pivot_root" number="146"/>
> + <syscall name="prctl" number="147"/>
> + <syscall name="pciconfig_read" number="148"/>
> + <syscall name="pciconfig_write" number="149"/>
> + <syscall name="getsockname" number="150"/>
> + <syscall name="inotify_init" number="151"/>
> + <syscall name="inotify_add_watch" number="152"/>
> + <syscall name="poll" number="153"/>
> + <syscall name="getdents64" number="154"/>
> + <syscall name="inotify_rm_watch" number="156"/>
> + <syscall name="statfs" number="157"/>
> + <syscall name="fstatfs" number="158"/>
> + <syscall name="umount" number="159"/>
> + <syscall name="sched_set_affinity" number="160"/>
> + <syscall name="sched_get_affinity" number="161"/>
> + <syscall name="getdomainname" number="162"/>
> + <syscall name="setdomainname" number="163"/>
> + <syscall name="utrap_install" number="164"/>
> + <syscall name="quotactl" number="165"/>
> + <syscall name="set_tid_address" number="166"/>
> + <syscall name="mount" number="167"/>
> + <syscall name="ustat" number="168"/>
> + <syscall name="setxattr" number="169"/>
> + <syscall name="lsetxattr" number="170"/>
> + <syscall name="fsetxattr" number="171"/>
> + <syscall name="getxattr" number="172"/>
> + <syscall name="lgetxattr" number="173"/>
> + <syscall name="getdents" number="174"/>
> + <syscall name="setsid" number="175"/>
> + <syscall name="fchdir" number="176"/>
> + <syscall name="fgetxattr" number="177"/>
> + <syscall name="listxattr" number="178"/>
> + <syscall name="llistxattr" number="179"/>
> + <syscall name="flistxattr" number="180"/>
> + <syscall name="removexattr" number="181"/>
> + <syscall name="lremovexattr" number="182"/>
> + <syscall name="sigpending" number="183"/>
> + <syscall name="query_module" number="184"/>
> + <syscall name="setpgid" number="185"/>
> + <syscall name="fremovexattr" number="186"/>
> + <syscall name="tkill" number="187"/>
> + <syscall name="exit_group" number="188"/>
> + <syscall name="uname" number="189"/>
> + <syscall name="init_module" number="190"/>
> + <syscall name="personality" number="191"/>
> + <syscall name="remap_file_pages" number="192"/>
> + <syscall name="epoll_create" number="193"/>
> + <syscall name="epoll_ctl" number="194"/>
> + <syscall name="epoll_wait" number="195"/>
> + <syscall name="ioprio_set" number="196"/>
> + <syscall name="getppid" number="197"/>
> + <syscall name="sigaction" number="198"/>
> + <syscall name="sgetmask" number="199"/>
> + <syscall name="ssetmask" number="200"/>
> + <syscall name="sigsuspend" number="201"/>
> + <syscall name="oldlstat" number="202"/>
> + <syscall name="uselib" number="203"/>
> + <syscall name="readdir" number="204"/>
> + <syscall name="readahead" number="205"/>
> + <syscall name="socketcall" number="206"/>
> + <syscall name="syslog" number="207"/>
> + <syscall name="lookup_dcookie" number="208"/>
> + <syscall name="fadvise64" number="209"/>
> + <syscall name="fadvise64_64" number="210"/>
> + <syscall name="tgkill" number="211"/>
> + <syscall name="waitpid" number="212"/>
> + <syscall name="swapoff" number="213"/>
> + <syscall name="sysinfo" number="214"/>
> + <syscall name="ipc" number="215"/>
> + <syscall name="sigreturn" number="216"/>
> + <syscall name="clone" number="217"/>
> + <syscall name="ioprio_get" number="218"/>
> + <syscall name="adjtimex" number="219"/>
> + <syscall name="sigprocmask" number="220"/>
> + <syscall name="create_module" number="221"/>
> + <syscall name="delete_module" number="222"/>
> + <syscall name="get_kernel_syms" number="223"/>
> + <syscall name="getpgid" number="224"/>
> + <syscall name="bdflush" number="225"/>
> + <syscall name="sysfs" number="226"/>
> + <syscall name="afs_syscall" number="227"/>
> + <syscall name="setfsuid" number="228"/>
> + <syscall name="setfsgid" number="229"/>
> + <syscall name="_newselect" number="230"/>
> + <syscall name="splice" number="232"/>
> + <syscall name="stime" number="233"/>
> + <syscall name="statfs64" number="234"/>
> + <syscall name="fstatfs64" number="235"/>
> + <syscall name="_llseek" number="236"/>
> + <syscall name="mlock" number="237"/>
> + <syscall name="munlock" number="238"/>
> + <syscall name="mlockall" number="239"/>
> + <syscall name="munlockall" number="240"/>
> + <syscall name="sched_setparam" number="241"/>
> + <syscall name="sched_getparam" number="242"/>
> + <syscall name="sched_setscheduler" number="243"/>
> + <syscall name="sched_getscheduler" number="244"/>
> + <syscall name="sched_yield" number="245"/>
> + <syscall name="sched_get_priority_max" number="246"/>
> + <syscall name="sched_get_priority_min" number="247"/>
> + <syscall name="sched_rr_get_interval" number="248"/>
> + <syscall name="nanosleep" number="249"/>
> + <syscall name="mremap" number="250"/>
> + <syscall name="_sysctl" number="251"/>
> + <syscall name="getsid" number="252"/>
> + <syscall name="fdatasync" number="253"/>
> + <syscall name="nfsservctl" number="254"/>
> + <syscall name="sync_file_range" number="255"/>
> + <syscall name="clock_settime" number="256"/>
> + <syscall name="clock_gettime" number="257"/>
> + <syscall name="clock_getres" number="258"/>
> + <syscall name="clock_nanosleep" number="259"/>
> + <syscall name="sched_getaffinity" number="260"/>
> + <syscall name="sched_setaffinity" number="261"/>
> + <syscall name="timer_settime" number="262"/>
> + <syscall name="timer_gettime" number="263"/>
> + <syscall name="timer_getoverrun" number="264"/>
> + <syscall name="timer_delete" number="265"/>
> + <syscall name="timer_create" number="266"/>
> + <syscall name="vserver" number="267"/>
> + <syscall name="io_setup" number="268"/>
> + <syscall name="io_destroy" number="269"/>
> + <syscall name="io_submit" number="270"/>
> + <syscall name="io_cancel" number="271"/>
> + <syscall name="io_getevents" number="272"/>
> + <syscall name="mq_open" number="273"/>
> + <syscall name="mq_unlink" number="274"/>
> + <syscall name="mq_timedsend" number="275"/>
> + <syscall name="mq_timedreceive" number="276"/>
> + <syscall name="mq_notify" number="277"/>
> + <syscall name="mq_getsetattr" number="278"/>
> + <syscall name="waitid" number="279"/>
> + <syscall name="tee" number="280"/>
> + <syscall name="add_key" number="281"/>
> + <syscall name="request_key" number="282"/>
> + <syscall name="keyctl" number="283"/>
> + <syscall name="openat" number="284"/>
> + <syscall name="mkdirat" number="285"/>
> + <syscall name="mknodat" number="286"/>
> + <syscall name="fchownat" number="287"/>
> + <syscall name="futimesat" number="288"/>
> + <syscall name="fstatat64" number="289"/>
> + <syscall name="unlinkat" number="290"/>
> + <syscall name="renameat" number="291"/>
> + <syscall name="linkat" number="292"/>
> + <syscall name="symlinkat" number="293"/>
> + <syscall name="readlinkat" number="294"/>
> + <syscall name="fchmodat" number="295"/>
> + <syscall name="faccessat" number="296"/>
> + <syscall name="pselect6" number="297"/>
> + <syscall name="ppoll" number="298"/>
> + <syscall name="unshare" number="299"/>
> + <syscall name="set_robust_list" number="300"/>
> + <syscall name="get_robust_list" number="301"/>
> + <syscall name="migrate_pages" number="302"/>
> + <syscall name="mbind" number="303"/>
> + <syscall name="get_mempolicy" number="304"/>
> + <syscall name="set_mempolicy" number="305"/>
> + <syscall name="kexec_load" number="306"/>
> + <syscall name="move_pages" number="307"/>
> + <syscall name="getcpu" number="308"/>
> + <syscall name="epoll_pwait" number="309"/>
> + <syscall name="utimensat" number="310"/>
> + <syscall name="signalfd" number="311"/>
> + <syscall name="timerfd_create" number="312"/>
> + <syscall name="eventfd" number="313"/>
> + <syscall name="fallocate" number="314"/>
> + <syscall name="timerfd_settime" number="315"/>
> + <syscall name="timerfd_gettime" number="316"/>
> + <syscall name="signalfd4" number="317"/>
> + <syscall name="eventfd2" number="318"/>
> + <syscall name="epoll_create1" number="319"/>
> + <syscall name="dup3" number="320"/>
> + <syscall name="pipe2" number="321"/>
> + <syscall name="inotify_init1" number="322"/>
> + <syscall name="accept4" number="323"/>
> + <syscall name="preadv" number="324"/>
> + <syscall name="pwritev" number="325"/>
> + <syscall name="rt_tgsigqueueinfo" number="326"/>
> + <syscall name="perf_event_open" number="327"/>
> + <syscall name="recvmmsg" number="328"/>
> +</syscalls_info>
> --
> 1.6.6.1
>
>