|  | /* Functions that provide the mechanism to parse a syscall XML file | 
|  | and get its values. | 
|  |  | 
|  | Copyright (C) 2009-2022 Free Software Foundation, Inc. | 
|  |  | 
|  | This file is part of GDB. | 
|  |  | 
|  | This program is free software; you can redistribute it and/or modify | 
|  | it under the terms of the GNU General Public License as published by | 
|  | the Free Software Foundation; either version 3 of the License, or | 
|  | (at your option) any later version. | 
|  |  | 
|  | This program is distributed in the hope that it will be useful, | 
|  | but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|  | GNU General Public License for more details. | 
|  |  | 
|  | You should have received a copy of the GNU General Public License | 
|  | along with this program.  If not, see <http://www.gnu.org/licenses/>.  */ | 
|  |  | 
|  | #ifndef XML_SYSCALL_H | 
|  | #define XML_SYSCALL_H 1 | 
|  |  | 
|  | /* Function used to set the name of the file which contains | 
|  | information about the system calls present in the current | 
|  | architecture. | 
|  |  | 
|  | This function *should* be called before anything else, otherwise | 
|  | GDB won't be able to find the correct XML file to open and get | 
|  | the syscalls definitions.  */ | 
|  |  | 
|  | void set_xml_syscall_file_name (struct gdbarch *gdbarch, | 
|  | const char *name); | 
|  |  | 
|  | /* Function that retrieves the syscall name corresponding to the given | 
|  | number.  It puts the requested information inside 'struct syscall'.  */ | 
|  |  | 
|  | void get_syscall_by_number (struct gdbarch *gdbarch, | 
|  | int syscall_number, struct syscall *s); | 
|  |  | 
|  | /* Function that retrieves the syscall numbers corresponding to the | 
|  | given name.  The numbers of all syscalls with either a name or | 
|  | alias equal to SYSCALL_NAME are appended to SYSCALL_NUMBERS.  If no | 
|  | matching syscalls are found, return false.  */ | 
|  |  | 
|  | bool get_syscalls_by_name (struct gdbarch *gdbarch, const char *syscall_name, | 
|  | std::vector<int> *syscall_numbers); | 
|  |  | 
|  | /* Function used to retrieve the list of syscalls in the system.  This list | 
|  | is returned as an array of strings.  Returns the list of syscalls in the | 
|  | system, or NULL otherwise.  */ | 
|  |  | 
|  | const char **get_syscall_names (struct gdbarch *gdbarch); | 
|  |  | 
|  | /* Function used to retrieve the list of syscalls of a given group in | 
|  | the system.  The syscall numbers are appended to SYSCALL_NUMBERS. | 
|  | If the group doesn't exist, return false.  */ | 
|  |  | 
|  | bool get_syscalls_by_group (struct gdbarch *gdbarch, const char *group, | 
|  | std::vector<int> *syscall_numbers); | 
|  |  | 
|  | /* Function used to retrieve the list of syscall groups in the system. | 
|  | Return an array of strings terminated by a NULL element.  The list | 
|  | must be freed by the caller.  Return NULL if there is no syscall | 
|  | information available.  */ | 
|  |  | 
|  | const char **get_syscall_group_names (struct gdbarch *gdbarch); | 
|  |  | 
|  | #endif /* XML_SYSCALL_H */ |