/* Functions that provide the mechanism to parse a syscall XML file
and get its values.
- Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+ Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
This file is part of GDB.
VEC_safe_push (syscall_desc_p, sysinfo->syscalls, sysdesc);
}
-/* Handle the start of a <syscalls_info> element. */
-static void
-syscall_start_syscalls_info (struct gdb_xml_parser *parser,
- const struct gdb_xml_element *element,
- void *user_data,
- VEC(gdb_xml_value_s) *attributes)
-{
- struct syscall_parsing_data *data = user_data;
- struct syscalls_info *sysinfo = data->sysinfo;
-}
-
/* Handle the start of a <syscall> element. */
static void
syscall_start_syscall (struct gdb_xml_parser *parser,
_("Unknown attribute name '%s'."), attrs[i].name);
}
+ gdb_assert (name);
syscall_create_syscall_desc (data->sysinfo, name, number);
}
static const struct gdb_xml_element syselements[] = {
{ "syscalls_info", NULL, syscalls_info_children,
- GDB_XML_EF_NONE, syscall_start_syscalls_info, NULL },
+ GDB_XML_EF_NONE, NULL, NULL },
{ NULL, NULL, NULL, GDB_XML_EF_NONE, NULL, NULL }
};
void *fetcher_baton)
{
struct cleanup *result_cleanup;
- struct gdb_xml_parser *parser;
struct syscall_parsing_data data;
- char *expanded_text;
- int i;
-
- parser = gdb_xml_create_parser_and_cleanup (_("syscalls info"),
- syselements, &data);
- memset (&data, 0, sizeof (struct syscall_parsing_data));
data.sysinfo = allocate_syscalls_info ();
result_cleanup = make_cleanup_free_syscalls_info (data.sysinfo);
- if (gdb_xml_parse (parser, document) == 0)
+ if (gdb_xml_parse_quick (_("syscalls info"), NULL,
+ syselements, document, &data) == 0)
{
/* Parsed successfully. */
discard_cleanups (result_cleanup);
if (dirname != NULL)
make_cleanup (xfree, dirname);
- sysinfo = syscall_parse_xml (full_file, xml_fetch_content_from_file, dirname);
+ sysinfo = syscall_parse_xml (full_file,
+ xml_fetch_content_from_file, dirname);
do_cleanups (back_to);
return sysinfo;
if (sysinfo == NULL)
{
if (xml_syscall_file)
- warning (_("\
-Could not load the syscall XML file `%s/%s'."),
+ warning (_("Could not load the syscall XML file `%s/%s'."),
gdb_datadir, xml_syscall_file);
else
- warning (_("\
-There is no XML file to open."));
+ warning (_("There is no XML file to open."));
- warning (_("\
-GDB will not be able to display syscall names nor to verify if\n\
-any provided syscall numbers are valid."));
+ warning (_("GDB will not be able to display "
+ "syscall names nor to verify if\n"
+ "any provided syscall numbers are valid."));
}
/* Saving the data-directory used to read this XML info. */