From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark Kettenis To: gdb-patches@sources.redhat.com Subject: [PATCH] Use `unsigned long' for Linux/x86 debug registers Date: Sun, 01 Apr 2001 03:59:00 -0000 Message-id: <200104011050.f31Aocd00404@delius.kettenis.local> X-SW-Source: 2001-04/msg00003.html It just occurred to me that Linux/x86 should really be using `unsigned long' instead of `long' as the type for debug register values. Checked in. Mark Index: ChangeLog from Mark Kettenis * i386-linux-nat.c (i386_linux_dr_get): Change type of return value to `unsigned long'. Change type of `value' to `unsigned long'. (i386_linux_dr_set): Change type of second argument to `unsigned long'. (i386_linux_dr_set_control): Change type of first argument to `unsigned long'. (i386_linux_dr_get_status): Change type of return value to unsigned long. * config/i386/nm-linux.h (i386_linux_dr_set_control, i386_linux_dr_get_status): Adjust prototypes accordingly. Index: i386-linux-nat.c =================================================================== RCS file: /cvs/src/src/gdb/i386-linux-nat.c,v retrieving revision 1.25 diff -u -p -r1.25 i386-linux-nat.c --- i386-linux-nat.c 2001/03/28 08:35:14 1.25 +++ i386-linux-nat.c 2001/04/01 10:47:28 @@ -701,11 +701,11 @@ store_inferior_registers (int regno) } -static long +static unsigned long i386_linux_dr_get (int regnum) { int tid; - long value; + unsigned long value; /* FIXME: kettenis/2001-01-29: It's not clear what we should do with multi-threaded processes here. For now, pretend there is just @@ -731,7 +731,7 @@ i386_linux_dr_get (int regnum) } static void -i386_linux_dr_set (int regnum, long value) +i386_linux_dr_set (int regnum, unsigned long value) { int tid; @@ -748,7 +748,7 @@ i386_linux_dr_set (int regnum, long valu } void -i386_linux_dr_set_control (long control) +i386_linux_dr_set_control (unsigned long control) { i386_linux_dr_set (DR_CONTROL, control); } @@ -769,7 +769,7 @@ i386_linux_dr_reset_addr (int regnum) i386_linux_dr_set (DR_FIRSTADDR + regnum, 0L); } -long +unsigned long i386_linux_dr_get_status (void) { return i386_linux_dr_get (DR_STATUS); @@ -916,7 +916,7 @@ child_resume (int pid, int step, enum ta CORE_ADDR sp = read_register (SP_REGNUM); CORE_ADDR addr = sp; unsigned long int eflags; - + if (syscall == SYS_rt_sigreturn) addr = read_memory_integer (sp + 8, 4) + 20; Index: config/i386/nm-linux.h =================================================================== RCS file: /cvs/src/src/gdb/config/i386/nm-linux.h,v retrieving revision 1.9 diff -u -p -r1.9 nm-linux.h --- config/i386/nm-linux.h 2001/03/21 21:22:49 1.9 +++ config/i386/nm-linux.h 2001/04/01 10:47:29 @@ -43,7 +43,7 @@ extern CORE_ADDR register_u_addr (CORE_A /* Provide access to the i386 hardware debugging registers. */ -extern void i386_linux_dr_set_control (long control); +extern void i386_linux_dr_set_control (unsigned long control); #define I386_DR_LOW_SET_CONTROL(control) \ i386_linux_dr_set_control (control) @@ -55,7 +55,7 @@ extern void i386_linux_dr_reset_addr (in #define I386_DR_LOW_RESET_ADDR(regnum) \ i386_linux_dr_reset_addr (regnum) -extern long i386_linux_dr_get_status (void); +extern unsigned long i386_linux_dr_get_status (void); #define I386_DR_LOW_GET_STATUS() \ i386_linux_dr_get_status ()