Add some more casts (1/2)
[deliverable/binutils-gdb.git] / gdb / gnu-nat.c
index b66a7f09aaa99891343dd872a9abe49ac28a4db3..d3f54d0375dd9f02e56f24f9904f4ebdd58af25e 100644 (file)
@@ -1,5 +1,5 @@
 /* Interface GDB to the GNU Hurd.
-   Copyright (C) 1992-2014 Free Software Foundation, Inc.
+   Copyright (C) 1992-2015 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
 #include "defs.h"
 
 #include <ctype.h>
-#include <errno.h>
 #include <limits.h>
 #include <setjmp.h>
 #include <signal.h>
-#include <stdio.h>
-#include <string.h>
 #include <sys/ptrace.h>
 
 #include <mach.h>
@@ -61,7 +58,6 @@
 #include "gdbcmd.h"
 #include "gdbcore.h"
 #include "gdbthread.h"
-#include "gdb_assert.h"
 #include "gdb_obstack.h"
 
 #include "gnu-nat.h"
@@ -404,7 +400,7 @@ proc_get_exception_port (struct proc * proc, mach_port_t * port)
 error_t
 proc_set_exception_port (struct proc * proc, mach_port_t port)
 {
-  proc_debug (proc, "setting exception port: %d", port);
+  proc_debug (proc, "setting exception port: %lu", port);
   if (proc_is_task (proc))
     return task_set_exception_port (proc->port, port);
   else
@@ -444,7 +440,7 @@ proc_steal_exc_port (struct proc *proc, mach_port_t exc_port)
     {
       error_t err = 0;
 
-      proc_debug (proc, "inserting exception port: %d", exc_port);
+      proc_debug (proc, "inserting exception port: %lu", exc_port);
 
       if (cur_exc_port != exc_port)
        /* Put in our exception port.  */
@@ -465,7 +461,7 @@ proc_steal_exc_port (struct proc *proc, mach_port_t exc_port)
          proc->saved_exc_port = cur_exc_port;
        }
 
-      proc_debug (proc, "saved exception port: %d", proc->saved_exc_port);
+      proc_debug (proc, "saved exception port: %lu", proc->saved_exc_port);
 
       if (!err)
        proc->exc_port = exc_port;
@@ -543,7 +539,7 @@ make_proc (struct inf *inf, mach_port_t port, int tid)
 {
   error_t err;
   mach_port_t prev_port = MACH_PORT_NULL;
-  struct proc *proc = xmalloc (sizeof (struct proc));
+  struct proc *proc = XNEW (struct proc);
 
   proc->port = port;
   proc->tid = tid;
@@ -577,11 +573,11 @@ make_proc (struct inf *inf, mach_port_t port, int tid)
                                    MACH_MSG_TYPE_MAKE_SEND_ONCE,
                                    &prev_port);
   if (err)
-    warning (_("Couldn't request notification for port %d: %s"),
+    warning (_("Couldn't request notification for port %lu: %s"),
             port, safe_strerror (err));
   else
     {
-      proc_debug (proc, "notifications to: %d", inf->event_port);
+      proc_debug (proc, "notifications to: %lu", inf->event_port);
       if (prev_port != MACH_PORT_NULL)
        mach_port_deallocate (mach_task_self (), prev_port);
     }
@@ -640,7 +636,7 @@ _proc_free (struct proc *proc)
 static struct inf *
 make_inf (void)
 {
-  struct inf *inf = xmalloc (sizeof (struct inf));
+  struct inf *inf = XNEW (struct inf);
 
   inf->task = 0;
   inf->threads = 0;
@@ -756,7 +752,7 @@ inf_set_pid (struct inf *inf, pid_t pid)
               pid, safe_strerror (err));
     }
 
-  inf_debug (inf, "setting task: %d", task_port);
+  inf_debug (inf, "setting task: %lu", task_port);
 
   if (inf->pause_sc)
     task_suspend (task_port);
@@ -808,7 +804,8 @@ inf_validate_procinfo (struct inf *inf)
       inf->nomsg = !!(pi->state & PI_NOMSG);
       if (inf->nomsg)
        inf->traced = !!(pi->state & PI_TRACED);
-      vm_deallocate (mach_task_self (), (vm_address_t) pi, pi_len);
+      vm_deallocate (mach_task_self (), (vm_address_t) pi,
+                    pi_len * sizeof (*(procinfo_t) 0));
       if (noise_len > 0)
        vm_deallocate (mach_task_self (), (vm_address_t) noise, noise_len);
     }
@@ -848,9 +845,10 @@ inf_validate_task_sc (struct inf *inf)
 
   suspend_count = pi->taskinfo.suspend_count;
 
