gdb/linux-record.c - gdb
 Functions defined
 
 Macros defined
 
 Source code
  
 
 
 
 
 
 
- #include "defs.h"
 
- #include "target.h"
 
- #include "gdbtypes.h"
 
- #include "regcache.h"
 
- #include "record.h"
 
- #include "record-full.h"
 
- #include "linux-record.h"
 
 
 
- #define RECORD_PTRACE_PEEKTEXT        1
 
- #define RECORD_PTRACE_PEEKDATA        2
 
- #define RECORD_PTRACE_PEEKUSR        3
 
 
 
- #define RECORD_SYS_SOCKET        1
 
- #define RECORD_SYS_BIND                2
 
- #define RECORD_SYS_CONNECT        3
 
- #define RECORD_SYS_LISTEN        4
 
- #define RECORD_SYS_ACCEPT        5
 
- #define RECORD_SYS_GETSOCKNAME        6
 
- #define RECORD_SYS_GETPEERNAME        7
 
- #define RECORD_SYS_SOCKETPAIR        8
 
- #define RECORD_SYS_SEND                9
 
- #define RECORD_SYS_RECV                10
 
- #define RECORD_SYS_SENDTO        11
 
- #define RECORD_SYS_RECVFROM        12
 
- #define RECORD_SYS_SHUTDOWN        13
 
- #define RECORD_SYS_SETSOCKOPT        14
 
- #define RECORD_SYS_GETSOCKOPT        15
 
- #define RECORD_SYS_SENDMSG        16
 
- #define RECORD_SYS_RECVMSG        17
 
 
 
- #define RECORD_SEMOP                1
 
- #define RECORD_SEMGET                2
 
- #define RECORD_SEMCTL                3
 
- #define RECORD_SEMTIMEDOP        4
 
- #define RECORD_MSGSND                11
 
- #define RECORD_MSGRCV                12
 
- #define RECORD_MSGGET                13
 
- #define RECORD_MSGCTL                14
 
- #define RECORD_SHMAT                21
 
- #define RECORD_SHMDT                22
 
- #define RECORD_SHMGET                23
 
- #define RECORD_SHMCTL                24
 
 
 
- #define RECORD_Q_GETFMT                0x800004
 
- #define RECORD_Q_GETINFO        0x800005
 
- #define RECORD_Q_GETQUOTA        0x800007
 
- #define RECORD_Q_XGETQSTAT        (('5' << 8) + 5)
 
- #define RECORD_Q_XGETQUOTA        (('3' << 8) + 3)
 
 
- #define OUTPUT_REG(val, num)      phex_nz ((val), \
 
-     TYPE_LENGTH (gdbarch_register_type (get_regcache_arch (regcache), (num))))
 
 
- static int
 
- record_linux_sockaddr (struct regcache *regcache,
 
-                        struct linux_record_tdep *tdep, ULONGEST addr,
 
-                        ULONGEST len)
 
- {
 
-   gdb_byte *a;
 
-   int addrlen;
 
-   struct gdbarch *gdbarch = get_regcache_arch (regcache);
 
-   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
 
 
-   if (!addr)
 
-     return 0;
 
 
-   a = alloca (tdep->size_int);
 
 
-   if (record_full_arch_list_add_mem ((CORE_ADDR) len, tdep->size_int))
 
-     return -1;
 
 
-   
 
-   if (target_read_memory ((CORE_ADDR) len, a, tdep->size_int))
 
-     {
 
-       if (record_debug)
 
-         fprintf_unfiltered (gdb_stdlog,
 
-                             "Process record: error reading "
 
-                             "memory at addr = 0x%s len = %d.\n",
 
-                             phex_nz (len, tdep->size_pointer),
 
-                             tdep->size_int);
 
-         return -1;
 
-     }
 
-   addrlen = (int) extract_unsigned_integer (a, tdep->size_int, byte_order);
 
-   if (addrlen <= 0 || addrlen > tdep->size_sockaddr)
 
-     addrlen = tdep->size_sockaddr;
 
 
-   if (record_full_arch_list_add_mem ((CORE_ADDR) addr, addrlen))
 
-     return -1;
 
 
-   return 0;
 
- }
 
 
- static int
 
- record_linux_msghdr (struct regcache *regcache,
 
-                      struct linux_record_tdep *tdep, ULONGEST addr)
 
- {
 
-   gdb_byte *a;
 
-   struct gdbarch *gdbarch = get_regcache_arch (regcache);
 
-   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
 
-   CORE_ADDR tmpaddr;
 
-   int tmpint;
 
 
-   if (!addr)
 
-     return 0;
 
 
-   if (record_full_arch_list_add_mem ((CORE_ADDR) addr, tdep->size_msghdr))
 
-     return -1;
 
 
-   a = alloca (tdep->size_msghdr);
 
-   if (target_read_memory ((CORE_ADDR) addr, a, tdep->size_msghdr))
 
-     {
 
-       if (record_debug)
 
-         fprintf_unfiltered (gdb_stdlog,
 
-                             "Process record: error reading "
 
-                             "memory at addr = 0x%s "
 
-                             "len = %d.\n",
 
-                             phex_nz (addr, tdep->size_pointer),
 
-                             tdep->size_msghdr);
 
-         return -1;
 
-     }
 
 
-   
 
-   addr = extract_unsigned_integer (a, tdep->size_pointer, byte_order);
 
-   a += tdep->size_pointer;
 
-   if (record_full_arch_list_add_mem
 
-       ((CORE_ADDR) addr,
 
-        (int) extract_unsigned_integer (a,
 
-                                        tdep->size_int,
 
-                                        byte_order)))
 
-     return -1;
 
-   a += tdep->size_int;
 
 
-   
 
-   addr = extract_unsigned_integer (a, tdep->size_pointer, byte_order);
 
-   a += tdep->size_pointer;
 
-   if (addr)
 
-     {
 
-       ULONGEST i;
 
-       ULONGEST len = extract_unsigned_integer (a, tdep->size_size_t,
 
-                                                byte_order);
 
-       gdb_byte *iov = alloca (tdep->size_iovec);
 
 
-       for (i = 0; i < len; i++)
 
-         {
 
-           if (target_read_memory ((CORE_ADDR) addr, iov, tdep->size_iovec))
 
-             {
 
-               if (record_debug)
 
-                 fprintf_unfiltered (gdb_stdlog,
 
-                                     "Process record: error "
 
-                                     "reading memory at "
 
-                                     "addr = 0x%s "
 
-                                     "len = %d.\n",
 
-                                     phex_nz (addr,tdep->size_pointer),
 
-                                     tdep->size_iovec);
 
-                 return -1;
 
-             }
 
-           tmpaddr = (CORE_ADDR) extract_unsigned_integer (iov,
 
-                                                           tdep->size_pointer,
 
-                                                           byte_order);
 
-           tmpint = (int) extract_unsigned_integer (iov + tdep->size_pointer,
 
-                                                    tdep->size_size_t,
 
-                                                    byte_order);
 
-           if (record_full_arch_list_add_mem (tmpaddr, tmpint))
 
-             return -1;
 
-           addr += tdep->size_iovec;
 
-         }
 
-     }
 
-   a += tdep->size_size_t;
 
 
-   
 
-   addr = extract_unsigned_integer (a, tdep->size_pointer, byte_order);
 
-   a += tdep->size_pointer;
 
-   tmpint = (int) extract_unsigned_integer (a, tdep->size_size_t, byte_order);
 
-   if (record_full_arch_list_add_mem ((CORE_ADDR) addr, tmpint))
 
-     return -1;
 
 
-   return 0;
 
- }
 
 
 
 
 
