gdb: syscalls: Add loongarch-linux.xml.in

There is no syscall.tbl for LoongArch because it uses generic syscalls,
so it can not generate loongarch-linux.xml.in automatically through the
script update-linux-from-src.sh, make use of the script update-linux.sh
to generate loongarch-linux.xml.in.

Like this:

  $ git clone https://sourceware.org/git/binutils-gdb.git gdb.git
  $ cd gdb.git/gdb/syscalls/
  $ touch loongarch-linux.xml.in
  $ ./update-linux.sh loongarch-linux.xml.in

Note that the system header file /usr/include/asm-generic/unistd.h
may be different with the latest upstream Linux kernel uapi header
file include/uapi/asm-generic/unistd.h, it is better to copy the
upstream header file into the system header file when generating
loongarch-linux.xml.in.

There exist some __NR3264_ prefixed syscall numbers, replace them
with digital numbers according to /usr/include/asm-generic/unistd.h
and sort them by syscall number manually, maybe we can modify the
script to do it automatically in the future.

  <syscall name="fcntl" number="__NR3264_fcntl"/>
  <syscall name="statfs" number="__NR3264_statfs"/>
  <syscall name="fstatfs" number="__NR3264_fstatfs"/>
  <syscall name="truncate" number="__NR3264_truncate"/>
  <syscall name="ftruncate" number="__NR3264_ftruncate"/>
  <syscall name="lseek" number="__NR3264_lseek"/>
  <syscall name="sendfile" number="__NR3264_sendfile"/>
  <syscall name="mmap" number="__NR3264_mmap"/>
  <syscall name="fadvise64" number="__NR3264_fadvise64"/>

Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Approved-By: John Baldwin <jhb@FreeBSD.org>
This commit is contained in:
Tiezhu Yang 2024-02-29 16:39:07 +08:00
parent 950895a209
commit a08dc2aa00

View File

