* nm-hppab.h (KERNEL_U_ADDR): Define.
authorJeff Law <law@redhat.com>
Mon, 18 Apr 1994 17:18:12 +0000 (17:18 +0000)
committerJeff Law <law@redhat.com>
Mon, 18 Apr 1994 17:18:12 +0000 (17:18 +0000)
        (FIVE_ARG_PTRACE): Likewise.
        (CANNOT_STORE_REGISTER): Likewise.
        * nm-hppah.h (KERNEL_U_ADDR): Define.
        (FIVE_ARG_PTRACE): Likewise.
        (CANNOT_STORE_REGISTER): Likewise.
        (NEED_TEXT_START_END): Likewise.

        * tm-hppah.h (NEED_TEXT_START_END): Delete definition.
        * xm-hppah.h (KERNEL_U_ADDR): Delete definition.
        (FIVE_ARG_PTRACE): Likewise.
        * xm-hppab.h (KERNEL_U_ADDR): Delete definition.
        (FIVE_ARG_PTRACE): Likewise.

        * hppa-tdep.c (read_unwind_info): Make static.
        (restore_pc_queue): Indirect through the target vector to
        reload the register state.

gdb/config/pa/nm-hppab.h
gdb/config/pa/nm-hppah.h
gdb/config/pa/xm-hppab.h
gdb/config/pa/xm-hppah.h

index c14cb25556077e3712fcc1fec0c393cdd42198ac..8b948d23b4cc3728224d56f6820bbaddf004d58e 100644 (file)
@@ -19,6 +19,8 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #define U_REGS_OFFSET 0
 
+#define KERNEL_U_ADDR 0
+
 /* What a coincidence! */
 #define REGISTER_U_ADDR(addr, blockend, regno)                         \
 { addr = (int)(blockend) + REGISTER_BYTE (regno);}
@@ -27,6 +29,25 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #define        PTRACE_ARG3_TYPE caddr_t
 
+/* HPUX 8.0, in its infinite wisdom, has chosen to prototype ptrace
+   with five arguments, so programs written for normal ptrace lose.  */
+#define FIVE_ARG_PTRACE
+
+
+/* This macro defines the register numbers (from REGISTER_NAMES) that
+   are effectively unavailable to the user through ptrace().  It allows
+   us to include the whole register set in REGISTER_NAMES (inorder to
+   better support remote debugging).  If it is used in
+   fetch/store_inferior_registers() gdb will not complain about I/O errors
+   on fetching these registers.  If all registers in REGISTER_NAMES
+   are available, then return false (0).  */
+
+#define CANNOT_STORE_REGISTER(regno)            \
+                   ((regno) == 0) ||     \
+                   ((regno) == PCSQ_HEAD_REGNUM) || \
+                   ((regno) >= PCSQ_TAIL_REGNUM && (regno) < IPSW_REGNUM) ||  \
+                   ((regno) > IPSW_REGNUM && (regno) < FP4_REGNUM)
+
 /* fetch_inferior_registers is in hppab-nat.c.  */
 #define FETCH_INFERIOR_REGISTERS
 
index 6a465d771a71c62f87c11948d40da89a455aabab..fdbc17eb4c77c2e5ba948d8155db9b93a2053d21 100644 (file)
@@ -19,10 +19,35 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #define U_REGS_OFFSET 0
 
+#define KERNEL_U_ADDR 0
+
 /* What a coincidence! */
 #define REGISTER_U_ADDR(addr, blockend, regno)                         \
 { addr = (int)(blockend) + REGISTER_BYTE (regno);}
 
+/* HPUX 8.0, in its infinite wisdom, has chosen to prototype ptrace
+   with five arguments, so programs written for normal ptrace lose.  */
+#define FIVE_ARG_PTRACE
+
+/* We need to figure out where the text region is so that we use the
+   appropriate ptrace operator to manipulate text.  Simply reading/writing
+   user space will crap out HPUX.  */
+#define NEED_TEXT_START_END
+
+/* This macro defines the register numbers (from REGISTER_NAMES) that
+   are effectively unavailable to the user through ptrace().  It allows
+   us to include the whole register set in REGISTER_NAMES (inorder to
+   better support remote debugging).  If it is used in
+   fetch/store_inferior_registers() gdb will not complain about I/O errors
+   on fetching these registers.  If all registers in REGISTER_NAMES
+   are available, then return false (0).  */
+
+#define CANNOT_STORE_REGISTER(regno)            \
+                   ((regno) == 0) ||     \
+                   ((regno) == PCSQ_HEAD_REGNUM) || \
+                   ((regno) >= PCSQ_TAIL_REGNUM && (regno) < IPSW_REGNUM) ||  \
+                   ((regno) > IPSW_REGNUM && (regno) < FP4_REGNUM)
+
 /* fetch_inferior_registers is in hppah-nat.c.  */
 #define FETCH_INFERIOR_REGISTERS
 
index 13d1c1d1321990b176667eac21ba41246fc8f8f1..21cefd23728bc63b07ee8e0b8208d74e22b54b6b 100644 (file)
@@ -31,16 +31,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #undef  INT_MIN
 #define INT_MIN         0x80000000
 
-/* HPUX 8.0, in its infinite wisdom, has chosen to prototype ptrace
-   with five arguments, so programs written for normal ptrace lose.
-
-   Idiots.
-
-   (They should have just made it varadic).  */
-#define FIVE_ARG_PTRACE
-
-#define KERNEL_U_ADDR 0
-
 #ifndef SEEK_SET
 #  define SEEK_SET    0                /* Set file pointer to "offset" */
 #  define SEEK_CUR    1                /* Set file pointer to current plus "offset" */
index bd452adcf04a8f114722b1a11a6596e633a6df12..64e75244a94c7c624f9b449300df726be5d7b03c 100644 (file)
@@ -30,14 +30,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 #undef  INT_MIN
 #define INT_MIN         0x80000000
 
-/* HPUX 8.0, in its infinite wisdom, has chosen to prototype ptrace
-   with five arguments, so programs written for normal ptrace lose.
-
-   Idiots.
-
-   (They should have just made it varadic).  */
-#define FIVE_ARG_PTRACE
-
 #define USG
 
 #ifndef __STDC__
@@ -47,8 +39,6 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #define HAVE_TERMIOS
 
-#define KERNEL_U_ADDR 0
-
 /* HP uses non-ANSI definitions, but with void * results.  */
 #define        MEM_FNS_DECLARED        /* Some non-ANSI use void *, not char *.  */
 extern void *