/* Functions that provide the mechanism to parse a syscall XML file
and get its values.
- Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 2009-2012 Free Software Foundation, Inc.
This file is part of GDB.
xfree (sysinfo);
}
-struct cleanup *
+static struct cleanup *
make_cleanup_free_syscalls_info (struct syscalls_info *sysinfo)
{
return make_cleanup (free_syscalls_info, sysinfo);
_("Unknown attribute name '%s'."), attrs[i].name);
}
+ gdb_assert (name);
syscall_create_syscall_desc (data->sysinfo, name, number);
}
void *fetcher_baton)
{
struct cleanup *result_cleanup;
- struct gdb_xml_parser *parser;
struct syscall_parsing_data data;
- 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);
init_sysinfo (void)
{
/* Should we re-read the XML info for this target? */
- if (my_gdb_datadir && strcmp (my_gdb_datadir, gdb_datadir) != 0)
+ if (my_gdb_datadir && filename_cmp (my_gdb_datadir, gdb_datadir) != 0)
{
/* The data-directory changed from the last time we used it.
It means that we have to re-read the XML info. */