binutils-gdb/gdb/linux-record.h

545 lines
14 KiB
C
Raw Normal View History

/* Process record and replay target code for GNU/Linux.
Copyright (C) 2008-2015 Free Software Foundation, Inc.
This file is part of GDB.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
#ifndef _LINUX_RECORD_H_
#define _LINUX_RECORD_H_
struct linux_record_tdep
{
/* The size of the type that will be used in a system call. */
int size_pointer;
int size__old_kernel_stat;
int size_tms;
int size_loff_t;
int size_flock;
int size_oldold_utsname;
int size_ustat;
int size_old_sigaction;
int size_old_sigset_t;
int size_rlimit;
int size_rusage;
int size_timeval;
int size_timezone;
int size_old_gid_t;
int size_old_uid_t;
int size_fd_set;
int size_dirent;
int size_dirent64;
int size_statfs;
int size_statfs64;
int size_sockaddr;
int size_int;
int size_long;
int size_ulong;
int size_msghdr;
int size_itimerval;
int size_stat;
int size_old_utsname;
int size_sysinfo;
int size_msqid_ds;
int size_shmid_ds;
int size_new_utsname;
int size_timex;
int size_mem_dqinfo;
int size_if_dqblk;
int size_fs_quota_stat;
int size_timespec;
int size_pollfd;
int size_NFS_FHSIZE;
int size_knfsd_fh;
int size_TASK_COMM_LEN;
int size_sigaction;
int size_sigset_t;
int size_siginfo_t;
int size_cap_user_data_t;
int size_stack_t;
int size_off_t;
int size_stat64;
int size_gid_t;
int size_uid_t;
int size_PAGE_SIZE;
int size_flock64;
int size_user_desc;
int size_io_event;
int size_iocb;
int size_epoll_event;
int size_itimerspec;
int size_mq_attr;
int size_siginfo;
int size_termios;
int size_termios2;
int size_pid_t;
int size_winsize;
int size_serial_struct;
int size_serial_icounter_struct;
int size_hayes_esp_config;
int size_size_t;
int size_iovec;
/* The values of the second argument of system call "sys_ioctl". */
int ioctl_TCGETS;
int ioctl_TCSETS;
int ioctl_TCSETSW;
int ioctl_TCSETSF;
int ioctl_TCGETA;
int ioctl_TCSETA;
int ioctl_TCSETAW;
int ioctl_TCSETAF;
int ioctl_TCSBRK;
int ioctl_TCXONC;
int ioctl_TCFLSH;
int ioctl_TIOCEXCL;
int ioctl_TIOCNXCL;
int ioctl_TIOCSCTTY;
int ioctl_TIOCGPGRP;
int ioctl_TIOCSPGRP;
int ioctl_TIOCOUTQ;
int ioctl_TIOCSTI;
int ioctl_TIOCGWINSZ;
int ioctl_TIOCSWINSZ;
int ioctl_TIOCMGET;
int ioctl_TIOCMBIS;
int ioctl_TIOCMBIC;
int ioctl_TIOCMSET;
int ioctl_TIOCGSOFTCAR;
int ioctl_TIOCSSOFTCAR;
int ioctl_FIONREAD;
int ioctl_TIOCINQ;
int ioctl_TIOCLINUX;
int ioctl_TIOCCONS;
int ioctl_TIOCGSERIAL;
int ioctl_TIOCSSERIAL;
int ioctl_TIOCPKT;
int ioctl_FIONBIO;
int ioctl_TIOCNOTTY;
int ioctl_TIOCSETD;
int ioctl_TIOCGETD;
int ioctl_TCSBRKP;
int ioctl_TIOCTTYGSTRUCT;
int ioctl_TIOCSBRK;
int ioctl_TIOCCBRK;
int ioctl_TIOCGSID;
int ioctl_TCGETS2;
int ioctl_TCSETS2;
int ioctl_TCSETSW2;
int ioctl_TCSETSF2;
int ioctl_TIOCGPTN;
int ioctl_TIOCSPTLCK;
int ioctl_FIONCLEX;
int ioctl_FIOCLEX;
int ioctl_FIOASYNC;
int ioctl_TIOCSERCONFIG;
int ioctl_TIOCSERGWILD;
int ioctl_TIOCSERSWILD;
int ioctl_TIOCGLCKTRMIOS;
int ioctl_TIOCSLCKTRMIOS;
int ioctl_TIOCSERGSTRUCT;
int ioctl_TIOCSERGETLSR;
int ioctl_TIOCSERGETMULTI;
int ioctl_TIOCSERSETMULTI;
int ioctl_TIOCMIWAIT;
int ioctl_TIOCGICOUNT;
int ioctl_TIOCGHAYESESP;
int ioctl_TIOCSHAYESESP;
int ioctl_FIOQSIZE;
/* The values of the second argument of system call "sys_fcntl"
and "sys_fcntl64". */
int fcntl_F_GETLK;
int fcntl_F_GETLK64;
int fcntl_F_SETLK64;
int fcntl_F_SETLKW64;
/* The number of the registers that are used as the arguments of
a system call. */
int arg1;
int arg2;
int arg3;
int arg4;
int arg5;
int arg6;
Implements aarch64 process record and reverse debugging support This patch adds the support of aarch64-linux process record and reverse debugging. The implementation is similar to ARM's counterpart. 2015-05-26 Omair Javaid <omair.javaid@linaro.org> Yao Qi <yao.qi@linaro.org> * aarch64-linux-tdep.c: Include linux-record.h and record-full.h. (struct linux_record_tdep aarch64_linux_record_tdep): Declare. (aarch64_syscall): New enum. (aarch64_canonicalize_syscall): New function. (aarch64_all_but_pc_registers_record): New function. (aarch64_linux_syscall_record): New function. (aarch64_linux_init_abi): Install AArch64 process record handler. Update to handle syscall recording. * aarch64-tdep.c: Include record.h and record-full.h. (submask, bit, bits, REG_ALLOC, MEM_ALLOC): New macros. (struct aarch64_mem_r): Define. (aarch64_record_result): New enum. (struct insn_decode_record): Define. (insn_decode_record): New typedef. (aarch64_record_data_proc_reg): New function. (aarch64_record_data_proc_imm): New function. (aarch64_record_branch_except_sys): New function. (aarch64_record_load_store): New function. (aarch64_record_data_proc_simd_fp): New function. (aarch64_record_asimd_load_store): New function. (aarch64_record_decode_insn_handler): New function. (deallocate_reg_mem): New function. (aarch64_process_record): New function. * aarch64-tdep.h (struct gdbarch_tdep) <aarch64_syscall_record>: New field. (aarch64_process_record): New extern declaration. * configure.tgt: Add linux-record.o to gdb_target_obs. * linux-record.h (struct linux_record_tdep) <arg7>: New field.
2015-05-11 19:10:46 +08:00
int arg7;
};
/* Enum that defines the gdb-canonical set of Linux syscall identifiers.
Different architectures will have different sets of syscall ids, and
each must provide a mapping from their set to this one. */
enum gdb_syscall {
Mostly trivial enum fixes This is a patch I extracted from Pedro's C++ branch. It contains the most trivial enum fixes, where an integer type/value was used instead of the appropriate enum type/value. It fixes many C++ errors, since in C++ you can't mix integers and enums implicitely. Regardless of the C++ conversion, I think this is a good cleanup to make use of the appropriate enum types. Regression-tested on native x86_64. gdb/ChangeLog: * aarch64-linux-nat.c (aarch64_linux_can_use_hw_breakpoint): Use enum type or value instead of integer. (aarch64_linux_insert_watchpoint): Likewise. (aarch64_linux_remove_watchpoint): Likewise. * ada-lang.c (ada_op_print_tab): Likewise. * amd64-linux-tdep.c (amd64_canonicalize_syscall): Likewise. (amd64_linux_syscall_record_common): Likewise. * arch-utils.c (target_byte_order_user): Likewise. (default_byte_order): Likewise. * arm-linux-nat.c (arm_linux_can_use_hw_breakpoint): Likewise. (arm_linux_get_hwbp_type): Likewise. (arm_linux_hw_watchpoint_initialize): Likewise. (arm_linux_insert_watchpoint): Likewise. * arm-linux-tdep.c (arm_canonicalize_syscall): Likewise. (arm_linux_syscall_record): Likewise. * breakpoint.c (update_watchpoint): Likewise. (breakpoint_here_p): Likewise. (bpstat_print): Likewise. (enable_breakpoint_disp): Likewise. * c-lang.c (c_op_print_tab): Likewise. * cli/cli-decode.c (add_info_alias): Likewise. * d-lang.c (d_op_print_tab): Likewise. * eval.c (evaluate_subexp_standard): Likewise. * f-exp.y (dot_ops): Likewise. (f77_keywords): Likewise. * f-lang.c (f_op_print_tab): Likewise. * go-lang.c (go_op_print_tab): Likewise. * guile/scm-breakpoint.c (gdbscm_make_breakpoint): Likewise. * guile/scm-cmd.c (gdbscm_make_command): Likewise. * guile/scm-param.c (gdbscm_make_parameter): Likewise. * guile/scm-pretty-print.c (gdbscm_apply_val_pretty_printer): Likewise. * guile/scm-string.c (struct scm_to_stringn_data): Likewise. (struct scm_from_stringn_data): Likewise. * i386-linux-tdep.c (i386_canonicalize_syscall): Likewise. * ia64-linux-nat.c (ia64_linux_insert_watchpoint): Likewise. (ia64_linux_remove_watchpoint): Likewise. (ia64_linux_can_use_hw_breakpoint): Likewise. * infrun.c (print_stop_event): Likewise. * jv-lang.c (java_op_print_tab): Likewise. * linux-nat.c (linux_proc_xfer_partial): Likewise. * linux-nat.h (struct lwp_info): Likewise. * linux-thread-db.c (enable_thread_event): Likewise. * m2-lang.c (m2_op_print_tab): Likewise. * mi/mi-cmd-stack.c (mi_cmd_stack_list_locals): Likewise. (mi_cmd_stack_list_variables): Likewise. * mi/mi-main.c (mi_cmd_trace_frame_collected): Likewise. * mi/mi-out.c (mi_table_begin): Likewise. (mi_table_header): Likewise. * mips-linux-nat.c (mips_linux_can_use_hw_breakpoint): Likewise. (mips_linux_insert_watchpoint): Likewise. (mips_linux_remove_watchpoint): Likewise. * nat/mips-linux-watch.c (mips_linux_watch_type_to_irw): Likewise. * nat/mips-linux-watch.h (struct mips_watchpoint): Likewise. (mips_linux_watch_type_to_irw): Likewise. * nto-procfs.c (procfs_can_use_hw_breakpoint): Likewise. (procfs_insert_hw_watchpoint): Likewise. (procfs_remove_hw_watchpoint): Likewise. (procfs_hw_watchpoint): Likewise. (procfs_can_use_hw_breakpoint): Likewise. (procfs_remove_hw_watchpoint): Likewise. (procfs_insert_hw_watchpoint): Likewise. * p-lang.c (pascal_op_print_tab): Likewise. * ppc-linux-nat.c (ppc_linux_can_use_hw_breakpoint): Likewise. * ppc-linux-tdep.c (ppu2spu_unwind_register): Likewise. * ppc-sysv-tdep.c (get_decimal_float_return_value): Likewise. * procfs.c (procfs_can_use_hw_breakpoint): Likewise. (procfs_insert_watchpoint): Likewise. (procfs_remove_watchpoint): Likewise. * psymtab.c (recursively_search_psymtabs): Likewise. * remote-m32r-sdi.c (m32r_can_use_hw_watchpoint): Likewise. (m32r_insert_watchpoint): Likewise. * remote-mips.c (mips_can_use_watchpoint): Likewise. (mips_insert_watchpoint): Likewise. (mips_remove_watchpoint): Likewise. * remote.c (watchpoint_to_Z_packet): Likewise. (remote_insert_watchpoint): Likewise. (remote_remove_watchpoint): Likewise. (remote_check_watch_resources): Likewise. * s390-linux-nat.c (s390_insert_watchpoint): Likewise. (s390_remove_watchpoint): Likewise. (s390_can_use_hw_breakpoint): Likewise. * s390-linux-tdep.c (s390_gdbarch_init): Likewise. * spu-linux-nat.c (spu_can_use_hw_breakpoint): Likewise. * target.h (struct target_ops): Likewise. * tilegx-tdep.c (tilegx_analyze_prologue): Likewise. * ui-out.c (struct ui_out_hdr): Likewise. (append_header_to_list): Likewise. (get_next_header): Likewise. (verify_field): Likewise. (ui_out_begin): Likewise. (ui_out_field_int): Likewise. (ui_out_field_fmt_int): Likewise. (ui_out_field_skip): Likewise. (ui_out_field_string): Likewise. (ui_out_field_fmt): Likewise. * varobj.c (new_variable): Likewise. * x86-nat.c (x86_insert_watchpoint): Likewise. (x86_remove_watchpoint): Likewise. (x86_can_use_hw_breakpoint): Likewise. * xtensa-tdep.h (struct gdbarch_tdep): Likewise. * inflow.c (enum gdb_has_a_terminal_flag_enum): Add name to previously anonymous enumeration type.. * linux-record.h (enum gdb_syscall): Add gdb_sys_no_syscall value. * target-debug.h (target_debug_print_enum_target_hw_bp_type): New. (target_debug_print_enum_bptype): New. * target-delegates.c: Regenerate.
2015-08-01 01:19:53 +08:00
/* An unknown GDB syscall, not a real syscall. */
gdb_sys_no_syscall = -1,
gdb_sys_restart_syscall = 0,
gdb_sys_exit = 1,
gdb_sys_fork = 2,
gdb_sys_read = 3,
gdb_sys_write = 4,
gdb_sys_open = 5,
gdb_sys_close = 6,
gdb_sys_waitpid = 7,
gdb_sys_creat = 8,
gdb_sys_link = 9,
gdb_sys_unlink = 10,
gdb_sys_execve = 11,
gdb_sys_chdir = 12,
gdb_sys_time = 13,
gdb_sys_mknod = 14,
gdb_sys_chmod = 15,
gdb_sys_lchown16 = 16,
gdb_sys_ni_syscall17 = 17,
gdb_sys_stat = 18,
gdb_sys_lseek = 19,
gdb_sys_getpid = 20,
gdb_sys_mount = 21,
gdb_sys_oldumount = 22,
gdb_sys_setuid16 = 23,
gdb_sys_getuid16 = 24,
gdb_sys_stime = 25,
gdb_sys_ptrace = 26,
gdb_sys_alarm = 27,
gdb_sys_fstat = 28,
gdb_sys_pause = 29,
gdb_sys_utime = 30,
gdb_sys_ni_syscall31 = 31,
gdb_sys_ni_syscall32 = 32,
gdb_sys_access = 33,
gdb_sys_nice = 34,
gdb_sys_ni_syscall35 = 35,
gdb_sys_sync = 36,
gdb_sys_kill = 37,
gdb_sys_rename = 38,
gdb_sys_mkdir = 39,
gdb_sys_rmdir = 40,
gdb_sys_dup = 41,
gdb_sys_pipe = 42,
gdb_sys_times = 43,
gdb_sys_ni_syscall44 = 44,
gdb_sys_brk = 45,
gdb_sys_setgid16 = 46,
gdb_sys_getgid16 = 47,
gdb_sys_signal = 48,
gdb_sys_geteuid16 = 49,
gdb_sys_getegid16 = 50,
gdb_sys_acct = 51,
gdb_sys_umount = 52,
gdb_sys_ni_syscall53 = 53,
gdb_sys_ioctl = 54,
gdb_sys_fcntl = 55,
gdb_sys_ni_syscall56 = 56,
gdb_sys_setpgid = 57,
gdb_sys_ni_syscall58 = 58,
gdb_sys_olduname = 59,
gdb_sys_umask = 60,
gdb_sys_chroot = 61,
gdb_sys_ustat = 62,
gdb_sys_dup2 = 63,
gdb_sys_getppid = 64,
gdb_sys_getpgrp = 65,
gdb_sys_setsid = 66,
gdb_sys_sigaction = 67,
gdb_sys_sgetmask = 68,
gdb_sys_ssetmask = 69,
gdb_sys_setreuid16 = 70,
gdb_sys_setregid16 = 71,
gdb_sys_sigsuspend = 72,
gdb_sys_sigpending = 73,
gdb_sys_sethostname = 74,
gdb_sys_setrlimit = 75,
gdb_sys_old_getrlimit = 76,
gdb_sys_getrusage = 77,
gdb_sys_gettimeofday = 78,
gdb_sys_settimeofday = 79,
gdb_sys_getgroups16 = 80,
gdb_sys_setgroups16 = 81,
gdb_old_select = 82,
gdb_sys_symlink = 83,
gdb_sys_lstat = 84,
gdb_sys_readlink = 85,
gdb_sys_uselib = 86,
gdb_sys_swapon = 87,
gdb_sys_reboot = 88,
gdb_old_readdir = 89,
gdb_old_mmap = 90,
gdb_sys_munmap = 91,
gdb_sys_truncate = 92,
gdb_sys_ftruncate = 93,
gdb_sys_fchmod = 94,
gdb_sys_fchown16 = 95,
gdb_sys_getpriority = 96,
gdb_sys_setpriority = 97,
gdb_sys_ni_syscall98 = 98,
gdb_sys_statfs = 99,
gdb_sys_fstatfs = 100,
gdb_sys_ioperm = 101,
gdb_sys_socketcall = 102,
gdb_sys_syslog = 103,
gdb_sys_setitimer = 104,
gdb_sys_getitimer = 105,
gdb_sys_newstat = 106,
gdb_sys_newlstat = 107,
gdb_sys_newfstat = 108,
gdb_sys_uname = 109,
gdb_sys_iopl = 110,
gdb_sys_vhangup = 111,
gdb_sys_ni_syscall112 = 112,
gdb_sys_vm86old = 113,
gdb_sys_wait4 = 114,
gdb_sys_swapoff = 115,
gdb_sys_sysinfo = 116,
gdb_sys_ipc = 117,
gdb_sys_fsync = 118,
gdb_sys_sigreturn = 119,
gdb_sys_clone = 120,
gdb_sys_setdomainname = 121,
gdb_sys_newuname = 122,
gdb_sys_modify_ldt = 123,
gdb_sys_adjtimex = 124,
gdb_sys_mprotect = 125,
gdb_sys_sigprocmask = 126,
gdb_sys_ni_syscall127 = 127,
gdb_sys_init_module = 128,
gdb_sys_delete_module = 129,
gdb_sys_ni_syscall130 = 130,
gdb_sys_quotactl = 131,
gdb_sys_getpgid = 132,
gdb_sys_fchdir = 133,
gdb_sys_bdflush = 134,
gdb_sys_sysfs = 135,
gdb_sys_personality = 136,
gdb_sys_ni_syscall137 = 137,
gdb_sys_setfsuid16 = 138,
gdb_sys_setfsgid16 = 139,
gdb_sys_llseek = 140,
gdb_sys_getdents = 141,
gdb_sys_select = 142,
gdb_sys_flock = 143,
gdb_sys_msync = 144,
gdb_sys_readv = 145,
gdb_sys_writev = 146,
gdb_sys_getsid = 147,
gdb_sys_fdatasync = 148,
gdb_sys_sysctl = 149,
gdb_sys_mlock = 150,
gdb_sys_munlock = 151,
gdb_sys_mlockall = 152,
gdb_sys_munlockall = 153,
gdb_sys_sched_setparam = 154,
gdb_sys_sched_getparam = 155,
gdb_sys_sched_setscheduler = 156,
gdb_sys_sched_getscheduler = 157,
gdb_sys_sched_yield = 158,
gdb_sys_sched_get_priority_max = 159,
gdb_sys_sched_get_priority_min = 160,
gdb_sys_sched_rr_get_interval = 161,
gdb_sys_nanosleep = 162,
gdb_sys_mremap = 163,
gdb_sys_setresuid16 = 164,
gdb_sys_getresuid16 = 165,
gdb_sys_vm86 = 166,
gdb_sys_ni_syscall167 = 167,
gdb_sys_poll = 168,
gdb_sys_nfsservctl = 169,
gdb_sys_setresgid16 = 170,
gdb_sys_getresgid16 = 171,
gdb_sys_prctl = 172,
gdb_sys_rt_sigreturn = 173,
gdb_sys_rt_sigaction = 174,
gdb_sys_rt_sigprocmask = 175,
gdb_sys_rt_sigpending = 176,
gdb_sys_rt_sigtimedwait = 177,
gdb_sys_rt_sigqueueinfo = 178,
gdb_sys_rt_sigsuspend = 179,
gdb_sys_pread64 = 180,
gdb_sys_pwrite64 = 181,
gdb_sys_chown16 = 182,
gdb_sys_getcwd = 183,
gdb_sys_capget = 184,
gdb_sys_capset = 185,
gdb_sys_sigaltstack = 186,
gdb_sys_sendfile = 187,
gdb_sys_ni_syscall188 = 188,
gdb_sys_ni_syscall189 = 189,
gdb_sys_vfork = 190,
gdb_sys_getrlimit = 191,
gdb_sys_mmap2 = 192,
gdb_sys_truncate64 = 193,
gdb_sys_ftruncate64 = 194,
gdb_sys_stat64 = 195,
gdb_sys_lstat64 = 196,
gdb_sys_fstat64 = 197,
gdb_sys_lchown = 198,
gdb_sys_getuid = 199,
gdb_sys_getgid = 200,
gdb_sys_geteuid = 201,
gdb_sys_getegid = 202,
gdb_sys_setreuid = 203,
gdb_sys_setregid = 204,
gdb_sys_getgroups = 205,
gdb_sys_setgroups = 206,
gdb_sys_fchown = 207,
gdb_sys_setresuid = 208,
gdb_sys_getresuid = 209,
gdb_sys_setresgid = 210,
gdb_sys_getresgid = 211,
gdb_sys_chown = 212,
gdb_sys_setuid = 213,
gdb_sys_setgid = 214,
gdb_sys_setfsuid = 215,
gdb_sys_setfsgid = 216,
gdb_sys_pivot_root = 217,
gdb_sys_mincore = 218,
gdb_sys_madvise = 219,
gdb_sys_getdents64 = 220,
gdb_sys_fcntl64 = 221,
gdb_sys_ni_syscall222 = 222,
gdb_sys_ni_syscall223 = 223,
gdb_sys_gettid = 224,
gdb_sys_readahead = 225,
gdb_sys_setxattr = 226,
gdb_sys_lsetxattr = 227,
gdb_sys_fsetxattr = 228,
gdb_sys_getxattr = 229,
gdb_sys_lgetxattr = 230,
gdb_sys_fgetxattr = 231,
gdb_sys_listxattr = 232,
gdb_sys_llistxattr = 233,
gdb_sys_flistxattr = 234,
gdb_sys_removexattr = 235,
gdb_sys_lremovexattr = 236,
gdb_sys_fremovexattr = 237,
gdb_sys_tkill = 238,
gdb_sys_sendfile64 = 239,
gdb_sys_futex = 240,
gdb_sys_sched_setaffinity = 241,
gdb_sys_sched_getaffinity = 242,
gdb_sys_set_thread_area = 243,
gdb_sys_get_thread_area = 244,
gdb_sys_io_setup = 245,
gdb_sys_io_destroy = 246,
gdb_sys_io_getevents = 247,
gdb_sys_io_submit = 248,
gdb_sys_io_cancel = 249,
gdb_sys_fadvise64 = 250,
gdb_sys_ni_syscall251 = 251,
gdb_sys_exit_group = 252,
gdb_sys_lookup_dcookie = 253,
gdb_sys_epoll_create = 254,
gdb_sys_epoll_ctl = 255,
gdb_sys_epoll_wait = 256,
gdb_sys_remap_file_pages = 257,
gdb_sys_set_tid_address = 258,
gdb_sys_timer_create = 259,
gdb_sys_timer_settime = 260,
gdb_sys_timer_gettime = 261,
gdb_sys_timer_getoverrun = 262,
gdb_sys_timer_delete = 263,
gdb_sys_clock_settime = 264,
gdb_sys_clock_gettime = 265,
gdb_sys_clock_getres = 266,
gdb_sys_clock_nanosleep = 267,
gdb_sys_statfs64 = 268,
gdb_sys_fstatfs64 = 269,
gdb_sys_tgkill = 270,
gdb_sys_utimes = 271,
gdb_sys_fadvise64_64 = 272,
gdb_sys_ni_syscall273 = 273,
gdb_sys_mbind = 274,
gdb_sys_get_mempolicy = 275,
gdb_sys_set_mempolicy = 276,
gdb_sys_mq_open = 277,
gdb_sys_mq_unlink = 278,
gdb_sys_mq_timedsend = 279,
gdb_sys_mq_timedreceive = 280,
gdb_sys_mq_notify = 281,
gdb_sys_mq_getsetattr = 282,
gdb_sys_kexec_load = 283,
gdb_sys_waitid = 284,
gdb_sys_ni_syscall285 = 285,
gdb_sys_add_key = 286,
gdb_sys_request_key = 287,
gdb_sys_keyctl = 288,
gdb_sys_ioprio_set = 289,
gdb_sys_ioprio_get = 290,
gdb_sys_inotify_init = 291,
gdb_sys_inotify_add_watch = 292,
gdb_sys_inotify_rm_watch = 293,
gdb_sys_migrate_pages = 294,
gdb_sys_openat = 295,
gdb_sys_mkdirat = 296,
gdb_sys_mknodat = 297,
gdb_sys_fchownat = 298,
gdb_sys_futimesat = 299,
gdb_sys_fstatat64 = 300,
gdb_sys_unlinkat = 301,
gdb_sys_renameat = 302,
gdb_sys_linkat = 303,
gdb_sys_symlinkat = 304,
gdb_sys_readlinkat = 305,
gdb_sys_fchmodat = 306,
gdb_sys_faccessat = 307,
gdb_sys_pselect6 = 308,
gdb_sys_ppoll = 309,
gdb_sys_unshare = 310,
gdb_sys_set_robust_list = 311,
gdb_sys_get_robust_list = 312,
gdb_sys_splice = 313,
gdb_sys_sync_file_range = 314,
gdb_sys_tee = 315,
gdb_sys_vmsplice = 316,
gdb_sys_move_pages = 317,
gdb_sys_getcpu = 318,
gdb_sys_epoll_pwait = 319,
gdb_sys_socket = 500,
gdb_sys_connect = 501,
gdb_sys_accept = 502,
gdb_sys_sendto = 503,
gdb_sys_recvfrom = 504,
gdb_sys_sendmsg = 505,
gdb_sys_recvmsg = 506,
gdb_sys_shutdown = 507,
gdb_sys_bind = 508,
gdb_sys_listen = 509,
gdb_sys_getsockname = 510,
gdb_sys_getpeername = 511,
gdb_sys_socketpair = 512,
gdb_sys_setsockopt = 513,
gdb_sys_getsockopt = 514,
gdb_sys_recv = 515,
gdb_sys_shmget = 520,
gdb_sys_shmat = 521,
gdb_sys_shmctl = 522,
gdb_sys_semget = 523,
gdb_sys_semop = 524,
gdb_sys_semctl = 525,
gdb_sys_shmdt = 527,
gdb_sys_msgget = 528,
gdb_sys_msgsnd = 529,
gdb_sys_msgrcv = 530,
gdb_sys_msgctl = 531,
gdb_sys_semtimedop = 532,
gdb_sys_newfstatat = 540,
};
/* Record a linux syscall. */
extern int record_linux_system_call (enum gdb_syscall num,
struct regcache *regcache,
struct linux_record_tdep *tdep);
#endif /* _LINUX_RECORD_H_ */