diff options
author | Hui Zhu <teawater@gmail.com> | 2009-04-30 03:04:28 +0000 |
---|---|---|
committer | Hui Zhu <teawater@gmail.com> | 2009-04-30 03:04:28 +0000 |
commit | b7f6bf22997d7ff8b9218e82c90d2e3dfcb08d62 (patch) | |
tree | 583601a56c9ef3ed130dbb8d0c4d70aca4a5c8c0 /gdb/linux-record.h | |
parent | 69d05d3898f104fab077edf3c80e4f158084a8f4 (diff) | |
download | binutils-gdb-b7f6bf22997d7ff8b9218e82c90d2e3dfcb08d62.tar.gz |
Linux process record and replay support.
* Makefile.in (ALLDEPFILES): Add linux-record.c.
(ALL_TARGET_OBS): Add linux-record.o.
* configure.tgt (x86_64-*-linux*): Add linux-record.o.
(i[34567]86-*-linux*): Add linux-record.o.
* linux-record.c, linux-record.h: New file.
Diffstat (limited to 'gdb/linux-record.h')
-rw-r--r-- | gdb/linux-record.h | 173 |
1 files changed, 173 insertions, 0 deletions
diff --git a/gdb/linux-record.h b/gdb/linux-record.h new file mode 100644 index 00000000000..648dcb5928f --- /dev/null +++ b/gdb/linux-record.h @@ -0,0 +1,173 @@ +/* Process record and replay target code for GNU/Linux. + + Copyright (C) 2008, 2009 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__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_char; + int size_serial_struct; + int size_serial_icounter_struct; + int size_hayes_esp_config; + + /* 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 number of the registers that are used as the arguments of + a system call. */ + int arg1; + int arg2; + int arg3; + int arg4; + int arg5; +}; + +extern int record_linux_system_call (int num, struct regcache *regcache, + struct linux_record_tdep *tdep); + +#endif /* _LINUX_RECORD_H_ */ |