GDB (xrefs)
Loading...
Searching...
No Matches
osabi.h
Go to the documentation of this file.
1/* OS ABI variant handling for GDB.
2 Copyright (C) 2001-2023 Free Software Foundation, Inc.
3
4 This file is part of GDB.
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>. */
18
19#ifndef OSABI_H
20#define OSABI_H
21
22/* * List of known OS ABIs. If you change this, make sure to update the
23 table in osabi.c. */
52
53/* Register an OS ABI sniffer. Each arch/flavour may have more than
54 one sniffer. This is used to e.g. differentiate one OS's a.out from
55 another. The first sniffer to return something other than
56 GDB_OSABI_UNKNOWN wins, so a sniffer should be careful to claim a file
57 only if it knows for sure what it is. */
58void gdbarch_register_osabi_sniffer (enum bfd_architecture,
59 enum bfd_flavour,
60 enum gdb_osabi (*)(bfd *));
61
62/* Register a handler for an OS ABI variant for a given architecture
63 and machine type. There should be only one handler for a given OS
64 ABI for each architecture and machine type combination. */
65void gdbarch_register_osabi (enum bfd_architecture, unsigned long,
66 enum gdb_osabi,
67 void (*)(struct gdbarch_info,
68 struct gdbarch *));
69
70/* Lookup the OS ABI corresponding to the specified BFD. */
72
73/* Lookup the OS ABI corresponding to the specified target description
74 string. */
75enum gdb_osabi osabi_from_tdesc_string (const char *text);
76
77/* Return true if there's an OS ABI handler for INFO. */
78bool has_gdb_osabi_handler (struct gdbarch_info info);
79
80/* Initialize the gdbarch for the specified OS ABI variant. */
81void gdbarch_init_osabi (struct gdbarch_info, struct gdbarch *);
82
83/* Return the name of the specified OS ABI. */
84const char *gdbarch_osabi_name (enum gdb_osabi);
85
86/* Return a regular expression that matches the OS part of a GNU
87 configury triplet for the given OSABI. */
88const char *osabi_triplet_regexp (enum gdb_osabi osabi);
89
90/* Helper routine for ELF file sniffers. This looks at ABI tag note
91 sections to determine the OS ABI from the note. */
92void generic_elf_osabi_sniff_abi_tag_sections (bfd *, asection *,
93 enum gdb_osabi *);
94
95#endif /* OSABI_H */
void gdbarch_init_osabi(struct gdbarch_info, struct gdbarch *)
Definition osabi.c:382
const char * osabi_triplet_regexp(enum gdb_osabi osabi)
Definition osabi.c:101
bool has_gdb_osabi_handler(struct gdbarch_info info)
Definition osabi.c:376
void gdbarch_register_osabi(enum bfd_architecture, unsigned long, enum gdb_osabi, void(*)(struct gdbarch_info, struct gdbarch *))
Definition osabi.c:146
const char * gdbarch_osabi_name(enum gdb_osabi)
Definition osabi.c:90
void generic_elf_osabi_sniff_abi_tag_sections(bfd *, asection *, enum gdb_osabi *)
Definition osabi.c:461
gdb_osabi
Definition osabi.h:25
@ GDB_OSABI_SOLARIS
Definition osabi.h:31
@ GDB_OSABI_SDE
Definition osabi.h:47
@ GDB_OSABI_NETBSD
Definition osabi.h:34
@ GDB_OSABI_LYNXOS178
Definition osabi.h:45
@ GDB_OSABI_FREEBSD
Definition osabi.h:33
@ GDB_OSABI_LINUX
Definition osabi.h:32
@ GDB_OSABI_OPENBSD
Definition osabi.h:35
@ GDB_OSABI_WINDOWS
Definition osabi.h:40
@ GDB_OSABI_SVR4
Definition osabi.h:29
@ GDB_OSABI_HURD
Definition osabi.h:30
@ GDB_OSABI_DARWIN
Definition osabi.h:43
@ GDB_OSABI_OPENVMS
Definition osabi.h:44
@ GDB_OSABI_INVALID
Definition osabi.h:50
@ GDB_OSABI_DICOS
Definition osabi.h:42
@ GDB_OSABI_QNXNTO
Definition osabi.h:38
@ GDB_OSABI_NONE
Definition osabi.h:27
@ GDB_OSABI_AIX
Definition osabi.h:41
@ GDB_OSABI_CYGWIN
Definition osabi.h:39
@ GDB_OSABI_WINCE
Definition osabi.h:36
@ GDB_OSABI_NEWLIB
Definition osabi.h:46
@ GDB_OSABI_UNKNOWN
Definition osabi.h:26
@ GDB_OSABI_PIKEOS
Definition osabi.h:48
@ GDB_OSABI_GO32
Definition osabi.h:37
void gdbarch_register_osabi_sniffer(enum bfd_architecture, enum bfd_flavour, enum gdb_osabi(*)(bfd *))
enum gdb_osabi gdbarch_lookup_osabi(bfd *)
Definition osabi.c:237
enum gdb_osabi osabi_from_tdesc_string(const char *text)
Definition osabi.c:113