X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fgdbserver%2Ftarget.h;h=bbb056733e29b20d6177ac8ea14ee19990e5e2d7;hb=582511be69deb0e9d52efd6d51f860b6bee02a64;hp=c5e6feec5eadc82316595a6b3131cee5610e4598;hpb=6a6bbd9d762d3d9d3da1b0337b84f4fe64f06bd2;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/gdbserver/target.h b/gdb/gdbserver/target.h index c5e6feec5e..bbb056733e 100644 --- a/gdb/gdbserver/target.h +++ b/gdb/gdbserver/target.h @@ -1,5 +1,5 @@ /* Target operations for the remote server for GDB. - Copyright (C) 2002-2013 Free Software Foundation, Inc. + Copyright (C) 2002-2015 Free Software Foundation, Inc. Contributed by MontaVista Software. @@ -21,9 +21,11 @@ #ifndef TARGET_H #define TARGET_H +#include "target/target.h" #include "target/resume.h" #include "target/wait.h" #include "target/waitstatus.h" +#include "mem-break.h" struct emit_ops; struct btrace_target_info; @@ -136,8 +138,8 @@ struct target_ops inferior such that it is possible to access memory. This should generally only be called from client facing routines, - such as gdb_read_memory/gdb_write_memory, or the insert_point - callbacks. + such as gdb_read_memory/gdb_write_memory, or the GDB breakpoint + insertion routine. Like `read_memory' and `write_memory' below, returns 0 on success and errno on failure. */ @@ -187,17 +189,23 @@ struct target_ops int (*read_auxv) (CORE_ADDR offset, unsigned char *myaddr, unsigned int len); - /* Insert and remove a break or watchpoint. - Returns 0 on success, -1 on failure and 1 on unsupported. - The type is coded as follows: + /* Returns true if GDB Z breakpoint type TYPE is supported, false + otherwise. The type is coded as follows: '0' - software-breakpoint '1' - hardware-breakpoint '2' - write watchpoint '3' - read watchpoint - '4' - access watchpoint */ + '4' - access watchpoint + */ + int (*supports_z_point_type) (char z_type); + + /* Insert and remove a break or watchpoint. + Returns 0 on success, -1 on failure and 1 on unsupported. */ - int (*insert_point) (char type, CORE_ADDR addr, int len); - int (*remove_point) (char type, CORE_ADDR addr, int len); + int (*insert_point) (enum raw_bkpt_type type, CORE_ADDR addr, + int size, struct raw_breakpoint *bp); + int (*remove_point) (enum raw_bkpt_type type, CORE_ADDR addr, + int size, struct raw_breakpoint *bp); /* Returns 1 if target was stopped due to a watchpoint hit, 0 otherwise. */ @@ -296,9 +304,6 @@ struct target_ops the pause call. */ void (*unpause_all) (int unfreeze); - /* Cancel all pending breakpoints hits in all threads. */ - void (*cancel_breakpoints) (void); - /* Stabilize all threads. That is, force them out of jump pads. */ void (*stabilize_threads) (void); @@ -350,18 +355,21 @@ struct target_ops int (*supports_agent) (void); /* Check whether the target supports branch tracing. */ - int (*supports_btrace) (void); + int (*supports_btrace) (struct target_ops *); /* Enable branch tracing for @ptid and allocate a branch trace target information struct for reading and for disabling branch trace. */ struct btrace_target_info *(*enable_btrace) (ptid_t ptid); - /* Disable branch tracing. */ + /* Disable branch tracing. + Returns zero on success, non-zero otherwise. */ int (*disable_btrace) (struct btrace_target_info *tinfo); /* Read branch trace data into buffer. We use an int to specify the type - to break a cyclic dependency. */ - void (*read_btrace) (struct btrace_target_info *, struct buffer *, int type); + to break a cyclic dependency. + Return 0 on success; print an error message into BUFFER and return -1, + otherwise. */ + int (*read_btrace) (struct btrace_target_info *, struct buffer *, int type); /* Return true if target supports range stepping. */ int (*supports_range_stepping) (void); @@ -442,13 +450,6 @@ int kill_inferior (int); (*the_target->unpause_all) (unfreeze); \ } while (0) -#define cancel_breakpoints() \ - do \ - { \ - if (the_target->cancel_breakpoints) \ - (*the_target->cancel_breakpoints) (); \ - } while (0) - #define stabilize_threads() \ do \ { \ @@ -488,8 +489,9 @@ int kill_inferior (int); (the_target->supports_agent ? \ (*the_target->supports_agent) () : 0) -#define target_supports_btrace() \ - (the_target->supports_btrace ? (*the_target->supports_btrace) () : 0) +#define target_supports_btrace() \ + (the_target->supports_btrace \ + ? (*the_target->supports_btrace) (the_target) : 0) #define target_enable_btrace(ptid) \ (*the_target->enable_btrace) (ptid) @@ -532,7 +534,7 @@ int read_inferior_memory (CORE_ADDR memaddr, unsigned char *myaddr, int len); int write_inferior_memory (CORE_ADDR memaddr, const unsigned char *myaddr, int len); -void set_desired_inferior (int id); +void set_desired_thread (int id); const char *target_pid_to_str (ptid_t);