GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Macros | Enumerations | Functions | Variables
osabi.c File Reference
#include "defs.h"
#include "osabi.h"
#include "arch-utils.h"
#include "gdbcmd.h"
#include "command.h"
#include "gdb_bfd.h"
#include "elf-bfd.h"

Go to the source code of this file.

Classes

struct  osabi_names
 
struct  gdb_osabi_handler
 
struct  gdb_osabi_sniffer
 

Macros

#define GDB_OSABI_DEFAULT   GDB_OSABI_UNKNOWN
 
#define MAX_NOTESZ   128
 

Enumerations

enum  { osabi_auto , osabi_default , osabi_user }
 

Functions

const char * gdbarch_osabi_name (enum gdb_osabi osabi)
 
const char * osabi_triplet_regexp (enum gdb_osabi osabi)
 
enum gdb_osabi osabi_from_tdesc_string (const char *name)
 
void gdbarch_register_osabi (enum bfd_architecture arch, unsigned long machine, enum gdb_osabi osabi, void(*init_osabi)(struct gdbarch_info, struct gdbarch *))
 
void gdbarch_register_osabi_sniffer (enum bfd_architecture arch, enum bfd_flavour flavour, enum gdb_osabi(*sniffer_fn)(bfd *))
 
enum gdb_osabi gdbarch_lookup_osabi (bfd *abfd)
 
static int can_run_code_for (const struct bfd_arch_info *a, const struct bfd_arch_info *b)
 
static struct gdb_osabi_handlergdbarch_osabi_handler (struct gdbarch_info info)
 
bool has_gdb_osabi_handler (struct gdbarch_info info)
 
void gdbarch_init_osabi (struct gdbarch_info info, struct gdbarch *gdbarch)
 
static int check_note (bfd *abfd, asection *sect, char *note, unsigned int *sectsize, const char *name, unsigned long descsz, unsigned long type)
 
void generic_elf_osabi_sniff_abi_tag_sections (bfd *abfd, asection *sect, enum gdb_osabi *osabi)
 
static enum gdb_osabi generic_elf_osabi_sniffer (bfd *abfd)
 
static void set_osabi (const char *args, int from_tty, struct cmd_list_element *c)
 