- int
 
- record_linux_system_call (enum gdb_syscall syscall,
 
-                           struct regcache *regcache,
 
-                           struct linux_record_tdep *tdep)
 
- {
 
-   struct gdbarch *gdbarch = get_regcache_arch (regcache);
 
-   enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
 
-   ULONGEST tmpulongest;
 
-   CORE_ADDR tmpaddr;
 
-   int tmpint;
 
 
-   switch (syscall)
 
-     {
 
-     case gdb_sys_restart_syscall:
 
-       break;
 
 
-     case gdb_sys_exit:
 
-       {
 
-         int q;
 
 
-         target_terminal_ours ();
 
-         q = yquery (_("The next instruction is syscall exit.  "
 
-                       "It will make the program exit.  "
 
-                       "Do you want to stop the program?"));
 
-         target_terminal_inferior ();
 
-         if (q)
 
-           return 1;
 
-       }
 
-       break;
 
 
-     case gdb_sys_fork:
 
-       break;
 
 
-     case gdb_sys_read:
 
-       {
 
-         ULONGEST addr, count;
 
 
-         regcache_raw_read_unsigned (regcache, tdep->arg2, &addr);
 
-         regcache_raw_read_unsigned (regcache, tdep->arg3, &count);
 
-         if (record_full_arch_list_add_mem ((CORE_ADDR) addr, (int) count))
 
-           return -1;
 
-       }
 
-       break;
 
 
-     case gdb_sys_write:
 
-     case gdb_sys_open:
 
-     case gdb_sys_close:
 
-     case gdb_sys_waitpid:
 
-     case gdb_sys_creat:
 
-     case gdb_sys_link:
 
-     case gdb_sys_unlink:
 
-     case gdb_sys_execve:
 
-     case gdb_sys_chdir:
 
-     case gdb_sys_time:
 
-     case gdb_sys_mknod:
 
-     case gdb_sys_chmod:
 
-     case gdb_sys_lchown16:
 
-     case gdb_sys_ni_syscall17:
 
-       break;
 
 
-     case gdb_sys_stat:
 
-     case gdb_sys_fstat:
 
-     case gdb_sys_lstat:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size__old_kernel_stat))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_lseek:
 
-     case gdb_sys_getpid:
 
-     case gdb_sys_mount:
 
-     case gdb_sys_oldumount:
 
-     case gdb_sys_setuid16:
 
-     case gdb_sys_getuid16:
 
-     case gdb_sys_stime:
 
-       break;
 
 
-     case gdb_sys_ptrace:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (tmpulongest == RECORD_PTRACE_PEEKTEXT
 
-           || tmpulongest == RECORD_PTRACE_PEEKDATA
 
-           || tmpulongest == RECORD_PTRACE_PEEKUSR)
 
-         {
 
-           regcache_raw_read_unsigned (regcache, tdep->arg4,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest, 4))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_alarm:
 
-     case gdb_sys_pause:
 
-     case gdb_sys_utime:
 
-     case gdb_sys_ni_syscall31:
 
-     case gdb_sys_ni_syscall32:
 
-     case gdb_sys_access:
 
-     case gdb_sys_nice:
 
-     case gdb_sys_ni_syscall35:
 
-     case gdb_sys_sync:
 
-     case gdb_sys_kill:
 
-     case gdb_sys_rename:
 
-     case gdb_sys_mkdir:
 
-     case gdb_sys_rmdir:
 
-     case gdb_sys_dup:
 
-     case gdb_sys_pipe:
 
-       break;
 
 
-     case gdb_sys_times:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_tms))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_ni_syscall44:
 
-     case gdb_sys_brk:
 
-     case gdb_sys_setgid16:
 
-     case gdb_sys_getgid16:
 
-     case gdb_sys_signal:
 
-     case gdb_sys_geteuid16:
 
-     case gdb_sys_getegid16:
 
-     case gdb_sys_acct:
 
-     case gdb_sys_umount:
 
-     case gdb_sys_ni_syscall53:
 
-       break;
 
 
-     case gdb_sys_ioctl:
 
-       XXX
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (tmpulongest == tdep->ioctl_FIOCLEX
 
-           || tmpulongest == tdep->ioctl_FIONCLEX
 
-           || tmpulongest == tdep->ioctl_FIONBIO
 
-           || tmpulongest == tdep->ioctl_FIOASYNC
 
-           || tmpulongest == tdep->ioctl_TCSETS
 
-           || tmpulongest == tdep->ioctl_TCSETSW
 
-           || tmpulongest == tdep->ioctl_TCSETSF
 
-           || tmpulongest == tdep->ioctl_TCSETA
 
-           || tmpulongest == tdep->ioctl_TCSETAW
 
-           || tmpulongest == tdep->ioctl_TCSETAF
 
-           || tmpulongest == tdep->ioctl_TCSBRK
 
-           || tmpulongest == tdep->ioctl_TCXONC
 
-           || tmpulongest == tdep->ioctl_TCFLSH
 
-           || tmpulongest == tdep->ioctl_TIOCEXCL
 
-           || tmpulongest == tdep->ioctl_TIOCNXCL
 
-           || tmpulongest == tdep->ioctl_TIOCSCTTY
 
-           || tmpulongest == tdep->ioctl_TIOCSPGRP
 
-           || tmpulongest == tdep->ioctl_TIOCSTI
 
-           || tmpulongest == tdep->ioctl_TIOCSWINSZ
 
-           || tmpulongest == tdep->ioctl_TIOCMBIS
 
-           || tmpulongest == tdep->ioctl_TIOCMBIC
 
-           || tmpulongest == tdep->ioctl_TIOCMSET
 
-           || tmpulongest == tdep->ioctl_TIOCSSOFTCAR
 
-           || tmpulongest == tdep->ioctl_TIOCCONS
 
-           || tmpulongest == tdep->ioctl_TIOCSSERIAL
 
-           || tmpulongest == tdep->ioctl_TIOCPKT
 
-           || tmpulongest == tdep->ioctl_TIOCNOTTY
 
-           || tmpulongest == tdep->ioctl_TIOCSETD
 
-           || tmpulongest == tdep->ioctl_TCSBRKP
 
-           || tmpulongest == tdep->ioctl_TIOCTTYGSTRUCT
 
-           || tmpulongest == tdep->ioctl_TIOCSBRK
 
-           || tmpulongest == tdep->ioctl_TIOCCBRK
 
-           || tmpulongest == tdep->ioctl_TCSETS2
 
-           || tmpulongest == tdep->ioctl_TCSETSW2
 
-           || tmpulongest == tdep->ioctl_TCSETSF2
 
-           || tmpulongest == tdep->ioctl_TIOCSPTLCK
 
-           || tmpulongest == tdep->ioctl_TIOCSERCONFIG
 
-           || tmpulongest == tdep->ioctl_TIOCSERGWILD
 
-           || tmpulongest == tdep->ioctl_TIOCSERSWILD
 
-           || tmpulongest == tdep->ioctl_TIOCSLCKTRMIOS
 
-           || tmpulongest == tdep->ioctl_TIOCSERGETMULTI
 
-           || tmpulongest == tdep->ioctl_TIOCSERSETMULTI
 
-           || tmpulongest == tdep->ioctl_TIOCMIWAIT
 
-           || tmpulongest == tdep->ioctl_TIOCSHAYESESP)
 
-         {
 
-           
 
-         }
 
-       else if (tmpulongest == tdep->ioctl_TCGETS
 
-                || tmpulongest == tdep->ioctl_TCGETA
 
-                || tmpulongest == tdep->ioctl_TIOCGLCKTRMIOS)
 
