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.
This commit is contained in:
Gary Benson
2014-06-16 15:19:21 +01:00
parent b922889128
commit 5171def394
5 changed files with 46 additions and 24 deletions

View File

@ -1,5 +1,14 @@
2014-06-18 Gary Benson <gbenson@redhat.com> 2014-06-18 Gary Benson <gbenson@redhat.com>
* 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 <gbenson@redhat.com>
* i386-low.h (i386-dregs.h): New include. * i386-low.h (i386-dregs.h): New include.
(DR_FIRSTADDR): Now in i386-dregs.h. (DR_FIRSTADDR): Now in i386-dregs.h.
(DR_LASTADDR): Likewise. (DR_LASTADDR): Likewise.

View File

@ -32,13 +32,6 @@
The functions below implement debug registers sharing by reference The functions below implement debug registers sharing by reference
counts, and allow to watch regions up to 16 bytes long. */ 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. */ /* Support for 8-byte wide hw watchpoints. */
#define TARGET_HAS_DR_LEN_8 (i386_get_debug_register_length () == 8) #define TARGET_HAS_DR_LEN_8 (i386_get_debug_register_length () == 8)

View File

@ -38,6 +38,9 @@ extern void i386_low_init_dregs (struct i386_debug_reg_state *state);
status (DR6) register. 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. */ /* Update the inferior's debug register REGNUM from STATE. */
extern void i386_dr_low_set_addr (const struct i386_debug_reg_state *state, extern void i386_dr_low_set_addr (const struct i386_debug_reg_state *state,
int regnum); 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. */ /* Return the inferior's debug register REGNUM. */
extern CORE_ADDR i386_dr_low_get_addr (int 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. */ /* Update the inferior's DR7 debug control register from STATE. */
extern void i386_dr_low_set_control (const struct i386_debug_reg_state *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. */ /* Return the value of the inferior's DR6 debug status register. */
extern unsigned i386_dr_low_get_status (void); 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 *))

View File

@ -47,23 +47,6 @@ static int debug_hw_points;
/* Low-level function vector. */ /* Low-level function vector. */
struct i386_dr_low_type i386_dr_low; 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. */ /* Support for 8-byte wide hw watchpoints. */
#define TARGET_HAS_DR_LEN_8 (i386_get_debug_register_length () == 8) #define TARGET_HAS_DR_LEN_8 (i386_get_debug_register_length () == 8)

View File

@ -73,6 +73,33 @@ struct i386_dr_low_type
extern struct i386_dr_low_type i386_dr_low; 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 /* Use this function to set i386_dr_low debug_register_length field
rather than setting it directly to check that the length is only rather than setting it directly to check that the length is only
set once. It also enables the 'maint set/show show-debug-regs' set once. It also enables the 'maint set/show show-debug-regs'