]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gdb/osabi.h
Automatic Copyright Year update after running gdb/copyright.py
[thirdparty/binutils-gdb.git] / gdb / osabi.h
index f62bde71c4e9990a1494d76542b5fc7fadebfd28..be016732cbcf3b9c53e7506a708fcc01c1740400 100644 (file)
@@ -1,11 +1,11 @@
 /* OS ABI variant handling for GDB.
-   Copyright 2001, 2002 Free Software Foundation, Inc.
+   Copyright (C) 2001-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 2 of the License, or
+   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,
    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, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifndef OSABI_H
 #define OSABI_H
 
-/* List of known OS ABIs.  If you change this, make sure to update the
+/* List of known OS ABIs.  If you change this, make sure to update the
    table in osabi.c.  */
 enum gdb_osabi
 {
-  GDB_OSABI_UNKNOWN = 0,       /* keep this first */
+  GDB_OSABI_UNKNOWN = 0,       /* keep this zero */
+  GDB_OSABI_NONE,
 
   GDB_OSABI_SVR4,
   GDB_OSABI_HURD,
   GDB_OSABI_SOLARIS,
-  GDB_OSABI_OSF1,
   GDB_OSABI_LINUX,
-  GDB_OSABI_FREEBSD_AOUT,
-  GDB_OSABI_FREEBSD_ELF,
-  GDB_OSABI_NETBSD_AOUT,
-  GDB_OSABI_NETBSD_ELF,
+  GDB_OSABI_FREEBSD,
+  GDB_OSABI_NETBSD,
+  GDB_OSABI_OPENBSD,
   GDB_OSABI_WINCE,
   GDB_OSABI_GO32,
-  GDB_OSABI_NETWARE,
-  GDB_OSABI_IRIX,
-  GDB_OSABI_LYNXOS,
-
-  GDB_OSABI_ARM_EABI_V1,
-  GDB_OSABI_ARM_EABI_V2,
-  GDB_OSABI_ARM_APCS,
+  GDB_OSABI_QNXNTO,
+  GDB_OSABI_CYGWIN,
+  GDB_OSABI_WINDOWS,
+  GDB_OSABI_AIX,
+  GDB_OSABI_DICOS,
+  GDB_OSABI_DARWIN,
+  GDB_OSABI_OPENVMS,
+  GDB_OSABI_LYNXOS178,
+  GDB_OSABI_NEWLIB,
+  GDB_OSABI_SDE,
+  GDB_OSABI_PIKEOS,
 
   GDB_OSABI_INVALID            /* keep this last */
 };
@@ -58,25 +59,34 @@ void gdbarch_register_osabi_sniffer (enum bfd_architecture,
                                     enum bfd_flavour,
                                     enum gdb_osabi (*)(bfd *));
 
-/* Register a handler for an OS ABI variant for a given architecture.  There
-   should be only one handler for a given OS ABI each architecture family.  */
-void gdbarch_register_osabi (enum bfd_architecture, enum gdb_osabi,
-                             void (*)(struct gdbarch_info,
+/* Register a handler for an OS ABI variant for a given architecture
+   and machine type.  There should be only one handler for a given OS
+   ABI for each architecture and machine type combination.  */
+void gdbarch_register_osabi (enum bfd_architecture, unsigned long,
+                            enum gdb_osabi,
+                            void (*)(struct gdbarch_info,
                                      struct gdbarch *));
 
 /* Lookup the OS ABI corresponding to the specified BFD.  */
 enum gdb_osabi gdbarch_lookup_osabi (bfd *);
 
+/* Lookup the OS ABI corresponding to the specified target description
+   string.  */
+enum gdb_osabi osabi_from_tdesc_string (const char *text);
+
 /* Initialize the gdbarch for the specified OS ABI variant.  */
-void gdbarch_init_osabi (struct gdbarch_info, struct gdbarch *,
-                         enum gdb_osabi);
+void gdbarch_init_osabi (struct gdbarch_info, struct gdbarch *);
 
 /* Return the name of the specified OS ABI.  */
 const char *gdbarch_osabi_name (enum gdb_osabi);
 
+/* Return a regular expression that matches the OS part of a GNU
+   configury triplet for the given OSABI.  */
+const char *osabi_triplet_regexp (enum gdb_osabi osabi);
+
 /* Helper routine for ELF file sniffers.  This looks at ABI tag note
-   sections to determine the OS ABI from the note.  It should be called
-   via bfd_map_over_sections.  */
-void generic_elf_osabi_sniff_abi_tag_sections (bfd *, asection *, void *);
+   sections to determine the OS ABI from the note.  */
+void generic_elf_osabi_sniff_abi_tag_sections (bfd *, asection *,
+                                              enum gdb_osabi *);
 
 #endif /* OSABI_H */