target.h: #include <sys/types.h>.
[deliverable/binutils-gdb.git] / gdb / gdbserver / server.c
index 53763e50ced5b6ac8f34478f67c20e80d75b709c..7d6c9cc47a2514d79efb7ec2e0b28380cd36539e 100644 (file)
@@ -385,7 +385,7 @@ decode_xfer (char *buf, char **object, char **rw, char **annex, char **offset)
    to as much of DATA/LEN as we could fit.  IS_MORE controls
    the first character of the response.  */
 static int
-write_qxfer_response (char *buf, const void *data, int len, int is_more)
+write_qxfer_response (char *buf, const gdb_byte *data, int len, int is_more)
 {
   int out_len;
 
@@ -891,7 +891,8 @@ handle_search_memory_1 (CORE_ADDR start_addr, CORE_ADDR search_space_len,
                                  ? search_space_len
                                  : search_buf_size);
 
-      found_ptr = memmem (search_buf, nr_search_bytes, pattern, pattern_len);
+      found_ptr = (gdb_byte *) memmem (search_buf, nr_search_bytes, pattern,
+                                      pattern_len);
 
       if (found_ptr != NULL)
        {
@@ -1280,7 +1281,7 @@ static void
 accumulate_file_name_length (struct inferior_list_entry *inf, void *arg)
 {
   struct dll_info *dll = (struct dll_info *) inf;
-  unsigned int *total_len = arg;
+  unsigned int *total_len = (unsigned int *) arg;
 
   /* Over-estimate the necessary memory.  Assume that every character
      in the library name must be escaped.  */
@@ -1294,7 +1295,7 @@ static void
 emit_dll_description (struct inferior_list_entry *inf, void *arg)
 {
   struct dll_info *dll = (struct dll_info *) inf;
-  char **p_ptr = arg;
+  char **p_ptr = (char **) arg;
   char *p = *p_ptr;
   char *name;
 
@@ -1450,7 +1451,7 @@ static void
 handle_qxfer_threads_worker (struct inferior_list_entry *inf, void *arg)
 {
   struct thread_info *thread = (struct thread_info *) inf;
-  struct buffer *buffer = arg;
+  struct buffer *buffer = (struct buffer *) arg;
   ptid_t ptid = thread_to_gdb_id (thread);
   char ptid_s[100];
   int core = target_core_of_thread (ptid);
@@ -1608,7 +1609,8 @@ handle_qxfer_btrace (const char *annex,
 {
   static struct buffer cache;
   struct thread_info *thread;
-  int type, result;
+  enum btrace_read_type type;
+  int result;
 
   if (the_target->read_btrace == NULL || writebuf != NULL)
     return -2;
@@ -2052,9 +2054,6 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p)
       char *p = &own_buf[10];
       int gdb_supports_qRelocInsn = 0;
 
-      /* Start processing qSupported packet.  */
-      target_process_qsupported (NULL);
-
       /* Process each feature being provided by GDB.  The first
         feature will follow a ':', and latter features will follow
         ';'.  */
@@ -2062,6 +2061,7 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p)
        {
          char **qsupported = NULL;
          int count = 0;
+         int unknown = 0;
          int i;
 
          /* Two passes, to avoid nested strtok calls in
@@ -2126,11 +2126,20 @@ handle_query (char *own_buf, int packet_len, int *new_packet_len_p)
              else if (strcmp (p, "vContSupported+") == 0)
                vCont_supported = 1;
              else
-               target_process_qsupported (p);
-
-             free (p);
+               {
+                 /* Move the unknown features all together.  */
+                 qsupported[i] = NULL;
+                 qsupported[unknown] = p;
+                 unknown++;
+               }
            }
 
+         /* Give the target backend a chance to process the unknown
+            features.  */
+         target_process_qsupported (qsupported, unknown);
+
+         for (i = 0; i < count; i++)
+           free (qsupported[i]);
          free (qsupported);
        }
 
@@ -2459,7 +2468,8 @@ struct visit_actioned_threads_data
 static int
 visit_actioned_threads (struct inferior_list_entry *entry, void *datap)
 {
-  struct visit_actioned_threads_data *data = datap;
+  struct visit_actioned_threads_data *data
+    = (struct visit_actioned_threads_data *) datap;
   const struct thread_resume *actions = data->actions;
   size_t num_actions = data->num_actions;
   visit_actioned_threads_callback_ftype *callback = data->callback;
@@ -2553,9 +2563,9 @@ handle_v_cont (char *own_buf)
            goto err;
          p = q;
 
-         if (!gdb_signal_to_host_p (sig))
+         if (!gdb_signal_to_host_p ((enum gdb_signal) sig))
            goto err;
-         resume_info[i].sig = gdb_signal_to_host (sig);
+         resume_info[i].sig = gdb_signal_to_host ((enum gdb_signal) sig);
        }
       else if (p[0] == 'r')
        {
@@ -4037,8 +4047,8 @@ process_serial_event (void)
     case 'C':
       require_running (own_buf);
       hex2bin (own_buf + 1, &sig, 1);
-      if (gdb_signal_to_host_p (sig))
-       signal = gdb_signal_to_host (sig);
+      if (gdb_signal_to_host_p ((enum gdb_signal) sig))
+       signal = gdb_signal_to_host ((enum gdb_signal) sig);
       else
        signal = 0;
       myresume (own_buf, 0, signal);
@@ -4046,8 +4056,8 @@ process_serial_event (void)
     case 'S':
       require_running (own_buf);
       hex2bin (own_buf + 1, &sig, 1);
-      if (gdb_signal_to_host_p (sig))
-       signal = gdb_signal_to_host (sig);
+      if (gdb_signal_to_host_p ((enum gdb_signal) sig))
+       signal = gdb_signal_to_host ((enum gdb_signal) sig);
       else
        signal = 0;
       myresume (own_buf, 1, signal);
@@ -4068,20 +4078,20 @@ process_serial_event (void)
       {
        char *dataptr;
        ULONGEST addr;
-       int len;
+       int kind;
        char type = own_buf[1];
        int res;
        const int insert = ch == 'Z';
        char *p = &own_buf[3];
 
        p = unpack_varlen_hex (p, &addr);
-       len = strtol (p + 1, &dataptr, 16);
+       kind = strtol (p + 1, &dataptr, 16);
 
        if (insert)
          {
            struct breakpoint *bp;
 
-           bp = set_gdb_breakpoint (type, addr, len, &res);
+           bp = set_gdb_breakpoint (type, addr, kind, &res);
            if (bp != NULL)
              {
                res = 0;
@@ -4096,7 +4106,7 @@ process_serial_event (void)
              }
          }
        else
-         res = delete_gdb_breakpoint (type, addr, len);
+         res = delete_gdb_breakpoint (type, addr, kind);
 
        if (res == 0)
          write_ok (own_buf);
This page took 0.025716 seconds and 4 git commands to generate.