-         {
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_termios))
 
-             return -1;
 
-         }
 
-       else if (tmpulongest == tdep->ioctl_TIOCGPGRP
 
-                || tmpulongest == tdep->ioctl_TIOCGSID)
 
-         {
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_pid_t))
 
-             return -1;
 
-         }
 
-       else if (tmpulongest == tdep->ioctl_TIOCOUTQ
 
-                || tmpulongest == tdep->ioctl_TIOCMGET
 
-                || tmpulongest == tdep->ioctl_TIOCGSOFTCAR
 
-                || tmpulongest == tdep->ioctl_FIONREAD
 
-                || tmpulongest == tdep->ioctl_TIOCINQ
 
-                || tmpulongest == tdep->ioctl_TIOCGETD
 
-                || tmpulongest == tdep->ioctl_TIOCGPTN
 
-                || tmpulongest == tdep->ioctl_TIOCSERGETLSR)
 
-         {
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_int))
 
-             return -1;
 
-         }
 
-       else if (tmpulongest == tdep->ioctl_TIOCGWINSZ)
 
-         {
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_winsize))
 
-             return -1;
 
-         }
 
-       else if (tmpulongest == tdep->ioctl_TIOCLINUX)
 
-         {
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3,
 
-                                       &tmpulongest);
 
-           
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest, 1))
 
-             return -1;
 
-         }
 
-       else if (tmpulongest == tdep->ioctl_TIOCGSERIAL)
 
-         {
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_serial_struct))
 
-             return -1;
 
-         }
 
-       else if (tmpulongest == tdep->ioctl_TCGETS2)
 
-         {
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_termios2))
 
-             return -1;
 
-         }
 
-       else if (tmpulongest == tdep->ioctl_FIOQSIZE)
 
-         {
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_loff_t))
 
-             return -1;
 
-         }
 
-       else if (tmpulongest == tdep->ioctl_TIOCGICOUNT)
 
-         {
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_serial_icounter_struct))
 
-             return -1;
 
-         }
 
-       else if (tmpulongest == tdep->ioctl_TIOCGHAYESESP)
 
-         {
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_hayes_esp_config))
 
-             return -1;
 
-         }
 
-       else if (tmpulongest == tdep->ioctl_TIOCSERGSTRUCT)
 
-         {
 
-           printf_unfiltered (_("Process record and replay target doesn't "
 
-                                "support ioctl request TIOCSERGSTRUCT\n"));
 
-           return 1;
 
-         }
 
-       else
 
-         {
 
-           printf_unfiltered (_("Process record and replay target doesn't "
 
-                                "support ioctl request 0x%s.\n"),
 
-                              OUTPUT_REG (tmpulongest, tdep->arg2));
 
-           return 1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_fcntl:
 
-       XXX
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-     sys_fcntl:
 
-       if (tmpulongest == tdep->fcntl_F_GETLK)
 
-         {
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_flock))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_ni_syscall56:
 
-     case gdb_sys_setpgid:
 
-     case gdb_sys_ni_syscall58:
 
-       break;
 
 
-     case gdb_sys_olduname:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_oldold_utsname))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_umask:
 
-     case gdb_sys_chroot:
 
-       break;
 
 
-     case gdb_sys_ustat:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_ustat))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_dup2:
 
-     case gdb_sys_getppid:
 
-     case gdb_sys_getpgrp:
 
-     case gdb_sys_setsid:
 
-       break;
 
 
-     case gdb_sys_sigaction:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_old_sigaction))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_sgetmask:
 
-     case gdb_sys_ssetmask:
 
-     case gdb_sys_setreuid16:
 
-     case gdb_sys_setregid16:
 
-     case gdb_sys_sigsuspend:
 
-       break;
 
 
-     case gdb_sys_sigpending:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_old_sigset_t))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_sethostname:
 
-     case gdb_sys_setrlimit:
 
-       break;
 
 
-     case gdb_sys_old_getrlimit:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_rlimit))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_getrusage:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_rusage))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_gettimeofday:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_timeval))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_timezone))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_settimeofday:
 
-       break;
 
 
-     case gdb_sys_getgroups16:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_old_gid_t))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_setgroups16:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_old_gid_t))
 
-         return -1;
 
-       break;
 
 
-     case gdb_old_select:
 
-       {
 
-         struct sel_arg_struct
 
-         {
 
-           CORE_ADDR n;
 
-           CORE_ADDR inp;
 
-           CORE_ADDR outp;
 
-           CORE_ADDR exp;
 
-           CORE_ADDR tvp;
 
-         } sel;
 
 
-         regcache_raw_read_unsigned (regcache, tdep->arg1,
 
-                                     &tmpulongest);
 
-         if (tmpulongest)
 
-           {
 
-             if (target_read_memory (tmpulongest, (gdb_byte *) &sel,
 
-                                     sizeof(sel)))
 
-               {
 
-                 if (record_debug)
 
-                   fprintf_unfiltered (gdb_stdlog,
 
-                                       "Process record: error reading memory "
 
-                                       "at addr = 0x%s len = %lu.\n",
 
-                                       OUTPUT_REG (tmpulongest, tdep->arg1),
 
-                                       (unsigned long) sizeof (sel));
 
-                 return -1;
 
-               }
 
-             if (record_full_arch_list_add_mem (sel.inp, tdep->size_fd_set))
 
-               return -1;
 
-             if (record_full_arch_list_add_mem (sel.outp, tdep->size_fd_set))
 
-               return -1;
 
-             if (record_full_arch_list_add_mem (sel.exp, tdep->size_fd_set))
 
-               return -1;
 
-             if (record_full_arch_list_add_mem (sel.tvp, tdep->size_timeval))
 
-               return -1;
 
-           }
 
-       }
 
-       break;
 
 
-     case gdb_sys_symlink:
 
-       break;
 
 
-     case gdb_sys_readlink:
 
-       {
 
-         ULONGEST len;
 
 
-         regcache_raw_read_unsigned (regcache, tdep->arg2,
 
-                                     &tmpulongest);
 
-         regcache_raw_read_unsigned (regcache, tdep->arg3, &len);
 
-         if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest, (int) len))
 
-           return -1;
 
-       }
 
-       break;
 
 
-     case gdb_sys_uselib:
 
-     case gdb_sys_swapon:
 
-       break;
 
 
-     case gdb_sys_reboot:
 
-       {
 
-         int q;
 
 
-         target_terminal_ours ();
 
-         q = yquery (_("The next instruction is syscall reboot.  "
 
-                       "It will restart the computer.  "
 
-                       "Do you want to stop the program?"));
 
-         target_terminal_inferior ();
 
-         if (q)
 
-           return 1;
 
-       }
 
-       break;
 
 
-     case gdb_old_readdir:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_dirent))
 
-         return -1;
 
-       break;
 
 
-     case gdb_old_mmap:
 
-       break;
 
 
-     case gdb_sys_munmap:
 
