X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fm88k-nat.c;h=b631cda2735b24b6c43be601fcfcaeedb6114869;hb=dbbd9c57ff004955375f214b66a29cd0abf101fd;hp=ed9dfffc306e29e94eb0dc2d6b5141e20e6a9c37;hpb=ed288bb597072176e84fc8279707a3f2f475779b;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/m88k-nat.c b/gdb/m88k-nat.c index ed9dfffc30..b631cda273 100644 --- a/gdb/m88k-nat.c +++ b/gdb/m88k-nat.c @@ -1,5 +1,6 @@ /* Native-dependent Motorola 88xxx support for GDB, the GNU Debugger. - Copyright 1988, 1990, 1991, 1992 Free Software Foundation, Inc. + Copyright 1988, 1990, 1991, 1992, 1993, 1995, 1999, 2000, 2001 + Free Software Foundation, Inc. This file is part of GDB. @@ -21,6 +22,7 @@ #include "defs.h" #include "frame.h" #include "inferior.h" +#include "regcache.h" #include #include @@ -62,8 +64,7 @@ extern jmp_buf stack_jmp; extern int errno; void -fetch_inferior_registers (regno) - int regno; /* Original value discarded */ +fetch_inferior_registers (int regno) { register unsigned int regaddr; char buf[MAX_REGISTER_RAW_SIZE]; @@ -75,7 +76,7 @@ fetch_inferior_registers (regno) offset = (char *) &u.pt_r0 - (char *) &u; regaddr = offset; /* byte offset to r0; */ -/* offset = ptrace (3, inferior_pid, (PTRACE_ARG3_TYPE) offset, 0) - KERNEL_U_ADDR; */ +/* offset = ptrace (3, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) offset, 0) - KERNEL_U_ADDR; */ for (regno = 0; regno < NUM_REGS; regno++) { /*regaddr = register_addr (regno, offset); */ @@ -83,20 +84,20 @@ fetch_inferior_registers (regno) for (i = 0; i < REGISTER_RAW_SIZE (regno); i += sizeof (int)) { - *(int *) &buf[i] = ptrace (3, inferior_pid, + *(int *) &buf[i] = ptrace (3, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) regaddr, 0); regaddr += sizeof (int); } supply_register (regno, buf); } /* now load up registers 36 - 38; special pc registers */ - *(int *) &buf[0] = ptrace (3, inferior_pid, + *(int *) &buf[0] = ptrace (3, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) SXIP_OFFSET, 0); supply_register (SXIP_REGNUM, buf); - *(int *) &buf[0] = ptrace (3, inferior_pid, + *(int *) &buf[0] = ptrace (3, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) SNIP_OFFSET, 0); supply_register (SNIP_REGNUM, buf); - *(int *) &buf[0] = ptrace (3, inferior_pid, + *(int *) &buf[0] = ptrace (3, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) SFIP_OFFSET, 0); supply_register (SFIP_REGNUM, buf); } @@ -106,8 +107,7 @@ fetch_inferior_registers (regno) Otherwise, REGNO specifies which register (so we can save time). */ void -store_inferior_registers (regno) - int regno; +store_inferior_registers (int regno) { register unsigned int regaddr; char buf[80]; @@ -128,7 +128,7 @@ store_inferior_registers (regno) { regaddr = offset + regno * sizeof (int); errno = 0; - ptrace (6, inferior_pid, + ptrace (6, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) regaddr, read_register (regno)); if (errno != 0) { @@ -137,13 +137,13 @@ store_inferior_registers (regno) } } else if (regno == SXIP_REGNUM) - ptrace (6, inferior_pid, + ptrace (6, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) SXIP_OFFSET, read_register (regno)); else if (regno == SNIP_REGNUM) - ptrace (6, inferior_pid, + ptrace (6, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) SNIP_OFFSET, read_register (regno)); else if (regno == SFIP_REGNUM) - ptrace (6, inferior_pid, + ptrace (6, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) SFIP_OFFSET, read_register (regno)); else printf_unfiltered ("Bad register number for store_inferior routine\n"); @@ -155,7 +155,7 @@ store_inferior_registers (regno) /* regaddr = register_addr (regno, offset); */ errno = 0; regaddr = offset + regno * sizeof (int); - ptrace (6, inferior_pid, + ptrace (6, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) regaddr, read_register (regno)); if (errno != 0) { @@ -163,18 +163,18 @@ store_inferior_registers (regno) perror_with_name (buf); } } - ptrace (6, inferior_pid, + ptrace (6, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) SXIP_OFFSET, read_register (SXIP_REGNUM)); - ptrace (6, inferior_pid, + ptrace (6, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) SNIP_OFFSET, read_register (SNIP_REGNUM)); - ptrace (6, inferior_pid, + ptrace (6, PIDGET (inferior_ptid), (PTRACE_ARG3_TYPE) SFIP_OFFSET, read_register (SFIP_REGNUM)); } } /* blockend is the address of the end of the user structure */ -m88k_register_u_addr (blockend, regnum) +m88k_register_u_addr (int blockend, int regnum) { struct USER u; int ustart = blockend - sizeof (struct USER); @@ -239,13 +239,15 @@ m88k_register_u_addr (blockend, regnum) #include +/* Prototypes for supply_gregset etc. */ +#include "gregset.h" + /* Given a pointer to a general register set in /proc format (gregset_t *), unpack the register contents and supply them as gdb's idea of the current register values. */ void -supply_gregset (gregsetp) - gregset_t *gregsetp; +supply_gregset (gregset_t *gregsetp) { register int regi; register greg_t *regp = (greg_t *) gregsetp; @@ -262,9 +264,7 @@ supply_gregset (gregsetp) } void -fill_gregset (gregsetp, regno) - gregset_t *gregsetp; - int regno; +fill_gregset (gregset_t *gregsetp, int regno) { int regi; register greg_t *regp = (greg_t *) gregsetp;