gdb/
[deliverable/binutils-gdb.git] / gdb / osabi.h
CommitLineData
70f80edf 1/* OS ABI variant handling for GDB.
7b6bb8da 2 Copyright (C) 2001, 2002, 2003, 2007, 2008, 2009, 2010, 2011
0fb0cc75 3 Free Software Foundation, Inc.
70f80edf
JT
4
5 This file is part of GDB.
6
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
a9762ec7 9 the Free Software Foundation; either version 3 of the License, or
70f80edf
JT
10 (at your option) any later version.
11
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
a9762ec7 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */
70f80edf
JT
19
20#ifndef OSABI_H
21#define OSABI_H
22
70f80edf
JT
23/* Register an OS ABI sniffer. Each arch/flavour may have more than
24 one sniffer. This is used to e.g. differentiate one OS's a.out from
25 another. The first sniffer to return something other than
26 GDB_OSABI_UNKNOWN wins, so a sniffer should be careful to claim a file
27 only if it knows for sure what it is. */
28void gdbarch_register_osabi_sniffer (enum bfd_architecture,
29 enum bfd_flavour,
30 enum gdb_osabi (*)(bfd *));
31
05816f70
MK
32/* Register a handler for an OS ABI variant for a given architecture
33 and machine type. There should be only one handler for a given OS
34 ABI for each architecture and machine type combination. */
35void gdbarch_register_osabi (enum bfd_architecture, unsigned long,
36 enum gdb_osabi,
70f80edf
JT
37 void (*)(struct gdbarch_info,
38 struct gdbarch *));
39
40/* Lookup the OS ABI corresponding to the specified BFD. */
41enum gdb_osabi gdbarch_lookup_osabi (bfd *);
42
08d16641
PA
43/* Lookup the OS ABI corresponding to the specified target description
44 string. */
45enum gdb_osabi osabi_from_tdesc_string (const char *text);
46
70f80edf 47/* Initialize the gdbarch for the specified OS ABI variant. */
4be87837 48void gdbarch_init_osabi (struct gdbarch_info, struct gdbarch *);
70f80edf
JT
49
50/* Return the name of the specified OS ABI. */
51const char *gdbarch_osabi_name (enum gdb_osabi);
52
53/* Helper routine for ELF file sniffers. This looks at ABI tag note
54 sections to determine the OS ABI from the note. It should be called
55 via bfd_map_over_sections. */
56void generic_elf_osabi_sniff_abi_tag_sections (bfd *, asection *, void *);
57
58#endif /* OSABI_H */
This page took 0.796315 seconds and 4 git commands to generate.