-       {
 
-         ULONGEST len;
 
 
-         regcache_raw_read_unsigned (regcache, tdep->arg1,
 
-                                     &tmpulongest);
 
-         regcache_raw_read_unsigned (regcache, tdep->arg2, &len);
 
-         if (record_full_memory_query)
 
-           {
 
-             int q;
 
 
-             target_terminal_ours ();
 
-             q = yquery (_("\
 
- The next instruction is syscall munmap.\n\
 
- It will free the memory addr = 0x%s len = %u.\n\
 
- It will make record target cannot record some memory change.\n\
 
- Do you want to stop the program?"),
 
-                         OUTPUT_REG (tmpulongest, tdep->arg1), (int) len);
 
-             target_terminal_inferior ();
 
-             if (q)
 
-               return 1;
 
-           }
 
-       }
 
-       break;
 
 
-     case gdb_sys_truncate:
 
-     case gdb_sys_ftruncate:
 
-     case gdb_sys_fchmod:
 
-     case gdb_sys_fchown16:
 
-     case gdb_sys_getpriority:
 
-     case gdb_sys_setpriority:
 
-     case gdb_sys_ni_syscall98:
 
-       break;
 
 
-     case gdb_sys_statfs:
 
-     case gdb_sys_fstatfs:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_statfs))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_ioperm:
 
-       break;
 
 
-     case gdb_sys_socket:
 
-     case gdb_sys_sendto:
 
-     case gdb_sys_sendmsg:
 
-     case gdb_sys_shutdown:
 
-     case gdb_sys_bind:
 
-     case gdb_sys_connect:
 
-     case gdb_sys_listen:
 
-     case gdb_sys_setsockopt:
 
-       break;
 
 
-     case gdb_sys_accept:
 
-     case gdb_sys_getsockname:
 
-     case gdb_sys_getpeername:
 
-       {
 
-         ULONGEST len;
 
 
-         regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-         regcache_raw_read_unsigned (regcache, tdep->arg3, &len);
 
-         if (record_linux_sockaddr (regcache, tdep, tmpulongest, len))
 
-           return -1;
 
-       }
 
-       break;
 
 
-     case gdb_sys_recvfrom:
 
-       {
 
-         ULONGEST len;
 
 
-         regcache_raw_read_unsigned (regcache, tdep->arg4, &tmpulongest);
 
-         regcache_raw_read_unsigned (regcache, tdep->arg5, &len);
 
-         if (record_linux_sockaddr (regcache, tdep, tmpulongest, len))
 
-           return -1;
 
-       }
 
-       break;
 
 
-     case gdb_sys_recv:
 
-       {
 
-         ULONGEST size;
 
 
-         regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-         regcache_raw_read_unsigned (regcache, tdep->arg3, &size);
 
-         if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                            (int) size))
 
-           return -1;
 
-       }
 
-       break;
 
 
-     case gdb_sys_recvmsg:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_linux_msghdr (regcache, tdep, tmpulongest))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_socketpair:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg4, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_int))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_getsockopt:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg5, &tmpulongest);
 
-       if (tmpulongest)
 
-         {
 
-           ULONGEST optvalp;
 
-           gdb_byte *optlenp = alloca (tdep->size_int);
 
 
-           if (target_read_memory ((CORE_ADDR) tmpulongest, optlenp,
 
-                                   tdep->size_int))
 
-             {
 
-               if (record_debug)
 
-                 fprintf_unfiltered (gdb_stdlog,
 
-                                     "Process record: error reading "
 
-                                     "memory at addr = 0x%s "
 
-                                     "len = %d.\n",
 
-                                     OUTPUT_REG (tmpulongest, tdep->arg5),
 
-                                     tdep->size_int);
 
-               return -1;
 
-             }
 
-           regcache_raw_read_unsigned (regcache, tdep->arg4, &optvalp);
 
-           tmpint = (int) extract_signed_integer (optlenp, tdep->size_int,
 
-                                                  byte_order);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) optvalp, tmpint))
 
-             return -1;
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_int))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_socketcall:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       switch (tmpulongest)
 
-         {
 
-         case RECORD_SYS_SOCKET:
 
-         case RECORD_SYS_BIND:
 
-         case RECORD_SYS_CONNECT:
 
-         case RECORD_SYS_LISTEN:
 
-           break;
 
-         case RECORD_SYS_ACCEPT:
 
-         case RECORD_SYS_GETSOCKNAME:
 
-         case RECORD_SYS_GETPEERNAME:
 
-           {
 
-             regcache_raw_read_unsigned (regcache, tdep->arg2,
 
-                                         &tmpulongest);
 
-             if (tmpulongest)
 
-               {
 
-                 gdb_byte *a = alloca (tdep->size_ulong * 2);
 
-                 ULONGEST len;
 
 
-                 tmpulongest += tdep->size_ulong;
 
-                 if (target_read_memory ((CORE_ADDR) tmpulongest, a,
 
-                                         tdep->size_ulong * 2))
 
-                   {
 
-                     if (record_debug)
 
-                       fprintf_unfiltered (gdb_stdlog,
 
-                                           "Process record: error reading "
 
-                                           "memory at addr = 0x%s len = %d.\n",
 
-                                           OUTPUT_REG (tmpulongest, tdep->arg2),
 
-                                           tdep->size_ulong * 2);
 
-                     return -1;
 
-                   }
 
-                 tmpulongest = extract_unsigned_integer (a,
 
-                                                         tdep->size_ulong,
 
-                                                         byte_order);
 
-                 len = extract_unsigned_integer (a + tdep->size_ulong,
 
-                                                 tdep->size_ulong, byte_order);
 
-                 if (record_linux_sockaddr (regcache, tdep, tmpulongest, len))
 
-                   return -1;
 
-               }
 
-           }
 
-           break;
 
 
-         case RECORD_SYS_SOCKETPAIR:
 
-           {
 
-             gdb_byte *a = alloca (tdep->size_ulong);
 
 
-             regcache_raw_read_unsigned (regcache, tdep->arg2,
 
-                                         &tmpulongest);
 
-             if (tmpulongest)
 
-               {
 
-                 tmpulongest += tdep->size_ulong * 3;
 
-                 if (target_read_memory ((CORE_ADDR) tmpulongest, a,
 
-                                         tdep->size_ulong))
 
-                   {
 
-                     if (record_debug)
 
-                       fprintf_unfiltered (gdb_stdlog,
 
-                                           "Process record: error reading "
 
-                                           "memory at addr = 0x%s len = %d.\n",
 
-                                           OUTPUT_REG (tmpulongest, tdep->arg2),
 
-                                           tdep->size_ulong);
 
-                     return -1;
 
-                   }
 
-                 tmpaddr
 
-                   = (CORE_ADDR) extract_unsigned_integer (a, tdep->size_ulong,
 
-                                                           byte_order);
 
-                 if (record_full_arch_list_add_mem (tmpaddr, tdep->size_int))
 
-                   return -1;
 
-               }
 
-           }
 
-           break;
 
-         case RECORD_SYS_SEND:
 
-         case RECORD_SYS_SENDTO:
 
-           break;
 
-         case RECORD_SYS_RECVFROM:
 
-           regcache_raw_read_unsigned (regcache, tdep->arg2,
 
-                                       &tmpulongest);
 
-           if (tmpulongest)
 
-             {
 
-               gdb_byte *a = alloca (tdep->size_ulong * 2);
 
-               ULONGEST len;
 
 
-               tmpulongest += tdep->size_ulong * 4;
 
-               if (target_read_memory ((CORE_ADDR) tmpulongest, a,
 
-                                       tdep->size_ulong * 2))
 
-                 {
 
-                   if (record_debug)
 
-                     fprintf_unfiltered (gdb_stdlog,
 
-                                         "Process record: error reading "
 
-                                         "memory at addr = 0x%s len = %d.\n",
 
-                                         OUTPUT_REG (tmpulongest, tdep->arg2),
 
-                                         tdep->size_ulong * 2);
 
-                   return -1;
 
-                 }
 
-               tmpulongest = extract_unsigned_integer (a, tdep->size_ulong,
 
-                                                       byte_order);
 
-               len = extract_unsigned_integer (a + tdep->size_ulong,
 
-                                               tdep->size_ulong, byte_order);
 
-               if (record_linux_sockaddr (regcache, tdep, tmpulongest, len))
 
-                 return -1;
 
-             }
 
-         case RECORD_SYS_RECV:
 
-           regcache_raw_read_unsigned (regcache, tdep->arg2,
 
-                                       &tmpulongest);
 
-           if (tmpulongest)
 
-             {
 
-               gdb_byte *a = alloca (tdep->size_ulong * 2);
 
 
-               tmpulongest += tdep->size_ulong;
 
-               if (target_read_memory ((CORE_ADDR) tmpulongest, a,
 
-                                       tdep->size_ulong))
 
-                 {
 
-                   if (record_debug)
 
-                     fprintf_unfiltered (gdb_stdlog,
 
-                                         "Process record: error reading "
 
-                                         "memory at addr = 0x%s len = %d.\n",
 
-                                         OUTPUT_REG (tmpulongest, tdep->arg2),
 
-                                         tdep->size_ulong);
 
-                     return -1;
 
-                 }
 
-               tmpulongest = extract_unsigned_integer (a, tdep->size_ulong,
 
-                                                       byte_order);
 
-               if (tmpulongest)
 
-                 {
 
-                   a += tdep->size_ulong;
 
-                   tmpint = (int) extract_unsigned_integer (a, tdep->size_ulong,
 
-                                                            byte_order);
 
-                   if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                                      tmpint))
 
-                     return -1;
 
-                 }
 
