23#if !defined(HAVE_LIBEXPAT)
25std::vector<mem_region>
28 static int have_warned;
33 warning (_(
"Can not parse XML memory map; XML support was disabled "
37 return std::vector<mem_region> ();
45struct memory_map_parsing_data
47 memory_map_parsing_data (std::vector<mem_region> *memory_map_)
48 : memory_map (memory_map_)
51 std::vector<mem_region> *memory_map;
53 std::string property_name;
59memory_map_start_memory (
struct gdb_xml_parser *parser,
64 struct memory_map_parsing_data *
data
65 = (
struct memory_map_parsing_data *) user_data;
66 ULONGEST *start_p, *length_p, *type_p;
75 data->memory_map->emplace_back (*start_p, *start_p + *length_p,
83memory_map_end_memory (
struct gdb_xml_parser *parser,
85 void *user_data,
const char *body_text)
87 struct memory_map_parsing_data *
data
88 = (
struct memory_map_parsing_data *) user_data;
99memory_map_start_property (
struct gdb_xml_parser *parser,
104 struct memory_map_parsing_data *
data
105 = (
struct memory_map_parsing_data *) user_data;
115memory_map_end_property (
struct gdb_xml_parser *parser,
117 void *user_data,
const char *body_text)
119 struct memory_map_parsing_data *
data
120 = (
struct memory_map_parsing_data *) user_data;
122 if (
data->property_name ==
"blocksize")
130 data->property_name.c_str ());
141 {
"property", property_attributes, NULL,
143 memory_map_start_property, memory_map_end_property },
163 memory_map_start_memory, memory_map_end_memory },
173std::vector<mem_region>
176 std::vector<mem_region> ret;
177 memory_map_parsing_data
data (&ret);
180 memory_map, &data) == 0)
186 return std::vector<mem_region> ();
static struct @5 attributes[]
std::vector< mem_region > parse_memory_map(const char *memory_map)
gdb::unique_xmalloc_ptr< void > value
enum mem_access_mode mode
void void gdb_xml_error(struct gdb_xml_parser *parser, const char *format,...) ATTRIBUTE_NORETURN ATTRIBUTE_PRINTF(2
void void struct gdb_xml_value * xml_find_attribute(std::vector< gdb_xml_value > &attributes, const char *name)
int gdb_xml_parse_quick(const char *name, const char *dtd_name, const struct gdb_xml_element *elements, const char *document, void *user_data)
gdb_xml_attribute_handler gdb_xml_parse_attr_ulongest
void gdb_xml_debug(struct gdb_xml_parser *parser, const char *format,...) ATTRIBUTE_PRINTF(2
ULONGEST gdb_xml_parse_ulongest(struct gdb_xml_parser *parser, const char *value)
gdb_xml_attribute_handler gdb_xml_parse_attr_enum