Updated copyright notices for most files.
[deliverable/binutils-gdb.git] / sim / common / sim-hw.c
index fa3ca8fa9447a2c589b6adb8158cc242800c4c88..06f14e1a1dc938950b90f4ca00af4903e44bfba3 100644 (file)
@@ -1,22 +1,21 @@
 /* Simulator hardware option handling.
 /* Simulator hardware option handling.
-   Copyright (C) 1998 Free Software Foundation, Inc.
+   Copyright (C) 1998, 2007, 2008 Free Software Foundation, Inc.
    Contributed by Cygnus Support and Andrew Cagney.
 
 This file is part of GDB, the GNU debugger.
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
    Contributed by Cygnus Support and Andrew Cagney.
 
 This file is part of GDB, the GNU debugger.
 
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
+the Free Software Foundation; either version 3 of the License, or
+(at your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
-You should have received a copy of the GNU General Public License along
-with this program; if not, write to the Free Software Foundation, Inc.,
-59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include "sim-main.h"
 #include "sim-assert.h"
 
 #include "sim-main.h"
 #include "sim-assert.h"
@@ -26,6 +25,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 
 #include "hw-tree.h"
 #include "hw-device.h"
 
 #include "hw-tree.h"
 #include "hw-device.h"
+#include "hw-main.h"
 #include "hw-base.h"
 
 
 #include "hw-base.h"
 
 
@@ -40,7 +40,7 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 #include <stdlib.h>
 #endif
 #include <ctype.h>
 #include <stdlib.h>
 #endif
 #include <ctype.h>
-#include <sys/errno.h>
+#include <errno.h>
 
 
 struct sim_hw {
 
 
 struct sim_hw {
@@ -53,15 +53,17 @@ struct sim_hw {
 };
 
 
 };
 
 
-void
+struct hw *
 sim_hw_parse (struct sim_state *sd,
              const char *fmt,
              ...)
 {
 sim_hw_parse (struct sim_state *sd,
              const char *fmt,
              ...)
 {
+  struct hw *current;
   va_list ap;
   va_start (ap, fmt);
   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);
   va_end (ap);
+  return current;
 }
 
 struct printer {
 }
 
 struct printer {
@@ -98,6 +100,7 @@ enum {
   OPTION_HW_INFO = OPTION_START,
   OPTION_HW_TRACE,
   OPTION_HW_DEVICE,
   OPTION_HW_INFO = OPTION_START,
   OPTION_HW_TRACE,
   OPTION_HW_DEVICE,
+  OPTION_HW_LIST,
   OPTION_HW_FILE,
 };
 
   OPTION_HW_FILE,
 };
 
@@ -123,6 +126,10 @@ static const OPTION hw_options[] =
       '\0', "DEVICE", "Add the specified device",
       hw_option_handler },
 
       '\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 },
   { {"hw-file", required_argument, NULL, OPTION_HW_FILE },
       '\0', "FILE", "Add the devices listed in the file",
       hw_option_handler },
@@ -254,6 +261,12 @@ hw_option_handler (struct sim_state *sd, sim_cpu *cpu, int opt,
        return SIM_RC_OK;
       }
 
        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);
     case OPTION_HW_FILE:
       {
        return merge_device_file (sd, arg);
This page took 0.024969 seconds and 4 git commands to generate.