]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - sim/common/sim-hw.c
Copyright updates for 2007.
[thirdparty/binutils-gdb.git] / sim / common / sim-hw.c
index fa3ca8fa9447a2c589b6adb8158cc242800c4c88..5bdef7356948c62b268bbf48b4aeb5bc07a3a66d 100644 (file)
@@ -1,5 +1,5 @@
 /* Simulator hardware option handling.
-   Copyright (C) 1998 Free Software Foundation, Inc.
+   Copyright (C) 1998, 2007 Free Software Foundation, Inc.
    Contributed by Cygnus Support and Andrew Cagney.
 
 This file is part of GDB, the GNU debugger.
@@ -26,6 +26,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 #include "hw-tree.h"
 #include "hw-device.h"
+#include "hw-main.h"
 #include "hw-base.h"
 
 
@@ -40,7 +41,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include <stdlib.h>
 #endif
 #include <ctype.h>
-#include <sys/errno.h>
+#include <errno.h>
 
 
 struct sim_hw {
@@ -53,15 +54,17 @@ struct sim_hw {
 };
 
 
-void
+struct hw *
 sim_hw_parse (struct sim_state *sd,
              const char *fmt,
              ...)
 {
+  struct hw *current;
   va_list ap;
   va_start (ap, fmt);
-  hw_tree_vparse (STATE_HW (sd)->tree, fmt, ap);
+  current = hw_tree_vparse (STATE_HW (sd)->tree, fmt, ap);
   va_end (ap);
+  return current;
 }
 
 struct printer {
@@ -98,6 +101,7 @@ enum {
   OPTION_HW_INFO = OPTION_START,
   OPTION_HW_TRACE,
   OPTION_HW_DEVICE,
+  OPTION_HW_LIST,
   OPTION_HW_FILE,
 };
 
@@ -123,6 +127,10 @@ static const OPTION hw_options[] =
       '\0', "DEVICE", "Add the specified device",
       hw_option_handler },
 
+  { {"hw-list", no_argument, NULL, OPTION_HW_LIST },
+      '\0', NULL, "List the device tree",
+      hw_option_handler },
+
   { {"hw-file", required_argument, NULL, OPTION_HW_FILE },
       '\0', "FILE", "Add the devices listed in the file",
       hw_option_handler },
@@ -254,6 +262,12 @@ hw_option_handler (struct sim_state *sd, sim_cpu *cpu, int opt,
        return SIM_RC_OK;
       }
 
+    case OPTION_HW_LIST:
+      {
+       sim_hw_print (sd, sim_io_vprintf);
+       return SIM_RC_OK;
+      }
+  
     case OPTION_HW_FILE:
       {
        return merge_device_file (sd, arg);