* remote-utils.c (putpkt_binary_1): Call readchar instead of read.
[deliverable/binutils-gdb.git] / gdb / target.h
index 2b21f0f7346a8284ad7812d70280c3416340e199..272571b75020ae085e665f0023f33f595c40720c 100644 (file)
@@ -643,7 +643,8 @@ struct target_ops
    /* Ask the target to find a trace frame of the given type TYPE,
       using NUM, ADDR1, and ADDR2 as search parameters.  Returns the
       number of the trace frame, and also the tracepoint number at
-      TPP.  */
+      TPP.  If no trace frame matches, return -1. May throw if the
+      operation fails.  */
     int (*to_trace_find) (enum trace_find_type type, int num,
                          ULONGEST addr1, ULONGEST addr2, int *tpp);
 
@@ -652,7 +653,7 @@ 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_save_trace_data) (const char *filename);
 
     int (*to_upload_tracepoints) (struct uploaded_tp **utpp);
 
@@ -674,6 +675,17 @@ struct target_ops
        right now, or in this debug session, or for this target -- return -1.  */
     int (*to_core_of_thread) (struct target_ops *, ptid_t ptid);
 
+    /* Verify that the memory in the [MEMADDR, MEMADDR+SIZE) range
+       matches the contents of [DATA,DATA+SIZE).  Returns 1 if there's
+       a match, 0 if there's a mismatch, and -1 if an error is
+       encountered while reading memory.  */
+    int (*to_verify_memory) (struct target_ops *, const gdb_byte *data,
+                            CORE_ADDR memaddr, ULONGEST size);
+
+    /* Return the address of the start of the Thread Information Block
+       a Windows OS specific feature.  */
+    int (*to_get_tib_address) (ptid_t ptid, CORE_ADDR *addr);
+
     int to_magic;
     /* Need sub-structure for target machine related rather than comm related?
      */
@@ -1363,6 +1375,9 @@ extern int target_search_memory (CORE_ADDR start_addr,
 #define        target_set_circular_trace_buffer(val)   \
   (*current_target.to_set_circular_trace_buffer) (val)
 
+#define target_get_tib_address(ptid, addr) \
+  (*current_target.to_get_tib_address) ((ptid), (addr))
+
 /* Command logging facility.  */
 
 #define target_log_command(p)                                          \
@@ -1374,6 +1389,14 @@ extern int target_search_memory (CORE_ADDR start_addr,
 
 extern int target_core_of_thread (ptid_t ptid);
 
+/* Verify that the memory in the [MEMADDR, MEMADDR+SIZE) range matches
+   the contents of [DATA,DATA+SIZE).  Returns 1 if there's a match, 0
+   if there's a mismatch, and -1 if an error is encountered while
+   reading memory.  Throws an error if the functionality is found not
+   to be supported by the current target.  */
+int target_verify_memory (const gdb_byte *data,
+                         CORE_ADDR memaddr, ULONGEST size);
+
 /* Routines for maintenance of the target structures...
 
    add_target:   Add a target to the list of all possible targets.
This page took 0.025297 seconds and 4 git commands to generate.