2010-03-18 Stan Shebs <stan@codesourcery.com>
[deliverable/binutils-gdb.git] / gdb / target.h
index 20cbe29eb97255d7df49bc7d6b9bc3262e7a0ea6..2b21f0f7346a8284ad7812d70280c3416340e199 100644 (file)
@@ -32,6 +32,9 @@ struct bp_target_info;
 struct regcache;
 struct target_section_table;
 struct trace_state_variable;
+struct trace_status;
+struct uploaded_tsv;
+struct uploaded_tp;
 
 /* This include file defines the interface between the main part
    of the debugger, and the part which is target-specific, or
@@ -256,6 +259,8 @@ enum target_object
   /* Extra signal info.  Usually the contents of `siginfo_t' on unix
      platforms.  */
   TARGET_OBJECT_SIGNAL_INFO,
+  /* The list of threads that are being debugged.  */
+  TARGET_OBJECT_THREADS,
   /* Possible future objects: TARGET_OBJECT_FILE, ... */
 };
 
@@ -630,7 +635,7 @@ struct target_ops
     void (*to_trace_start) (void);
 
     /* Get the current status of a tracing run.  */
-    int (*to_get_trace_status) (int *stop_reason);
+    int (*to_get_trace_status) (struct trace_status *ts);
 
     /* Stop a trace run.  */
     void (*to_trace_stop) (void);
@@ -647,9 +652,27 @@ struct target_ops
        location pointed to by VAL, else returning 0.  */
     int (*to_get_trace_state_variable_value) (int tsv, LONGEST *val);
 
+    int (*to_save_trace_data) (char *filename);
+
+    int (*to_upload_tracepoints) (struct uploaded_tp **utpp);
+
+    int (*to_upload_trace_state_variables) (struct uploaded_tsv **utsvp);
+
+    LONGEST (*to_get_raw_trace_data) (gdb_byte *buf,
+                                     ULONGEST offset, LONGEST len);
+
     /* Set the target's tracing behavior in response to unexpected
        disconnection - set VAL to 1 to keep tracing, 0 to stop.  */
     void (*to_set_disconnected_tracing) (int val);
+    void (*to_set_circular_trace_buffer) (int val);
+
+    /* Return the processor core that thread PTID was last seen on.
+       This information is updated only when:
+       - update_thread_list is called
+       - thread stops
+       If the core cannot be determined -- either for the specified thread, or
+       right now, or in this debug session, or for this target -- return -1.  */
+    int (*to_core_of_thread) (struct target_ops *, ptid_t ptid);
 
     int to_magic;
     /* Need sub-structure for target machine related rather than comm related?
@@ -1242,9 +1265,10 @@ extern char *normal_pid_to_str (ptid_t ptid);
     (*current_target.to_region_ok_for_hw_watchpoint) (addr, len)
 
 
-/* Set/clear a hardware watchpoint starting at ADDR, for LEN bytes.  TYPE is 0
-   for write, 1 for read, and 2 for read/write accesses.  Returns 0 for
-   success, non-zero for failure.  */
+/* Set/clear a hardware watchpoint starting at ADDR, for LEN bytes.
+   TYPE is 0 for write, 1 for read, and 2 for read/write accesses.
+   Returns 0 for success, 1 if the watchpoint type is not supported,
+   -1 for failure.  */
 
 #define        target_insert_watchpoint(addr, len, type)       \
      (*current_target.to_insert_watchpoint) (addr, len, type)
@@ -1309,8 +1333,8 @@ extern int target_search_memory (CORE_ADDR start_addr,
 #define target_trace_set_readonly_regions() \
   (*current_target.to_trace_set_readonly_regions) ()
 
-#define target_get_trace_status(stop_reason) \
-  (*current_target.to_get_trace_status) (stop_reason)
+#define target_get_trace_status(ts) \
+  (*current_target.to_get_trace_status) (ts)
 
 #define target_trace_stop() \
   (*current_target.to_trace_stop) ()
@@ -1321,9 +1345,24 @@ extern int target_search_memory (CORE_ADDR start_addr,
 #define target_get_trace_state_variable_value(tsv,val) \
   (*current_target.to_get_trace_state_variable_value) ((tsv), (val))
 
+#define target_save_trace_data(filename) \
+  (*current_target.to_save_trace_data) (filename)
+
+#define target_upload_tracepoints(utpp) \
+  (*current_target.to_upload_tracepoints) (utpp)
+
+#define target_upload_trace_state_variables(utsvp) \
+  (*current_target.to_upload_trace_state_variables) (utsvp)
+
+#define target_get_raw_trace_data(buf,offset,len) \
+  (*current_target.to_get_raw_trace_data) ((buf), (offset), (len))
+
 #define target_set_disconnected_tracing(val) \
   (*current_target.to_set_disconnected_tracing) (val)
 
+#define        target_set_circular_trace_buffer(val)   \
+  (*current_target.to_set_circular_trace_buffer) (val)
+
 /* Command logging facility.  */
 
 #define target_log_command(p)                                          \
@@ -1332,6 +1371,9 @@ extern int target_search_memory (CORE_ADDR start_addr,
       (*current_target.to_log_command) (p);                            \
   while (0)
 
+
+extern int target_core_of_thread (ptid_t ptid);
+
 /* Routines for maintenance of the target structures...
 
    add_target:   Add a target to the list of all possible targets.
This page took 0.027674 seconds and 4 git commands to generate.