static void show_osabi (struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
 
void _initialize_gdb_osabi ()
 

Variables

static enum { ... }  user_osabi_state
 
static enum gdb_osabi user_selected_osabi
 
static const char * gdb_osabi_available_names [GDB_OSABI_INVALID+3]
 
static const char * set_osabi_string
 
static const struct osabi_names gdb_osabi_names []
 
static struct gdb_osabi_handlergdb_osabi_handler_list
 
static struct gdb_osabi_sniffergdb_osabi_sniffer_list
 

Macro Definition Documentation

◆ GDB_OSABI_DEFAULT

#define GDB_OSABI_DEFAULT   GDB_OSABI_UNKNOWN

Definition at line 31 of file osabi.c.

Referenced by gdbarch_info_fill(), set_osabi(), and show_osabi().

◆ MAX_NOTESZ

#define MAX_NOTESZ   128

Definition at line 410 of file osabi.c.

Referenced by check_note(), and generic_elf_osabi_sniff_abi_tag_sections().

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
osabi_auto 
osabi_default 
osabi_user 

Definition at line 35 of file osabi.c.

Function Documentation

◆ _initialize_gdb_osabi()

void _initialize_gdb_osabi ( )

Definition at line 673 of file osabi.c.

Referenced by initialize_all_files().

◆ can_run_code_for()

static int can_run_code_for ( const struct bfd_arch_info * a,
const struct bfd_arch_info * b )
static

Definition at line 317 of file osabi.c.

Referenced by gdbarch_osabi_handler().

◆ check_note()

static int check_note ( bfd * abfd,
asection * sect,
char * note,
unsigned int * sectsize,
const char * name,
unsigned long descsz,
unsigned long type )
static

Definition at line 417 of file osabi.c.

References MAX_NOTESZ, and name.

Referenced by generic_elf_osabi_sniff_abi_tag_sections().

◆ gdbarch_init_osabi()

void gdbarch_init_osabi ( struct gdbarch_info info,
struct gdbarch * gdbarch )

◆ gdbarch_lookup_osabi()

enum gdb_osabi gdbarch_lookup_osabi ( bfd * abfd)

◆ gdbarch_osabi_handler()

static struct gdb_osabi_handler * gdbarch_osabi_handler ( struct gdbarch_info info)
static

◆ gdbarch_osabi_name()

const char * gdbarch_osabi_name ( enum gdb_osabi osabi)

◆ gdbarch_register_osabi()

void gdbarch_register_osabi ( enum bfd_architecture arch,
unsigned long machine,
enum gdb_osabi osabi,
void(*)(struct gdbarch_info, struct gdbarch *) init_osabi )

Definition at line 146 of file osabi.c.

References gdb_osabi_available_names, gdb_osabi_handler_list, GDB_OSABI_UNKNOWN, gdbarch_osabi_name(), and gdb_osabi_handler::next.

Referenced by _initialize_aarch64_fbsd_tdep(), _initialize_aarch64_linux_tdep(), _initialize_aarch64_newlib_tdep(), _initialize_alpha_linux_tdep(), _initialize_alphanbsd_tdep(), _initialize_alphaobsd_tdep(), _initialize_amd64_darwin_tdep(), _initialize_amd64_dicos_tdep(), _initialize_amd64_sol2_tdep(), _initialize_amd64_windows_tdep(), _initialize_amd64fbsd_tdep(), _initialize_amd64nbsd_tdep(), _initialize_amd64obsd_tdep(), _initialize_arc_newlib_tdep(), _initialize_arm_fbsd_tdep(), _initialize_arm_linux_tdep(), _initialize_arm_netbsd_tdep(), _initialize_arm_none_tdep(), _initialize_arm_pikeos_tdep(), _initialize_arm_wince_tdep(), _initialize_armobsd_tdep(), _initialize_bfin_linux_tdep(), _initialize_cris_linux_tdep(), _initialize_csky_linux_tdep(), _initialize_frv_linux_tdep(), _initialize_hppa_linux_tdep(), _initialize_hppabsd_tdep(), _initialize_hppanbsd_tdep(), _initialize_i386_darwin_tdep(), _initialize_i386_dicos_tdep(), _initialize_i386_go32_tdep(), _initialize_i386_sol2_tdep(), _initialize_i386_windows_tdep(), _initialize_i386fbsd_tdep(), _initialize_i386gnu_tdep(), _initialize_i386nbsd_tdep(), _initialize_i386nto_tdep(), _initialize_i386obsd_tdep(), _initialize_ia64_linux_tdep(), _initialize_ia64_vms_tdep(), _initialize_loongarch_linux_tdep(), _initialize_m32r_linux_tdep(), _initialize_m68k_linux_tdep(), _initialize_m68k_tdep(), _initialize_m68kbsd_tdep(), _initialize_microblaze_linux_tdep(), _initialize_mips64obsd_tdep(), _initialize_mips_fbsd_tdep(), _initialize_mips_linux_tdep(), _initialize_mips_sde_tdep(), _initialize_mipsnbsd_tdep(), _initialize_mn10300_linux_tdep(), _initialize_nios2_linux_tdep(), _initialize_or1k_linux_tdep(), _initialize_ppc_linux_tdep(), _initialize_ppcfbsd_tdep(), _initialize_ppcnbsd_tdep(), _initialize_ppcobsd_tdep(), _initialize_riscv_fbsd_tdep(), _initialize_riscv_linux_tdep(), _initialize_riscv_none_tdep(), _initialize_rs6000_aix_tdep(), _initialize_rs6000_lynx178_tdep(), _initialize_s390_linux_tdep(), _initialize_sh_linux_tdep(), _initialize_shnbsd_tdep(), _initialize_sparc32obsd_tdep(), _initialize_sparc64_linux_tdep(), _initialize_sparc64_sol2_tdep(), _initialize_sparc64fbsd_tdep(), _initialize_sparc64nbsd_tdep(), _initialize_sparc64obsd_tdep(), _initialize_sparc_linux_tdep(), _initialize_sparc_sol2_tdep(), _initialize_sparcnbsd_tdep(), _initialize_tic6x_linux_tdep(), _initialize_tilegx_linux_tdep(), _initialize_vaxnbsd_tdep(), and _initialize_xtensa_linux_tdep().

◆ gdbarch_register_osabi_sniffer()

void gdbarch_register_osabi_sniffer ( enum bfd_architecture arch,
enum bfd_flavour flavour,
enum gdb_osabi(*)(bfd *) sniffer_fn )

◆ generic_elf_osabi_sniff_abi_tag_sections()

void generic_elf_osabi_sniff_abi_tag_sections ( bfd * abfd,
asection * sect,
enum gdb_osabi * osabi )

◆ generic_elf_osabi_sniffer()

static enum gdb_osabi generic_elf_osabi_sniffer ( bfd * abfd)
static

◆ has_gdb_osabi_handler()

bool has_gdb_osabi_handler ( struct gdbarch_info info)

Definition at line 376 of file osabi.c.

References gdbarch_osabi_handler().

Referenced by selftests::get_test_insn().

◆ osabi_from_tdesc_string()

enum gdb_osabi osabi_from_tdesc_string ( const char * name)

◆ osabi_triplet_regexp()

const char * osabi_triplet_regexp ( enum gdb_osabi osabi)

Definition at line 101 of file osabi.c.

References GDB_OSABI_INVALID, gdb_osabi_names, GDB_OSABI_UNKNOWN, and osabi_names::regexp.

Referenced by compile_to_object().

◆ set_osabi()

static void set_osabi ( const char * args,
int from_tty,
struct cmd_list_element * c )
static

◆ show_osabi()

static void show_osabi ( struct ui_file * file,
int from_tty,
struct cmd_list_element * c,
const char * value )
static

Variable Documentation

◆ gdb_osabi_available_names

const char* gdb_osabi_available_names[GDB_OSABI_INVALID+3]
static
Initial value:
= {
"auto",
"default",
"none",
NULL
}

Definition at line 37 of file osabi.c.

Referenced by gdbarch_register_osabi().

◆ gdb_osabi_handler_list

struct gdb_osabi_handler* gdb_osabi_handler_list
static

Definition at line 143 of file osabi.c.

Referenced by gdbarch_osabi_handler(), and gdbarch_register_osabi().

◆ gdb_osabi_names

const struct osabi_names gdb_osabi_names[]
static
Initial value:
=
{
{ "unknown", NULL },
{ "none", NULL },
{ "SVR4", NULL },
{ "GNU/Hurd", NULL },
{ "Solaris", NULL },
{ "GNU/Linux", "linux(-gnu[^-]*)?" },
{ "FreeBSD", NULL },
{ "NetBSD", NULL },
{ "OpenBSD", NULL },
{ "WindowsCE", NULL },
{ "DJGPP", NULL },
{ "QNX-Neutrino", NULL },
{ "Cygwin", NULL },
{ "Windows", NULL },
{ "AIX", NULL },
{ "DICOS", NULL },
{ "Darwin", NULL },
{ "OpenVMS", NULL },
{ "LynxOS178", NULL },
{ "Newlib", NULL },
{ "SDE", NULL },
{ "PikeOS", NULL },
{ "<invalid>", NULL }
}

Definition at line 60 of file osabi.c.

Referenced by gdbarch_osabi_name(), osabi_from_tdesc_string(), and osabi_triplet_regexp().

◆ gdb_osabi_sniffer_list

struct gdb_osabi_sniffer* gdb_osabi_sniffer_list
static

Definition at line 217 of file osabi.c.

Referenced by gdbarch_lookup_osabi(), and gdbarch_register_osabi_sniffer().

◆ set_osabi_string

const char* set_osabi_string
static

Definition at line 43 of file osabi.c.

Referenced by set_osabi().

◆ []

enum { ... } user_osabi_state

◆ user_selected_osabi

enum gdb_osabi user_selected_osabi
static

Definition at line 36 of file osabi.c.

Referenced by gdbarch_lookup_osabi(), set_osabi(), and show_osabi().