@ -0,0 +1,331 @@
<?xml version="1.0"?>
<!-- Copyright (C) 2009-2024 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:
<sys/syscall.h>
The file mentioned above belongs to the Linux Kernel. -->
<syscalls_info>
<syscall name="io_setup" number="0"/>
<syscall name="io_destroy" number="1"/>
<syscall name="io_submit" number="2"/>
<syscall name="io_cancel" number="3"/>
<syscall name="io_getevents" number="4"/>
<syscall name="setxattr" number="5"/>
<syscall name="lsetxattr" number="6"/>
<syscall name="fsetxattr" number="7"/>
<syscall name="getxattr" number="8"/>
<syscall name="lgetxattr" number="9"/>
<syscall name="fgetxattr" number="10"/>
<syscall name="listxattr" number="11"/>
<syscall name="llistxattr" number="12"/>
<syscall name="flistxattr" number="13"/>
<syscall name="removexattr" number="14"/>
<syscall name="lremovexattr" number="15"/>
<syscall name="fremovexattr" number="16"/>
<syscall name="getcwd" number="17"/>
<syscall name="lookup_dcookie" number="18"/>
<syscall name="eventfd2" number="19"/>
<syscall name="epoll_create1" number="20"/>
<syscall name="epoll_ctl" number="21"/>
<syscall name="epoll_pwait" number="22"/>
<syscall name="dup" number="23"/>
<syscall name="dup3" number="24"/>
<syscall name="fcntl" number="25"/>
<syscall name="inotify_init1" number="26"/>
<syscall name="inotify_add_watch" number="27"/>
<syscall name="inotify_rm_watch" number="28"/>
<syscall name="ioctl" number="29"/>
<syscall name="ioprio_set" number="30"/>
<syscall name="ioprio_get" number="31"/>
<syscall name="flock" number="32"/>
<syscall name="mknodat" number="33"/>
<syscall name="mkdirat" number="34"/>
<syscall name="unlinkat" number="35"/>
<syscall name="symlinkat" number="36"/>
<syscall name="linkat" number="37"/>
<syscall name="umount2" number="39"/>
<syscall name="mount" number="40"/>
<syscall name="pivot_root" number="41"/>
<syscall name="nfsservctl" number="42"/>
<syscall name="statfs" number="43"/>
<syscall name="fstatfs" number="44"/>
<syscall name="truncate" number="45"/>
<syscall name="ftruncate" number="46"/>
<syscall name="fallocate" number="47"/>
<syscall name="faccessat" number="48"/>
<syscall name="chdir" number="49"/>
<syscall name="fchdir" number="50"/>
<syscall name="chroot" number="51"/>
<syscall name="fchmod" number="52"/>
<syscall name="fchmodat" number="53"/>
<syscall name="fchownat" number="54"/>
<syscall name="fchown" number="55"/>
<syscall name="openat" number="56"/>
<syscall name="close" number="57"/>
<syscall name="vhangup" number="58"/>
<syscall name="pipe2" number="59"/>
<syscall name="quotactl" number="60"/>
<syscall name="getdents64" number="61"/>
<syscall name="lseek" number="62"/>
<syscall name="read" number="63"/>
<syscall name="write" number="64"/>
<syscall name="readv" number="65"/>
<syscall name="writev" number="66"/>
<syscall name="pread64" number="67"/>
<syscall name="pwrite64" number="68"/>
<syscall name="preadv" number="69"/>
<syscall name="pwritev" number="70"/>
<syscall name="sendfile" number="71"/>
<syscall name="pselect6" number="72"/>
<syscall name="ppoll" number="73"/>
<syscall name="signalfd4" number="74"/>
<syscall name="vmsplice" number="75"/>
<syscall name="splice" number="76"/>
<syscall name="tee" number="77"/>
<syscall name="readlinkat" number="78"/>
<syscall name="sync" number="81"/>
<syscall name="fsync" number="82"/>
<syscall name="fdatasync" number="83"/>
<syscall name="sync_file_range" number="84"/>
<syscall name="timerfd_create" number="85"/>
<syscall name="timerfd_settime" number="86"/>
<syscall name="timerfd_gettime" number="87"/>
<syscall name="utimensat" number="88"/>
<syscall name="acct" number="89"/>
<syscall name="capget" number="90"/>
<syscall name="capset" number="91"/>
<syscall name="personality" number="92"/>
<syscall name="exit" number="93"/>
<syscall name="exit_group" number="94"/>
<syscall name="waitid" number="95"/>
<syscall name="set_tid_address" number="96"/>
<syscall name="unshare" number="97"/>
<syscall name="futex" number="98"/>
<syscall name="set_robust_list" number="99"/>
<syscall name="get_robust_list" number="100"/>
<syscall name="nanosleep" number="101"/>
<syscall name="getitimer" number="102"/>
<syscall name="setitimer" number="103"/>
<syscall name="kexec_load" number="104"/>
<syscall name="init_module" number="105"/>
<syscall name="delete_module" number="106"/>
<syscall name="timer_create" number="107"/>
<syscall name="timer_gettime" number="108"/>
<syscall name="timer_getoverrun" number="109"/>
<syscall name="timer_settime" number="110"/>
<syscall name="timer_delete" number="111"/>
<syscall name="clock_settime" number="112"/>
<syscall name="clock_gettime" number="113"/>
<syscall name="clock_getres" number="114"/>
<syscall name="clock_nanosleep" number="115"/>
<syscall name="syslog" number="116"/>
<syscall name="ptrace" number="117"/>
<syscall name="sched_setparam" number="118"/>
<syscall name="sched_setscheduler" number="119"/>
<syscall name="sched_getscheduler" number="120"/>
<syscall name="sched_getparam" number="121"/>
<syscall name="sched_setaffinity" number="122"/>
<syscall name="sched_getaffinity" number="123"/>
<syscall name="sched_yield" number="124"/>
<syscall name="sched_get_priority_max" number="125"/>
<syscall name="sched_get_priority_min" number="126"/>
<syscall name="sched_rr_get_interval" number="127"/>
<syscall name="restart_syscall" number="128"/>
<syscall name="kill" number="129"/>
<syscall name="tkill" number="130"/>
<syscall name="tgkill" number="131"/>
<syscall name="sigaltstack" number="132"/>
<syscall name="rt_sigsuspend" number="133"/>
<syscall name="rt_sigaction" number="134"/>
<syscall name="rt_sigprocmask" number="135"/>
<syscall name="rt_sigpending" number="136"/>
<syscall name="rt_sigtimedwait" number="137"/>
<syscall name="rt_sigqueueinfo" number="138"/>
<syscall name="rt_sigreturn" number="139"/>
<syscall name="setpriority" number="140"/>
<syscall name="getpriority" number="141"/>
<syscall name="reboot" number="142"/>
<syscall name="setregid" number="143"/>
<syscall name="setgid" number="144"/>
<syscall name="setreuid" number="145"/>
<syscall name="setuid" number="146"/>
<syscall name="setresuid" number="147"/>
<syscall name="getresuid" number="148"/>
<syscall name="setresgid" number="149"/>
<syscall name="getresgid" number="150"/>
<syscall name="setfsuid" number="151"/>
<syscall name="setfsgid" number="152"/>
<syscall name="times" number="153"/>
<syscall name="setpgid" number="154"/>
<syscall name="getpgid" number="155"/>
<syscall name="getsid" number="156"/>
<syscall name="setsid" number="157"/>
<syscall name="getgroups" number="158"/>
<syscall name="setgroups" number="159"/>
<syscall name="uname" number="160"/>
<syscall name="sethostname" number="161"/>
<syscall name="setdomainname" number="162"/>
<syscall name="getrusage" number="165"/>
<syscall name="umask" number="166"/>
<syscall name="prctl" number="167"/>
<syscall name="getcpu" number="168"/>
<syscall name="gettimeofday" number="169"/>
<syscall name="settimeofday" number="170"/>
<syscall name="adjtimex" number="171"/>
<syscall name="getpid" number="172"/>
<syscall name="getppid" number="173"/>
<syscall name="getuid" number="174"/>
<syscall name="geteuid" number="175"/>
<syscall name="getgid" number="176"/>
<syscall name="getegid" number="177"/>
<syscall name="gettid" number="178"/>
<syscall name="sysinfo" number="179"/>
<syscall name="mq_open" number="180"/>
<syscall name="mq_unlink" number="181"/>
<syscall name="mq_timedsend" number="182"/>
<syscall name="mq_timedreceive" number="183"/>
<syscall name="mq_notify" number="184"/>
<syscall name="mq_getsetattr" number="185"/>
<syscall name="msgget" number="186"/>
<syscall name="msgctl" number="187"/>
<syscall name="msgrcv" number="188"/>
<syscall name="msgsnd" number="189"/>
<syscall name="semget" number="190"/>
<syscall name="semctl" number="191"/>
<syscall name="semtimedop" number="192"/>
<syscall name="semop" number="193"/>
<syscall name="shmget" number="194"/>
<syscall name="shmctl" number="195"/>
<syscall name="shmat" number="196"/>
<syscall name="shmdt" number="197"/>
<syscall name="socket" number="198"/>
<syscall name="socketpair" number="199"/>
<syscall name="bind" number="200"/>
<syscall name="listen" number="201"/>
<syscall name="accept" number="202"/>
<syscall name="connect" number="203"/>
<syscall name="getsockname" number="204"/>
<syscall name="getpeername" number="205"/>
<syscall name="sendto" number="206"/>
<syscall name="recvfrom" number="207"/>
<syscall name="setsockopt" number="208"/>
<syscall name="getsockopt" number="209"/>
<syscall name="shutdown" number="210"/>
<syscall name="sendmsg" number="211"/>
<syscall name="recvmsg" number="212"/>
<syscall name="readahead" number="213"/>
<syscall name="brk" number="214"/>
<syscall name="munmap" number="215"/>
<syscall name="mremap" number="216"/>
<syscall name="add_key" number="217"/>
<syscall name="request_key" number="218"/>
<syscall name="keyctl" number="219"/>
<syscall name="clone" number="220"/>
<syscall name="execve" number="221"/>
<syscall name="mmap" number="222"/>
<syscall name="fadvise64" number="223"/>
<syscall name="swapon" number="224"/>
<syscall name="swapoff" number="225"/>
<syscall name="mprotect" number="226"/>
<syscall name="msync" number="227"/>
<syscall name="mlock" number="228"/>
<syscall name="munlock" number="229"/>
<syscall name="mlockall" number="230"/>
<syscall name="munlockall" number="231"/>
<syscall name="mincore" number="232"/>
<syscall name="madvise" number="233"/>
<syscall name="remap_file_pages" number="234"/>
<syscall name="mbind" number="235"/>
<syscall name="get_mempolicy" number="236"/>
<syscall name="set_mempolicy" number="237"/>
<syscall name="migrate_pages" number="238"/>
<syscall name="move_pages" number="239"/>
<syscall name="rt_tgsigqueueinfo" number="240"/>
<syscall name="perf_event_open" number="241"/>
<syscall name="accept4" number="242"/>
<syscall name="recvmmsg" number="243"/>
<syscall name="arch_specific_syscall" number="244"/>
<syscall name="wait4" number="260"/>
<syscall name="prlimit64" number="261"/>
<syscall name="fanotify_init" number="262"/>
<syscall name="fanotify_mark" number="263"/>
<syscall name="name_to_handle_at" number="264"/>
<syscall name="open_by_handle_at" number="265"/>
<syscall name="clock_adjtime" number="266"/>
<syscall name="syncfs" number="267"/>
<syscall name="setns" number="268"/>
<syscall name="sendmmsg" number="269"/>
<syscall name="process_vm_readv" number="270"/>
<syscall name="process_vm_writev" number="271"/>
<syscall name="kcmp" number="272"/>
<syscall name="finit_module" number="273"/>
<syscall name="sched_setattr" number="274"/>
<syscall name="sched_getattr" number="275"/>
<syscall name="renameat2" number="276"/>
<syscall name="seccomp" number="277"/>
<syscall name="getrandom" number="278"/>
<syscall name="memfd_create" number="279"/>
<syscall name="bpf" number="280"/>
<syscall name="execveat" number="281"/>
<syscall name="userfaultfd" number="282"/>
<syscall name="membarrier" number="283"/>
<syscall name="mlock2" number="284"/>
<syscall name="copy_file_range" number="285"/>
<syscall name="preadv2" number="286"/>
<syscall name="pwritev2" number="287"/>
<syscall name="pkey_mprotect" number="288"/>
<syscall name="pkey_alloc" number="289"/>
<syscall name="pkey_free" number="290"/>
<syscall name="statx" number="291"/>
<syscall name="io_pgetevents" number="292"/>
<syscall name="rseq" number="293"/>
<syscall name="kexec_file_load" number="294"/>
<syscall name="pidfd_send_signal" number="424"/>
<syscall name="io_uring_setup" number="425"/>
<syscall name="io_uring_enter" number="426"/>
<syscall name="io_uring_register" number="427"/>
<syscall name="open_tree" number="428"/>
<syscall name="move_mount" number="429"/>
<syscall name="fsopen" number="430"/>
<syscall name="fsconfig" number="431"/>
<syscall name="fsmount" number="432"/>
<syscall name="fspick" number="433"/>
<syscall name="pidfd_open" number="434"/>
<syscall name="clone3" number="435"/>
<syscall name="close_range" number="436"/>
<syscall name="openat2" number="437"/>
<syscall name="pidfd_getfd" number="438"/>
<syscall name="faccessat2" number="439"/>
<syscall name="process_madvise" number="440"/>
<syscall name="epoll_pwait2" number="441"/>
<syscall name="mount_setattr" number="442"/>
<syscall name="quotactl_fd" number="443"/>
<syscall name="landlock_create_ruleset" number="444"/>
<syscall name="landlock_add_rule" number="445"/>
<syscall name="landlock_restrict_self" number="446"/>
<syscall name="process_mrelease" number="448"/>
<syscall name="futex_waitv" number="449"/>
<syscall name="set_mempolicy_home_node" number="450"/>
<syscall name="cachestat" number="451"/>
<syscall name="fchmodat2" number="452"/>
<syscall name="map_shadow_stack" number="453"/>
<syscall name="futex_wake" number="454"/>
<syscall name="futex_wait" number="455"/>
<syscall name="futex_requeue" number="456"/>
<syscall name="statmount" number="457"/>
<syscall name="listmount" number="458"/>
<syscall name="lsm_get_self_attr" number="459"/>
<syscall name="lsm_set_self_attr" number="460"/>
<syscall name="lsm_list_modules" number="461"/>
<syscall name="syscalls" number="462"/>
</syscalls_info>