/* Routines for handling XML memory maps provided by target.
- Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
- Free Software Foundation, Inc.
+ Copyright (C) 2006-2016 Free Software Foundation, Inc.
This file is part of GDB.
#include "defs.h"
#include "memory-map.h"
-#include "gdb_assert.h"
-#include "exceptions.h"
-
-#include "gdb_string.h"
#if !defined(HAVE_LIBEXPAT)
const struct gdb_xml_element *element,
void *user_data, VEC(gdb_xml_value_s) *attributes)
{
- struct memory_map_parsing_data *data = user_data;
+ struct memory_map_parsing_data *data
+ = (struct memory_map_parsing_data *) user_data;
struct mem_region *r = VEC_safe_push (mem_region_s, *data->memory_map, NULL);
ULONGEST *start_p, *length_p, *type_p;
- start_p = VEC_index (gdb_xml_value_s, attributes, 0)->value;
- length_p = VEC_index (gdb_xml_value_s, attributes, 1)->value;
- type_p = VEC_index (gdb_xml_value_s, attributes, 2)->value;
+ start_p
+ = (ULONGEST *) xml_find_attribute (attributes, "start")->value;
+ length_p
+ = (ULONGEST *) xml_find_attribute (attributes, "length")->value;
+ type_p
+ = (ULONGEST *) xml_find_attribute (attributes, "type")->value;
mem_region_init (r);
r->lo = *start_p;
r->hi = r->lo + *length_p;
- r->attrib.mode = *type_p;
+ r->attrib.mode = (enum mem_access_mode) *type_p;
r->attrib.blocksize = -1;
}
const struct gdb_xml_element *element,
void *user_data, const char *body_text)
{
- struct memory_map_parsing_data *data = user_data;
+ struct memory_map_parsing_data *data
+ = (struct memory_map_parsing_data *) user_data;
struct mem_region *r = VEC_last (mem_region_s, *data->memory_map);
if (r->attrib.mode == MEM_FLASH && r->attrib.blocksize == -1)
const struct gdb_xml_element *element,
void *user_data, VEC(gdb_xml_value_s) *attributes)
{
- struct memory_map_parsing_data *data = user_data;
+ struct memory_map_parsing_data *data
+ = (struct memory_map_parsing_data *) user_data;
char *name;
- name = VEC_index (gdb_xml_value_s, attributes, 0)->value;
+ name = (char *) xml_find_attribute (attributes, "name")->value;
snprintf (data->property_name, sizeof (data->property_name), "%s", name);
}
const struct gdb_xml_element *element,
void *user_data, const char *body_text)
{
- struct memory_map_parsing_data *data = user_data;
+ struct memory_map_parsing_data *data
+ = (struct memory_map_parsing_data *) user_data;
char *name = data->property_name;
if (strcmp (name, "blocksize") == 0)
static void
clear_result (void *p)
{
- VEC(mem_region_s) **result = p;
+ VEC(mem_region_s) **result = (VEC(mem_region_s) **) p;
VEC_free (mem_region_s, *result);
*result = NULL;
}