[gdbserver] linux-low.c: better starvation avoidance, handle non-stop mode too
[deliverable/binutils-gdb.git] / gdb / gdbserver / target.h
index ae48cd776d9edbef42e34a521bd46a1d3fc3977b..bbb056733e29b20d6177ac8ea14ee19990e5e2d7 100644 (file)
@@ -1,5 +1,5 @@
 /* Target operations for the remote server for GDB.
 /* Target operations for the remote server for GDB.
-   Copyright (C) 2002-2014 Free Software Foundation, Inc.
+   Copyright (C) 2002-2015 Free Software Foundation, Inc.
 
    Contributed by MontaVista Software.
 
 
    Contributed by MontaVista Software.
 
 #ifndef TARGET_H
 #define TARGET_H
 
 #ifndef TARGET_H
 #define TARGET_H
 
+#include "target/target.h"
 #include "target/resume.h"
 #include "target/wait.h"
 #include "target/waitstatus.h"
 #include "target/resume.h"
 #include "target/wait.h"
 #include "target/waitstatus.h"
+#include "mem-break.h"
 
 struct emit_ops;
 struct btrace_target_info;
 
 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,
      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.  */
 
      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);
 
   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
        '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.  */
 
 
   /* 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);
 
      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);
 
   /* Stabilize all threads.  That is, force them out of jump pads.  */
   void (*stabilize_threads) (void);
 
@@ -350,7 +355,7 @@ struct target_ops
   int (*supports_agent) (void);
 
   /* Check whether the target supports branch tracing.  */
   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.  */
 
   /* Enable branch tracing for @ptid and allocate a branch trace target
      information struct for reading and for disabling branch trace.  */
@@ -445,13 +450,6 @@ int kill_inferior (int);
        (*the_target->unpause_all) (unfreeze);  \
     } while (0)
 
        (*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                                           \
     {                                          \
 #define stabilize_threads()                    \
   do                                           \
     {                                          \
@@ -491,8 +489,9 @@ int kill_inferior (int);
   (the_target->supports_agent ? \
    (*the_target->supports_agent) () : 0)
 
   (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)
 
 #define target_enable_btrace(ptid) \
   (*the_target->enable_btrace) (ptid)
@@ -535,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);
 
 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);
 
 
 const char *target_pid_to_str (ptid_t);
 
This page took 0.025352 seconds and 4 git commands to generate.