-             }
 
-           break;
 
-         case RECORD_SYS_SHUTDOWN:
 
-         case RECORD_SYS_SETSOCKOPT:
 
-           break;
 
-         case RECORD_SYS_GETSOCKOPT:
 
-           {
 
-             gdb_byte *a = alloca (tdep->size_ulong * 2);
 
-             gdb_byte *av = alloca (tdep->size_int);
 
 
-             regcache_raw_read_unsigned (regcache, tdep->arg2,
 
-                                         &tmpulongest);
 
-             if (tmpulongest)
 
-               {
 
-                 tmpulongest += tdep->size_ulong * 3;
 
-                 if (target_read_memory ((CORE_ADDR) tmpulongest, a,
 
-                                         tdep->size_ulong * 2))
 
-                   {
 
-                     if (record_debug)
 
-                       fprintf_unfiltered (gdb_stdlog,
 
-                                           "Process record: error reading "
 
-                                           "memory at addr = 0x%s len = %d.\n",
 
-                                           OUTPUT_REG (tmpulongest, tdep->arg2),
 
-                                           tdep->size_ulong * 2);
 
-                     return -1;
 
-                   }
 
-                 tmpulongest = extract_unsigned_integer (a + tdep->size_ulong,
 
-                                                         tdep->size_ulong,
 
-                                                         byte_order);
 
-                 if (tmpulongest)
 
-                   {
 
-                     if (target_read_memory ((CORE_ADDR) tmpulongest, av,
 
-                                             tdep->size_int))
 
-                       {
 
-                         if (record_debug)
 
-                           fprintf_unfiltered (gdb_stdlog,
 
-                                               "Process record: error reading "
 
-                                               "memory at addr = 0x%s "
 
-                                               "len = %d.\n",
 
-                                               phex_nz (tmpulongest,
 
-                                                        tdep->size_ulong),
 
-                                               tdep->size_int);
 
-                         return -1;
 
-                       }
 
-                     tmpaddr
 
-                       = (CORE_ADDR) extract_unsigned_integer (a,
 
-                                                               tdep->size_ulong,
 
-                                                               byte_order);
 
-                     tmpint = (int) extract_unsigned_integer (av,
 
-                                                              tdep->size_int,
 
-                                                              byte_order);
 
-                     if (record_full_arch_list_add_mem (tmpaddr, tmpint))
 
-                       return -1;
 
-                     a += tdep->size_ulong;
 
-                     tmpaddr
 
-                       = (CORE_ADDR) extract_unsigned_integer (a,
 
-                                                               tdep->size_ulong,
 
-                                                               byte_order);
 
-                     if (record_full_arch_list_add_mem (tmpaddr,
 
-                                                        tdep->size_int))
 
-                       return -1;
 
-                   }
 
-               }
 
-           }
 
-           break;
 
-         case RECORD_SYS_SENDMSG:
 
-           break;
 
-         case RECORD_SYS_RECVMSG:
 
-           {
 
-             gdb_byte *a = alloca (tdep->size_ulong);
 
 
-             regcache_raw_read_unsigned (regcache, tdep->arg2,
 
-                                         &tmpulongest);
 
-             if (tmpulongest)
 
-               {
 
-                 tmpulongest += tdep->size_ulong;
 
-                 if (target_read_memory ((CORE_ADDR) tmpulongest, a,
 
-                                         tdep->size_ulong))
 
-                   {
 
-                     if (record_debug)
 
-                       fprintf_unfiltered (gdb_stdlog,
 
-                                           "Process record: error reading "
 
-                                           "memory at addr = 0x%s len = %d.\n",
 
-                                           OUTPUT_REG (tmpulongest, tdep->arg2),
 
-                                           tdep->size_ulong);
 
-                     return -1;
 
-                   }
 
-                 tmpulongest = extract_unsigned_integer (a, tdep->size_ulong,
 
-                                                         byte_order);
 
-                 if (record_linux_msghdr (regcache, tdep, tmpulongest))
 
-                   return -1;
 
-               }
 
-           }
 
-           break;
 
-         default:
 
-           printf_unfiltered (_("Process record and replay target "
 
-                                "doesn't support socketcall call 0x%s\n"),
 
-                              OUTPUT_REG (tmpulongest, tdep->arg1));
 
-           return -1;
 
-           break;
 
-         }
 
-       break;
 
 
-     case gdb_sys_syslog:
 
-       break;
 
 
-     case gdb_sys_setitimer:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_itimerval))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_getitimer:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_itimerval))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_newstat:
 
-     case gdb_sys_newlstat:
 
-     case gdb_sys_newfstat:
 
-     case gdb_sys_newfstatat:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_stat))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_uname:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_old_utsname))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_iopl:
 
-     case gdb_sys_vhangup:
 
-     case gdb_sys_ni_syscall112:
 
-     case gdb_sys_vm86old:
 
-       break;
 
 
-     case gdb_sys_wait4:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_int))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg4, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_rusage))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_swapoff:
 
-       break;
 
 
-     case gdb_sys_sysinfo:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_sysinfo))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_shmget:
 
-     case gdb_sys_semget:
 
-     case gdb_sys_semop:
 
-     case gdb_sys_msgget:
 
-       XXX
 
-     case gdb_sys_shmdt:
 
-     case gdb_sys_msgsnd:
 
-     case gdb_sys_semtimedop:
 
-       break;
 
 
-     case gdb_sys_shmat:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_ulong))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_shmctl:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_shmid_ds))
 
-         return -1;
 
-       break;
 
 
-       XXX
 
-       
 
 
-     case gdb_sys_msgrcv:
 
-       {
 
-         ULONGEST msgp;
 
-         LONGEST l;
 
 
-         regcache_raw_read_signed (regcache, tdep->arg3, &l);
 
-         regcache_raw_read_unsigned (regcache, tdep->arg2, &msgp);
 
-         tmpint = l + tdep->size_long;
 
-         if (record_full_arch_list_add_mem ((CORE_ADDR) msgp, tmpint))
 
-           return -1;
 
-       }
 