-  vm_deallocate (mach_task_self (), (vm_address_t) pi, pi_len);
+  vm_deallocate (mach_task_self (), (vm_address_t) pi,
+                pi_len * sizeof (*(procinfo_t) 0));
   if (noise_len > 0)
-    vm_deallocate (mach_task_self (), (vm_address_t) pi, pi_len);
+    vm_deallocate (mach_task_self (), (vm_address_t) noise, noise_len);
 
   if (inf->task->cur_sc < suspend_count)
     {
@@ -987,6 +985,17 @@ inf_port_to_thread (struct inf *inf, mach_port_t port)
   return 0;
 }
 
+/* See gnu-nat.h.  */
+
+void
+inf_threads (struct inf *inf, inf_threads_ftype *f, void *arg)
+{
+  struct proc *thread;
+
+  for (thread = inf->threads; thread; thread = thread->next)
+    f (thread, arg);
+}
+
 \f
 /* Make INF's list of threads be consistent with reality of TASK.  */
 void
@@ -1080,7 +1089,7 @@ inf_validate_procs (struct inf *inf)
            else
              inf->threads = thread;
            last = thread;
-           proc_debug (thread, "new thread: %d", threads[i]);
+           proc_debug (thread, "new thread: %lu", threads[i]);
 
            ptid = ptid_build (inf->pid, thread->tid, 0);
 
@@ -1345,7 +1354,7 @@ inf_signal (struct inf *inf, enum gdb_signal sig)
          struct exc_state *e = &w->exc;
 
          inf_debug (inf, "passing through exception:"
-                    " task = %d, thread = %d, exc = %d"
+                    " task = %lu, thread = %lu, exc = %d"
                     ", code = %d, subcode = %d",
                     w->thread->port, inf->task->port,
                     e->exception, e->code, e->subcode);
