+static const char **
+xml_list_of_syscalls (struct gdbarch *gdbarch)
+{
+ struct syscalls_info *syscalls_info = gdbarch_syscalls_info (gdbarch);
+
+ if (syscalls_info == NULL)
+ return NULL;
+
+ int nsyscalls = syscalls_info->syscalls.size ();
+ const char **names = XNEWVEC (const char *, nsyscalls + 1);
+
+ int i;
+ for (i = 0; i < syscalls_info->syscalls.size (); i++)
+ names[i] = syscalls_info->syscalls[i]->name.c_str ();
+
+ names[i] = NULL;
+
+ return names;
+}
+
+/* Iterate over the syscall_group_desc element to return a list of
+ syscalls that are part of the given group. If the syscall group
+ doesn't exist, return false. */
+
+static bool
+xml_list_syscalls_by_group (struct gdbarch *gdbarch, const char *group,
+ std::vector<int> *syscalls)