-       break;
 
 
-     case gdb_sys_msgctl:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_msqid_ds))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_ipc:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       tmpulongest &= 0xffff;
 
-       switch (tmpulongest)
 
-         {
 
-         case RECORD_SEMOP:
 
-         case RECORD_SEMGET:
 
-         case RECORD_SEMTIMEDOP:
 
-         case RECORD_MSGSND:
 
-         case RECORD_MSGGET:
 
-           XXX
 
-         case RECORD_SHMDT:
 
-         case RECORD_SHMGET:
 
-           break;
 
-         case RECORD_MSGRCV:
 
-           {
 
-             LONGEST second;
 
-             ULONGEST ptr;
 
 
-             regcache_raw_read_signed (regcache, tdep->arg3, &second);
 
-             regcache_raw_read_unsigned (regcache, tdep->arg5, &ptr);
 
-             tmpint = (int) second + tdep->size_long;
 
-             if (record_full_arch_list_add_mem ((CORE_ADDR) ptr, tmpint))
 
-               return -1;
 
-           }
 
-           break;
 
-         case RECORD_MSGCTL:
 
-           regcache_raw_read_unsigned (regcache, tdep->arg5,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_msqid_ds))
 
-             return -1;
 
-           break;
 
-         case RECORD_SHMAT:
 
-           regcache_raw_read_unsigned (regcache, tdep->arg4,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_ulong))
 
-             return -1;
 
-           break;
 
-         case RECORD_SHMCTL:
 
-           regcache_raw_read_unsigned (regcache, tdep->arg5,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_shmid_ds))
 
-             return -1;
 
-           break;
 
-         default:
 
-           XXX
 
-           printf_unfiltered (_("Process record and replay target doesn't "
 
-                                "support ipc number %s\n"),
 
-                              pulongest (tmpulongest));
 
-           break;
 
-         }
 
-       break;
 
 
-     case gdb_sys_fsync:
 
-     case gdb_sys_sigreturn:
 
-     case gdb_sys_clone:
 
-     case gdb_sys_setdomainname:
 
-       break;
 
 
-     case gdb_sys_newuname:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_new_utsname))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_modify_ldt:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (tmpulongest == 0 || tmpulongest == 2)
 
-         {
 
-           ULONGEST ptr, bytecount;
 
 
-           regcache_raw_read_unsigned (regcache, tdep->arg2, &ptr);
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3, &bytecount);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) ptr, (int) bytecount))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_adjtimex:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_timex))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_mprotect:
 
-       break;
 
 
-     case gdb_sys_sigprocmask:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_old_sigset_t))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_ni_syscall127:
 
-     case gdb_sys_init_module:
 
-     case gdb_sys_delete_module:
 
-     case gdb_sys_ni_syscall130:
 
-       break;
 
 
-     case gdb_sys_quotactl:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       switch (tmpulongest)
 
-         {
 
-         case RECORD_Q_GETFMT:
 
-           regcache_raw_read_unsigned (regcache, tdep->arg4,
 
-                                       &tmpulongest);
 
-           
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest, 4))
 
-             return -1;
 
-           break;
 
-         case RECORD_Q_GETINFO:
 
-           regcache_raw_read_unsigned (regcache, tdep->arg4,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_mem_dqinfo))
 
-             return -1;
 
-           break;
 
-         case RECORD_Q_GETQUOTA:
 
-           regcache_raw_read_unsigned (regcache, tdep->arg4,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_if_dqblk))
 
-             return -1;
 
-           break;
 
-         case RECORD_Q_XGETQSTAT:
 
-         case RECORD_Q_XGETQUOTA:
 
-           regcache_raw_read_unsigned (regcache, tdep->arg4,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_fs_quota_stat))
 
-             return -1;
 
-           break;
 
-         }
 
-       break;
 
 
-     case gdb_sys_getpgid:
 
-     case gdb_sys_fchdir:
 
-     case gdb_sys_bdflush:
 
-       break;
 
 
-     case gdb_sys_sysfs:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (tmpulongest == 2)
 
-         {
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3,
 
-                                       &tmpulongest);
 
-           XXX
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest, 10))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_personality:
 
-     case gdb_sys_ni_syscall137:
 
-     case gdb_sys_setfsuid16:
 
-     case gdb_sys_setfsgid16:
 
-       break;
 
 
-     case gdb_sys_llseek:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg4, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_loff_t))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_getdents:
 
-       {
 
-         ULONGEST count;
 
 
-         regcache_raw_read_unsigned (regcache, tdep->arg2,
 
-                                     &tmpulongest);
 
-         regcache_raw_read_unsigned (regcache, tdep->arg3, &count);
 
-         if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                            tdep->size_dirent * count))
 
-           return -1;
 
-       }
 
-       break;
 
 
-     case gdb_sys_select:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_fd_set))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_fd_set))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg4, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_fd_set))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg5, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_timeval))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_flock:
 
-     case gdb_sys_msync:
 
-       break;
 
 
-     case gdb_sys_readv:
 
-       {
 
-         ULONGEST vec, vlen;
 
 
-         regcache_raw_read_unsigned (regcache, tdep->arg2, &vec);
 
-         if (vec)
 
-           {
 
-             gdb_byte *iov = alloca (tdep->size_iovec);
 
 
-             regcache_raw_read_unsigned (regcache, tdep->arg3, &vlen);
 
-             for (tmpulongest = 0; tmpulongest < vlen; tmpulongest++)
 
-               {
 
-                 if (target_read_memory ((CORE_ADDR) vec, iov,
 
-                                         tdep->size_iovec))
 
-                   {
 
-                     if (record_debug)
 
-                       fprintf_unfiltered (gdb_stdlog,
 
-                                           "Process record: error reading "
 
-                                           "memory at addr = 0x%s len = %d.\n",
 
-                                           OUTPUT_REG (vec, tdep->arg2),
 
-                                           tdep->size_iovec);
 
-                     return -1;
 
-                   }
 
-                 tmpaddr
 
-                   = (CORE_ADDR) extract_unsigned_integer (iov,
 
-                                                           tdep->size_pointer,
 
-                                                           byte_order);
 
-                 tmpint
 
-                   = (int) extract_unsigned_integer (iov + tdep->size_pointer,
 
-                                                     tdep->size_size_t,
 
-                                                     byte_order);
 
-                 if (record_full_arch_list_add_mem (tmpaddr, tmpint))
 
-                   return -1;
 
-                 vec += tdep->size_iovec;
 
-               }
 
-           }
 
-       }
 
-       break;
 
 
-     case gdb_sys_writev:
 
-     case gdb_sys_getsid:
 
-     case gdb_sys_fdatasync:
 
-     case gdb_sys_sysctl:
 
-     case gdb_sys_mlock:
 
-     case gdb_sys_munlock:
 
-     case gdb_sys_mlockall:
 
-     case gdb_sys_munlockall:
 
-     case gdb_sys_sched_setparam:
 
-       break;
 
 
-     case gdb_sys_sched_getparam:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_int))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_sched_setscheduler:
 
-     case gdb_sys_sched_getscheduler:
 
-     case gdb_sys_sched_yield:
 
-     case gdb_sys_sched_get_priority_max:
 
-     case gdb_sys_sched_get_priority_min:
 
-       break;
 
 
-     case gdb_sys_sched_rr_get_interval:
 
-     case gdb_sys_nanosleep:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_timespec))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_mremap:
 
-     case gdb_sys_setresuid16:
 
-       break;
 
 
-     case gdb_sys_getresuid16:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_old_uid_t))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_old_uid_t))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_old_uid_t))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_vm86:
 
