From: Gary Benson Date: Mon, 16 Jun 2014 14:19:21 +0000 (+0100) Subject: Move macros from i386-{nat,low}.c to i386-{nat,low}.h X-Git-Url: http://git.efficios.com/?a=commitdiff_plain;h=5171def394398d2a3cc6583747e2f19602f0e1da;p=deliverable%2Fbinutils-gdb.git Move macros from i386-{nat,low}.c to i386-{nat,low}.h This commit moves macros required by the soon-to-be-created nat/i386-dregs.c into i386-{nat,low}.h. --- diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog index a21dc7d710..6e5f07f2a1 100644 --- a/gdb/gdbserver/ChangeLog +++ b/gdb/gdbserver/ChangeLog @@ -1,5 +1,14 @@ 2014-06-18 Gary Benson + * i386-low.h (i386_dr_low_can_set_addr): New macro. + (i386_dr_low_can_set_control): Likewise. + (i386_get_debug_register_length): Likewise. + * i386-low.c (i386_dr_low_can_set_addr): Now in i386-low.h. + (i386_dr_low_can_set_control): Likewise. + (i386_get_debug_register_length): Likewise. + +2014-06-17 Gary Benson + * i386-low.h (i386-dregs.h): New include. (DR_FIRSTADDR): Now in i386-dregs.h. (DR_LASTADDR): Likewise. diff --git a/gdb/gdbserver/i386-low.c b/gdb/gdbserver/i386-low.c index bd256944c5..5333819809 100644 --- a/gdb/gdbserver/i386-low.c +++ b/gdb/gdbserver/i386-low.c @@ -32,13 +32,6 @@ The functions below implement debug registers sharing by reference counts, and allow to watch regions up to 16 bytes long. */ -#define i386_dr_low_can_set_addr() 1 -#define i386_dr_low_can_set_control() 1 - -/* Debug register size, in bytes. */ -/* NOTE: sizeof (long) == 4 on win64. */ -#define i386_get_debug_register_length() (sizeof (void *)) - /* Support for 8-byte wide hw watchpoints. */ #define TARGET_HAS_DR_LEN_8 (i386_get_debug_register_length () == 8) diff --git a/gdb/gdbserver/i386-low.h b/gdb/gdbserver/i386-low.h index 71f7c32764..bad03b9bbc 100644 --- a/gdb/gdbserver/i386-low.h +++ b/gdb/gdbserver/i386-low.h @@ -38,6 +38,9 @@ extern void i386_low_init_dregs (struct i386_debug_reg_state *state); status (DR6) register. */ +/* Can we update the inferior's debug registers? */ +#define i386_dr_low_can_set_addr() 1 + /* Update the inferior's debug register REGNUM from STATE. */ extern void i386_dr_low_set_addr (const struct i386_debug_reg_state *state, int regnum); @@ -45,6 +48,9 @@ extern void i386_dr_low_set_addr (const struct i386_debug_reg_state *state, /* Return the inferior's debug register REGNUM. */ extern CORE_ADDR i386_dr_low_get_addr (int regnum); +/* Can we update the inferior's DR7 control register? */ +#define i386_dr_low_can_set_control() 1 + /* Update the inferior's DR7 debug control register from STATE. */ extern void i386_dr_low_set_control (const struct i386_debug_reg_state *state); @@ -53,3 +59,7 @@ extern unsigned i386_dr_low_get_control (void); /* Return the value of the inferior's DR6 debug status register. */ extern unsigned i386_dr_low_get_status (void); + +/* Return the debug register size, in bytes. */ +/* Note that sizeof (long) == 4 on win64. */ +#define i386_get_debug_register_length() (sizeof (void *)) diff --git a/gdb/i386-nat.c b/gdb/i386-nat.c index 1dfa9ee757..1f7b70c794 100644 --- a/gdb/i386-nat.c +++ b/gdb/i386-nat.c @@ -47,23 +47,6 @@ static int debug_hw_points; /* Low-level function vector. */ struct i386_dr_low_type i386_dr_low; -#define i386_dr_low_can_set_addr() (i386_dr_low.set_addr != NULL) -#define i386_dr_low_can_set_control() (i386_dr_low.set_control != NULL) - -#define i386_dr_low_set_addr(new_state, i) \ - (i386_dr_low.set_addr ((i), (new_state)->dr_mirror[(i)])) - -#define i386_dr_low_set_control(new_state) \ - (i386_dr_low.set_control ((new_state)->dr_control_mirror)) - -#define i386_dr_low_get_addr(i) (i386_dr_low.get_addr ((i))) -#define i386_dr_low_get_status() (i386_dr_low.get_status ()) -#define i386_dr_low_get_control() (i386_dr_low.get_control ()) - -/* Debug register size, in bytes. */ -#define i386_get_debug_register_length() \ - (i386_dr_low.debug_register_length) - /* Support for 8-byte wide hw watchpoints. */ #define TARGET_HAS_DR_LEN_8 (i386_get_debug_register_length () == 8) diff --git a/gdb/i386-nat.h b/gdb/i386-nat.h index 1f4130cab9..f20b013809 100644 --- a/gdb/i386-nat.h +++ b/gdb/i386-nat.h @@ -73,6 +73,33 @@ struct i386_dr_low_type extern struct i386_dr_low_type i386_dr_low; +/* Can we update the inferior's debug registers? */ +#define i386_dr_low_can_set_addr() (i386_dr_low.set_addr != NULL) + +/* Update the inferior's debug register REGNUM from STATE. */ +#define i386_dr_low_set_addr(new_state, i) \ + (i386_dr_low.set_addr ((i), (new_state)->dr_mirror[(i)])) + +/* Return the inferior's debug register REGNUM. */ +#define i386_dr_low_get_addr(i) (i386_dr_low.get_addr ((i))) + +/* Can we update the inferior's DR7 control register? */ +#define i386_dr_low_can_set_control() (i386_dr_low.set_control != NULL) + +/* Update the inferior's DR7 debug control register from STATE. */ +#define i386_dr_low_set_control(new_state) \ + (i386_dr_low.set_control ((new_state)->dr_control_mirror)) + +/* Return the value of the inferior's DR7 debug control register. */ +#define i386_dr_low_get_control() (i386_dr_low.get_control ()) + +/* Return the value of the inferior's DR6 debug status register. */ +#define i386_dr_low_get_status() (i386_dr_low.get_status ()) + +/* Return the debug register size, in bytes. */ +#define i386_get_debug_register_length() \ + (i386_dr_low.debug_register_length) + /* Use this function to set i386_dr_low debug_register_length field rather than setting it directly to check that the length is only set once. It also enables the 'maint set/show show-debug-regs'