/* 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;
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;
}
/* 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;
}
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 */
strcat (buf, hw_name (leaf));
strcat (buf, unit);
}
-
- /* return it usefully */
- if (buf == full_name)
- buf = hw_strdup (leaf, full_name);
+
return buf;
}
root = root->parent_of_hw;
hw->root_of_hw = root;
}
-
+
/* a unique identifier for the device on the parents bus */
if (parent != NULL)
{
create_hw_event_data (hw);
create_hw_handle_data (hw);
create_hw_instance_data (hw);
-
+
return hw;
}
&& 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);
delete_hw_alloc_data (me);
/* finally */
- zfree (me);
+ free (me);
}
void