-     case gdb_sys_ni_syscall167:
 
-       break;
 
 
-     case gdb_sys_poll:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (tmpulongest)
 
-         {
 
-           ULONGEST nfds;
 
 
-           regcache_raw_read_unsigned (regcache, tdep->arg2, &nfds);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_pollfd * nfds))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_nfsservctl:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (tmpulongest == 7 || tmpulongest == 8)
 
-         {
 
-           int rsize;
 
 
-           if (tmpulongest == 7)
 
-             rsize = tdep->size_NFS_FHSIZE;
 
-           else
 
-             rsize = tdep->size_knfsd_fh;
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest, rsize))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_setresgid16:
 
-       break;
 
 
-     case gdb_sys_getresgid16:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_old_gid_t))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_old_gid_t))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_old_gid_t))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_prctl:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       switch (tmpulongest)
 
-         {
 
-         case 2:
 
-           regcache_raw_read_unsigned (regcache, tdep->arg2,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_int))
 
-             return -1;
 
-           break;
 
-         case 16:
 
-           regcache_raw_read_unsigned (regcache, tdep->arg2,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_TASK_COMM_LEN))
 
-             return -1;
 
-           break;
 
-         }
 
-       break;
 
 
-     case gdb_sys_rt_sigreturn:
 
-       break;
 
 
-     case gdb_sys_rt_sigaction:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_sigaction))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_rt_sigprocmask:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_sigset_t))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_rt_sigpending:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (tmpulongest)
 
-         {
 
-           ULONGEST sigsetsize;
 
 
-           regcache_raw_read_unsigned (regcache, tdep->arg2,&sigsetsize);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              (int) sigsetsize))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_rt_sigtimedwait:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_siginfo_t))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_rt_sigqueueinfo:
 
-     case gdb_sys_rt_sigsuspend:
 
-       break;
 
 
-     case gdb_sys_pread64:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (tmpulongest)
 
-         {
 
-           ULONGEST count;
 
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3,&count);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              (int) count))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_pwrite64:
 
-     case gdb_sys_chown16:
 
-       break;
 
 
-     case gdb_sys_getcwd:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (tmpulongest)
 
-         {
 
-           ULONGEST size;
 
 
-           regcache_raw_read_unsigned (regcache, tdep->arg2, &size);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              (int) size))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_capget:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_cap_user_data_t))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_capset:
 
-       break;
 
 
-     case gdb_sys_sigaltstack:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_stack_t))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_sendfile:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_off_t))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_ni_syscall188:
 
-     case gdb_sys_ni_syscall189:
 
-     case gdb_sys_vfork:
 
-       break;
 
 
-     case gdb_sys_getrlimit:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_rlimit))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_mmap2:
 
-       break;
 
 
-     case gdb_sys_truncate64:
 
-     case gdb_sys_ftruncate64:
 
-       break;
 
 
-     case gdb_sys_stat64:
 
-     case gdb_sys_lstat64:
 
-     case gdb_sys_fstat64:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_stat64))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_lchown:
 
-     case gdb_sys_getuid:
 
-     case gdb_sys_getgid:
 
-     case gdb_sys_geteuid:
 
-     case gdb_sys_getegid:
 
-     case gdb_sys_setreuid:
 
-     case gdb_sys_setregid:
 
-       break;
 
 
-     case gdb_sys_getgroups:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (tmpulongest)
 
-         {
 
-           ULONGEST gidsetsize;
 
 
-           regcache_raw_read_unsigned (regcache, tdep->arg1,
 
-                                       &gidsetsize);
 
-           tmpint = tdep->size_gid_t * (int) gidsetsize;
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest, tmpint))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_setgroups:
 
-     case gdb_sys_fchown:
 
-     case gdb_sys_setresuid:
 
-       break;
 
 
-     case gdb_sys_getresuid:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_uid_t))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_uid_t))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_uid_t))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_setresgid:
 
-       break;
 
 
-     case gdb_sys_getresgid:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_gid_t))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_gid_t))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_gid_t))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_chown:
 
-     case gdb_sys_setuid:
 
-     case gdb_sys_setgid:
 
-     case gdb_sys_setfsuid:
 
-     case gdb_sys_setfsgid:
 
-     case gdb_sys_pivot_root:
 
-       break;
 
 
-     case gdb_sys_mincore:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_PAGE_SIZE))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_madvise:
 
-       break;
 
 
-     case gdb_sys_getdents64:
 
-       {
 
-         ULONGEST count;
 
 
-         regcache_raw_read_unsigned (regcache, tdep->arg2,
 
-                                     &tmpulongest);
 
-         regcache_raw_read_unsigned (regcache, tdep->arg3, &count);
 
-         if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                            tdep->size_dirent64 * count))
 
-           return -1;
 
-       }
 
-       break;
 
 
-     case gdb_sys_fcntl64:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (tmpulongest == tdep->fcntl_F_GETLK64)
 
-         {
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3,
 
-                                       &tmpulongest);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_flock64))
 
-             return -1;
 
-         }
 
-       else if (tmpulongest != tdep->fcntl_F_SETLK64
 
-                && tmpulongest != tdep->fcntl_F_SETLKW64)
 
-         {
 
-           goto sys_fcntl;
 
-         }
 
-       break;
 
 
-     case gdb_sys_ni_syscall222:
 
-     case gdb_sys_ni_syscall223:
 
-     case gdb_sys_gettid:
 
-     case gdb_sys_readahead:
 
-     case gdb_sys_setxattr:
 
-     case gdb_sys_lsetxattr:
 
-     case gdb_sys_fsetxattr:
 
-       break;
 
 
-     case gdb_sys_getxattr:
 
-     case gdb_sys_lgetxattr:
 
-     case gdb_sys_fgetxattr:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (tmpulongest)
 
-         {
 
-           ULONGEST size;
 
 
-           regcache_raw_read_unsigned (regcache, tdep->arg4, &size);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              (int) size))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_listxattr:
 
-     case gdb_sys_llistxattr:
 
-     case gdb_sys_flistxattr:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (tmpulongest)
 
-         {
 
-           ULONGEST size;
 
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3, &size);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              (int) size))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_removexattr:
 
-     case gdb_sys_lremovexattr:
 
-     case gdb_sys_fremovexattr:
 
-     case gdb_sys_tkill:
 
-       break;
 
 
-     case gdb_sys_sendfile64:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_loff_t))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_futex:
 
-     case gdb_sys_sched_setaffinity:
 
-       break;
 
 
-     case gdb_sys_sched_getaffinity:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (tmpulongest)
 
-         {
 
-           ULONGEST len;
 
 
-           regcache_raw_read_unsigned (regcache, tdep->arg2, &len);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              (int) len))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_set_thread_area:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_int))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_get_thread_area:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_user_desc))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_io_setup:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_long))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_io_destroy:
 
-       break;
 
 
-     case gdb_sys_io_getevents:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg4, &tmpulongest);
 
-       if (tmpulongest)
 
-         {
 
-           ULONGEST nr;
 
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3, &nr);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              nr * tdep->size_io_event))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_io_submit:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (tmpulongest)
 