@@ -1652,7 +1661,7 @@ S_exception_raise_request (mach_port_t port, mach_port_t reply_port,
   struct proc *thread = inf_port_to_thread (inf, thread_port);
 
   inf_debug (waiting_inf,
-            "thread = %d, task = %d, exc = %d, code = %d, subcode = %d",
+            "thread = %lu, task = %lu, exc = %d, code = %d, subcode = %d",
             thread_port, task_port, exception, code, subcode);
 
   if (!thread)
@@ -1688,13 +1697,13 @@ S_exception_raise_request (mach_port_t port, mach_port_t reply_port,
        {
          if (thread->exc_port == port)
            {
-             inf_debug (waiting_inf, "Handler is thread exception port <%d>",
+             inf_debug (waiting_inf, "Handler is thread exception port <%lu>",
                         thread->saved_exc_port);
              inf->wait.exc.handler = thread->saved_exc_port;
            }
          else
            {
-             inf_debug (waiting_inf, "Handler is task exception port <%d>",
+             inf_debug (waiting_inf, "Handler is task exception port <%lu>",
                         inf->task->saved_exc_port);
              inf->wait.exc.handler = inf->task->saved_exc_port;
              gdb_assert (inf->task->exc_port == port);
@@ -1745,7 +1754,7 @@ do_mach_notify_dead_name (mach_port_t notify, mach_port_t dead_port)
 {
   struct inf *inf = waiting_inf;
 
-  inf_debug (waiting_inf, "port = %d", dead_port);
+  inf_debug (waiting_inf, "port = %lu", dead_port);
 
   if (inf->task && inf->task->port == dead_port)
     {
@@ -1783,6 +1792,7 @@ do_mach_notify_dead_name (mach_port_t notify, mach_port_t dead_port)
 
 \f
 #define ILL_RPC(fun, ...) \
+  extern kern_return_t fun (__VA_ARGS__); \
   kern_return_t fun (__VA_ARGS__) \
   { \
     warning (_("illegal rpc: %s"), #fun); \
@@ -2079,8 +2089,7 @@ gnu_mourn_inferior (struct target_ops *ops)
 {
   inf_debug (gnu_current_inf, "rip");
   inf_detach (gnu_current_inf);
-  unpush_target (ops);
-  generic_mourn_inferior ();
+  inf_child_mourn_inferior (ops);
 }
 
 \f
@@ -2165,7 +2174,7 @@ gnu_create_inferior (struct target_ops *ops,
 /* Attach to process PID, then initialize for debugging it
    and wait for the trace-trap that results from attaching.  */
 static void
-gnu_attach (struct target_ops *ops, char *args, int from_tty)
+gnu_attach (struct target_ops *ops, const char *args, int from_tty)
 {
   int pid;
   char *exec_file;
@@ -2252,18 +2261,18 @@ gnu_detach (struct target_ops *ops, const char *args, int from_tty)
   inferior_ptid = null_ptid;
   detach_inferior (pid);
 
-  unpush_target (ops); /* Pop out of handling an inferior.  */
+  inf_child_maybe_unpush_target (ops);
 }
 \f
 static void
-gnu_terminal_init_inferior (void)
+gnu_terminal_init (struct target_ops *self)
 {
   gdb_assert (gnu_current_inf);
-  terminal_init_inferior_with_pgrp (gnu_current_inf->pid);
+  child_terminal_init_with_pgrp (gnu_current_inf->pid);
 }
 
 static void
-gnu_stop (ptid_t ptid)
+gnu_stop (struct target_ops *self, ptid_t ptid)
 {
   error (_("to_stop target function not implemented"));
 }
@@ -2288,7 +2297,7 @@ gnu_read_inferior (task_t task, CORE_ADDR addr, gdb_byte *myaddr, int length)
   vm_size_t aligned_length =
   (vm_size_t) round_page (addr + length) - low_address;
   pointer_t copied;
-  int copy_count;
+  mach_msg_type_number_t copy_count;
 
   /* Get memory from inferior with page aligned addresses.  */
   err = vm_read (task, low_address, aligned_length, &copied, &copy_count);
@@ -2335,13 +2344,13 @@ gnu_write_inferior (task_t task, CORE_ADDR addr,
   vm_size_t aligned_length =
   (vm_size_t) round_page (addr + length) - low_address;
   pointer_t copied;
-  int copy_count;
+  mach_msg_type_number_t copy_count;
   int deallocate = 0;
 
   char *errstr = "Bug in gnu_write_inferior";
 
   struct vm_region_list *region_element;
-  struct vm_region_list *region_head = (struct vm_region_list *) NULL;
+  struct vm_region_list *region_head = NULL;
 
   /* Get memory from inferior with page aligned addresses.  */
   err = vm_read (task,
@@ -2392,7 +2401,7 @@ gnu_write_inferior (task_t task, CORE_ADDR addr,
        /* Check for holes in memory.  */
        if (old_address != region_address)
          {
-           warning (_("No memory at 0x%x. Nothing written"),
+           warning (_("No memory at 0x%lx. Nothing written"),
                     old_address);
            err = KERN_SUCCESS;
            length = 0;
@@ -2401,7 +2410,7 @@ gnu_write_inferior (task_t task, CORE_ADDR addr,
 
        if (!(max_protection & VM_PROT_WRITE))
          {
-           warning (_("Memory at address 0x%x is unwritable. "
+           warning (_("Memory at address 0x%lx is unwritable. "
                       "Nothing written"),
                     old_address);
            err = KERN_SUCCESS;
@@ -2410,9 +2419,7 @@ gnu_write_inferior (task_t task, CORE_ADDR addr,
          }
 
        /* Chain the regions for later use.  */
-       region_element =
-         (struct vm_region_list *)
-         obstack_alloc (&region_obstack, sizeof (struct vm_region_list));
+       region_element = XOBNEW (&region_obstack, struct vm_region_list);
 
        region_element->protection = protection;
        region_element->start = region_address;
@@ -2544,7 +2551,8 @@ gnu_xfer_partial (struct target_ops *ops, enum target_object object,
 
 /* Call FUNC on each memory region in the task.  */
 static int
-gnu_find_memory_regions (find_memory_region_ftype func, void *data)
+gnu_find_memory_regions (struct target_ops *self,
+                        find_memory_region_ftype func, void *data)
 {
   error_t err;
   task_t task;
@@ -2663,10 +2671,6 @@ gnu_target (void)
 {
   struct target_ops *t = inf_child_target ();
 
-  t->to_shortname = "GNU";
-  t->to_longname = "GNU Hurd process";
-  t->to_doc = "GNU Hurd process";
-
   t->to_attach = gnu_attach;
   t->to_attach_no_wait = 1;
   t->to_detach = gnu_detach;
@@ -2674,7 +2678,7 @@ gnu_target (void)
   t->to_wait = gnu_wait;
   t->to_xfer_partial = gnu_xfer_partial;
   t->to_find_memory_regions = gnu_find_memory_regions;
-  t->to_terminal_init = gnu_terminal_init_inferior;
+  t->to_terminal_init = gnu_terminal_init;
   t->to_kill = gnu_kill_inferior;
   t->to_create_inferior = gnu_create_inferior;
   t->to_mourn_inferior = gnu_mourn_inferior;
@@ -2906,7 +2910,7 @@ steal_exc_port (struct proc *proc, mach_port_t name)
                                 name, MACH_MSG_TYPE_COPY_SEND,
                                 &port, &port_type);
   if (err)
-    error (_("Couldn't extract send right %d from inferior: %s"),
+    error (_("Couldn't extract send right %lu from inferior: %s"),
           name, safe_strerror (err));
 
   if (proc->saved_exc_port)
This page took 0.036036 seconds and 4 git commands to generate.