Add support to GDB for the Renesas rl78 architecture.
[external/binutils.git] / gdb / bsd-kvm.c
index 46d6b6b..39bd396 100644 (file)
@@ -1,6 +1,6 @@
 /* BSD Kernel Data Access Library (libkvm) interface.
 
-   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
+   Copyright (C) 2004-2005, 2007-2012 Free Software Foundation, Inc.
 
    This file is part of GDB.
 
@@ -172,7 +172,8 @@ bsd_kvm_fetch_pcb (struct regcache *regcache, struct pcb *paddr)
 }
 
 static void
-bsd_kvm_fetch_registers (struct regcache *regcache, int regnum)
+bsd_kvm_fetch_registers (struct target_ops *ops,
+                        struct regcache *regcache, int regnum)
 {
   struct nlist nl[2];
 
@@ -192,7 +193,7 @@ bsd_kvm_fetch_registers (struct regcache *regcache, int regnum)
 
   if (nl[0].n_value != 0)
     {
-      /* Found dumppcb. If it contains a valid context, return
+      /* Found dumppcb.  If it contains a valid context, return
         immediately.  */
       if (bsd_kvm_fetch_pcb (regcache, (struct pcb *) nl[0].n_value))
        return;
@@ -246,7 +247,7 @@ bsd_kvm_fetch_registers (struct regcache *regcache, int regnum)
     }
 #endif
 
-  /* i18n: PCB == "Process Control Block" */
+  /* i18n: PCB == "Process Control Block" */
   error (_("Cannot find a valid PCB"));
 }
 \f
@@ -295,7 +296,7 @@ static void
 bsd_kvm_pcb_cmd (char *arg, int fromtty)
 {
   if (arg == NULL)
-    /* i18n: PCB == "Process Control Block" */
+    /* i18n: PCB == "Process Control Block" */
     error_no_arg (_("pcb address"));
 
   if (core_kd == NULL)
@@ -310,19 +311,26 @@ bsd_kvm_pcb_cmd (char *arg, int fromtty)
 }
 
 static int
-bsd_kvm_thread_alive (ptid_t ptid)
+bsd_kvm_thread_alive (struct target_ops *ops,
+                     ptid_t ptid)
 {
   return 1;
 }
 
 static char *
-bsd_kvm_pid_to_str (ptid_t ptid)
+bsd_kvm_pid_to_str (struct target_ops *ops, ptid_t ptid)
 {
   static char buf[64];
   xsnprintf (buf, sizeof buf, "<kvm>");
   return buf;
 }
 
+static int
+bsd_kvm_return_one (struct target_ops *ops)
+{
+  return 1;
+}
+
 /* Add the libkvm interface to the list of all possible targets and
    register CUPPLY_PCB as the architecture-specific process control
    block interpreter.  */
@@ -345,9 +353,9 @@ Optionally specify the filename of a core dump.");
   bsd_kvm_ops.to_thread_alive = bsd_kvm_thread_alive;
   bsd_kvm_ops.to_pid_to_str = bsd_kvm_pid_to_str;
   bsd_kvm_ops.to_stratum = process_stratum;
-  bsd_kvm_ops.to_has_memory = 1;
-  bsd_kvm_ops.to_has_stack = 1;
-  bsd_kvm_ops.to_has_registers = 1;
+  bsd_kvm_ops.to_has_memory = bsd_kvm_return_one;
+  bsd_kvm_ops.to_has_stack = bsd_kvm_return_one;
+  bsd_kvm_ops.to_has_registers = bsd_kvm_return_one;
   bsd_kvm_ops.to_magic = OPS_MAGIC;
 
   add_target (&bsd_kvm_ops);
@@ -361,7 +369,7 @@ Generic command for manipulating the kernel memory interface."),
           _("Set current context from proc address"), &bsd_kvm_cmdlist);
 #endif
   add_cmd ("pcb", class_obscure, bsd_kvm_pcb_cmd,
-          /* i18n: PCB == "Process Control Block" */
+          /* i18n: PCB == "Process Control Block" */
           _("Set current context from pcb address"), &bsd_kvm_cmdlist);
 
   /* Some notes on the ptid usage on this target.
@@ -376,7 +384,7 @@ Generic command for manipulating the kernel memory interface."),
      ptid (1, 1, 0) -> kvm inferior 1, in kernel
      ptid (1, 1, 1) -> kvm inferior 1, process 1
      ptid (1, 1, 2) -> kvm inferior 1, process 2
-     ptid (1, 1, n) -> kvm inferior 1, process n
-  */
+     ptid (1, 1, n) -> kvm inferior 1, process n  */
+
   bsd_kvm_ptid = ptid_build (1, 1, 0);
 }