-         {
 
-           ULONGEST nr, i;
 
-           gdb_byte *iocbp;
 
 
-           regcache_raw_read_unsigned (regcache, tdep->arg2, &nr);
 
-           iocbp = alloca (nr * tdep->size_pointer);
 
-           if (target_read_memory ((CORE_ADDR) tmpulongest, iocbp,
 
-                                   nr * tdep->size_pointer))
 
-             {
 
-               if (record_debug)
 
-                 fprintf_unfiltered (gdb_stdlog,
 
-                                     "Process record: error reading memory "
 
-                                     "at addr = 0x%s len = %u.\n",
 
-                                     OUTPUT_REG (tmpulongest, tdep->arg2),
 
-                                     (int) (nr * tdep->size_pointer));
 
-               return -1;
 
-             }
 
-           for (i = 0; i < nr; i++)
 
-             {
 
-               tmpaddr
 
-                 = (CORE_ADDR) extract_unsigned_integer (iocbp,
 
-                                                         tdep->size_pointer,
 
-                                                         byte_order);
 
-               if (record_full_arch_list_add_mem (tmpaddr, tdep->size_iocb))
 
-                 return -1;
 
-               iocbp += tdep->size_pointer;
 
-             }
 
-         }
 
-       break;
 
 
-     case gdb_sys_io_cancel:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_io_event))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_fadvise64:
 
-     case gdb_sys_ni_syscall251:
 
-       break;
 
 
-     case gdb_sys_exit_group:
 
-       {
 
-         int q;
 
 
-         target_terminal_ours ();
 
-         q = yquery (_("The next instruction is syscall exit_group.  "
 
-                       "It will make the program exit.  "
 
-                       "Do you want to stop the program?"));
 
-         target_terminal_inferior ();
 
-         if (q)
 
-           return 1;
 
-       }
 
-       break;
 
 
-     case gdb_sys_lookup_dcookie:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (tmpulongest)
 
-         {
 
-           ULONGEST len;
 
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3, &len);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              (int) len))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_epoll_create:
 
-     case gdb_sys_epoll_ctl:
 
-       break;
 
 
-     case gdb_sys_epoll_wait:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (tmpulongest)
 
-         {
 
-           ULONGEST maxevents;
 
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3, &maxevents);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              (maxevents
 
-                                               * tdep->size_epoll_event)))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_remap_file_pages:
 
-     case gdb_sys_set_tid_address:
 
-       break;
 
 
-     case gdb_sys_timer_create:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_int))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_timer_settime:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg4, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_itimerspec))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_timer_gettime:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_itimerspec))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_timer_getoverrun:
 
-     case gdb_sys_timer_delete:
 
-     case gdb_sys_clock_settime:
 
-       break;
 
 
-     case gdb_sys_clock_gettime:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_timespec))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_clock_getres:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_timespec))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_clock_nanosleep:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg4, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_timespec))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_statfs64:
 
-     case gdb_sys_fstatfs64:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_statfs64))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_tgkill:
 
-     case gdb_sys_utimes:
 
-     case gdb_sys_fadvise64_64:
 
-     case gdb_sys_ni_syscall273:
 
-     case gdb_sys_mbind:
 
-       break;
 
 
-     case gdb_sys_get_mempolicy:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_int))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (tmpulongest)
 
-         {
 
-           ULONGEST maxnode;
 
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3, &maxnode);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              maxnode * tdep->size_long))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_set_mempolicy:
 
-     case gdb_sys_mq_open:
 
-     case gdb_sys_mq_unlink:
 
-     case gdb_sys_mq_timedsend:
 
-       break;
 
 
-     case gdb_sys_mq_timedreceive:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (tmpulongest)
 
-         {
 
-           ULONGEST msg_len;
 
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3, &msg_len);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              (int) msg_len))
 
-             return -1;
 
-         }
 
-       regcache_raw_read_unsigned (regcache, tdep->arg4, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_int))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_mq_notify:
 
-       break;
 
 
-     case gdb_sys_mq_getsetattr:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_mq_attr))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_kexec_load:
 
-       break;
 
 
-     case gdb_sys_waitid:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_siginfo))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg5, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_rusage))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_ni_syscall285:
 
-     case gdb_sys_add_key:
 
-     case gdb_sys_request_key:
 
-       break;
 
 
-     case gdb_sys_keyctl:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (tmpulongest == 6 || tmpulongest == 11)
 
-         {
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3,
 
-                                       &tmpulongest);
 
-           if (tmpulongest)
 
-             {
 
-               ULONGEST buflen;
 
 
-               regcache_raw_read_unsigned (regcache, tdep->arg4, &buflen);
 
-               if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                                  (int) buflen))
 
-                 return -1;
 
-             }
 
-         }
 
-       break;
 
 
-     case gdb_sys_ioprio_set:
 
-     case gdb_sys_ioprio_get:
 
-     case gdb_sys_inotify_init:
 
-     case gdb_sys_inotify_add_watch:
 
-     case gdb_sys_inotify_rm_watch:
 
-     case gdb_sys_migrate_pages:
 
-     case gdb_sys_openat:
 
-     case gdb_sys_mkdirat:
 
-     case gdb_sys_mknodat:
 
-     case gdb_sys_fchownat:
 
-     case gdb_sys_futimesat:
 
-       break;
 
 
-     case gdb_sys_fstatat64:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_stat64))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_unlinkat:
 
-     case gdb_sys_renameat:
 
-     case gdb_sys_linkat:
 
-     case gdb_sys_symlinkat:
 
-       break;
 
 
-     case gdb_sys_readlinkat:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (tmpulongest)
 
-         {
 
-           ULONGEST bufsiz;
 
 
-           regcache_raw_read_unsigned (regcache, tdep->arg4, &bufsiz);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              (int) bufsiz))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_fchmodat:
 
-     case gdb_sys_faccessat:
 
-       break;
 
 
-     case gdb_sys_pselect6:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_fd_set))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_fd_set))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg4, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_fd_set))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg5, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_timespec))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_ppoll:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (tmpulongest)
 
-         {
 
-           ULONGEST nfds;
 
 
-           regcache_raw_read_unsigned (regcache, tdep->arg2, &nfds);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              tdep->size_pollfd * nfds))
 
-             return -1;
 
-         }
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_timespec))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_unshare:
 
-     case gdb_sys_set_robust_list:
 
-       break;
 
 
-     case gdb_sys_get_robust_list:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_int))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_int))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_splice:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_loff_t))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg4, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_loff_t))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_sync_file_range:
 
-     case gdb_sys_tee:
 
-     case gdb_sys_vmsplice:
 
-       break;
 
 
-     case gdb_sys_move_pages:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg5, &tmpulongest);
 
-       if (tmpulongest)
 
-         {
 
-           ULONGEST nr_pages;
 
 
-           regcache_raw_read_unsigned (regcache, tdep->arg2, &nr_pages);
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                              nr_pages * tdep->size_int))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     case gdb_sys_getcpu:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg1, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_int))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_int))
 
-         return -1;
 
-       regcache_raw_read_unsigned (regcache, tdep->arg3, &tmpulongest);
 
-       if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest,
 
-                                          tdep->size_ulong * 2))
 
-         return -1;
 
-       break;
 
 
-     case gdb_sys_epoll_pwait:
 
-       regcache_raw_read_unsigned (regcache, tdep->arg2, &tmpulongest);
 
-       if (tmpulongest)
 
-         {
 
-           ULONGEST maxevents;
 
 
-           regcache_raw_read_unsigned (regcache, tdep->arg3, &maxevents);
 
-           tmpint = (int) maxevents * tdep->size_epoll_event;
 
-           if (record_full_arch_list_add_mem ((CORE_ADDR) tmpulongest, tmpint))
 
-             return -1;
 
-         }
 
-       break;
 
 
-     default:
 
-       printf_unfiltered (_("Process record and replay target doesn't "
 
-                            "support syscall number %d\n"), syscall);
 
-       return -1;
 
-       break;
 
-     }
 
 
-   return 0;
 
- }