]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - sim/common/hw-base.c
sim: switch config.h usage to defs.h
[thirdparty/binutils-gdb.git] / sim / common / hw-base.c
index 85d80098f81d410b58af0f3056ccdd58928451e4..af4cc50f1a4baf52e288d98567f242aae7092f42 100644 (file)
@@ -1,6 +1,6 @@
 /* The common simulator framework for GDB, the GNU Debugger.
 
-   Copyright 2002, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+   Copyright 2002-2021 Free Software Foundation, Inc.
 
    Contributed by Andrew Cagney and Red Hat.
 
    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
+/* This must come before any other includes.  */
+#include "defs.h"
 
 #include "hw-main.h"
 #include "hw-base.h"
 
-
-#ifdef HAVE_STRING_H
 #include <string.h>
-#else
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-#endif
-
-#if HAVE_STDLIB_H
 #include <stdlib.h>
-#endif
-
 #include <ctype.h>
 
 #include "hw-config.h"
 
-struct hw_base_data {
+struct hw_base_data
+{
   int finished_p;
   const struct hw_descriptor *descriptor;
   hw_delete_callback *to_delete;
@@ -80,14 +72,16 @@ generic_hw_unit_decode (struct hw *bus,
            return -1;
          unit++;
        }
-      if (nr_cells < max_nr_cells) {
-       /* shift everything to correct position */
-       int i;
-       for (i = 1; i <= nr_cells; i++)
-         phys->cells[max_nr_cells - i] = phys->cells[nr_cells - i];
-       for (i = 0; i < (max_nr_cells - nr_cells); i++)
-         phys->cells[i] = 0;
-      }
+      if (nr_cells < max_nr_cells)
+       {
+         /* shift everything to correct position */
+         int i;
+
+         for (i = 1; i <= nr_cells; i++)
+           phys->cells[max_nr_cells - i] = phys->cells[nr_cells - i];
+         for (i = 0; i < (max_nr_cells - nr_cells); i++)
+           phys->cells[i] = 0;
+       }
       phys->nr_cells = max_nr_cells;
       return max_nr_cells;
   }
@@ -111,28 +105,29 @@ generic_hw_unit_encode (struct hw *bus,
   /* don't output anything if empty */
   if (phys->nr_cells == 0)
     {
-      strcpy(pos, "");
+      strcpy (pos, "");
       len = 0;
     }
   else if (i == phys->nr_cells)
     {
       /* all zero */
-      strcpy(pos, "0");
+      strcpy (pos, "0");
       len = 1;
     }
   else
     {
       for (; i < phys->nr_cells; i++)
        {
-         if (pos != buf) {
-           strcat(pos, ",");
-           pos = strchr(pos, '\0');
-         }
+         if (pos != buf)
+           {
+             strcat (pos, ",");
+             pos = strchr (pos, '\0');
+           }
          if (phys->cells[i] < 10)
            sprintf (pos, "%ld", (unsigned long)phys->cells[i]);
          else
            sprintf (pos, "0x%lx", (unsigned long)phys->cells[i]);
-         pos = strchr(pos, '\0');
+         pos = strchr (pos, '\0');
        }
       len = pos - buf;
     }
@@ -277,11 +272,10 @@ full_name_of_hw (struct hw *leaf,
                 unsigned sizeof_buf)
 {
   /* get a buffer */
-  char full_name[1024];
-  if (buf == (char*)0)
+  if (buf == NULL)
     {
-      buf = full_name;
-      sizeof_buf = sizeof (full_name);
+      sizeof_buf = 1024;
+      buf = hw_malloc (leaf, sizeof_buf);
     }
 
   /* use head recursion to construct the path */
@@ -313,10 +307,7 @@ full_name_of_hw (struct hw *leaf,
       strcat (buf, hw_name (leaf));
       strcat (buf, unit);
     }
-  
-  /* return it usefully */
-  if (buf == full_name)
-    buf = hw_strdup (leaf, full_name);
+
   return buf;
 }
 
@@ -362,7 +353,7 @@ hw_create (struct sim_state *sd,
        root = root->parent_of_hw;
       hw->root_of_hw = root;
     }
-  
+
   /* a unique identifier for the device on the parents bus */
   if (parent != NULL)
     {
@@ -424,7 +415,7 @@ hw_create (struct sim_state *sd,
   create_hw_event_data (hw);
   create_hw_handle_data (hw);
   create_hw_instance_data (hw);
-  
+
   return hw;
 }
 
@@ -461,7 +452,7 @@ hw_finish (struct hw *me)
           && hw_find_property (hw_root (me), "global-trace?") != NULL
           && hw_find_boolean_property (hw_root (me), "global-trace?"))
     me->trace_of_hw_p = 1;
-    
+
 
   /* Allow the real device to override any methods */
   me->base_of_hw->descriptor->to_finish (me);
@@ -511,7 +502,7 @@ hw_delete (struct hw *me)
   delete_hw_alloc_data (me);
 
   /* finally */
-  zfree (me);
+  free (me);
 }
 
 void