| /* Functions that provide the mechanism to parse a syscall XML file | |
| and get its values. | |
| Copyright (C) 2009-2023 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 */ |