X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Flinux-tdep.h;h=91c28738f52d3be8b69ec42508521ad27532991f;hb=873657b9e824943ae44c12966c29cbbcd21c986f;hp=50af511562f6426d54f33f91d38a762075b7f2e9;hpb=4aa995e123f47a4aca553ae4ed4fdebe2d00e316;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/linux-tdep.h b/gdb/linux-tdep.h index 50af511562..91c28738f5 100644 --- a/gdb/linux-tdep.h +++ b/gdb/linux-tdep.h @@ -1,6 +1,6 @@ /* Target-dependent code for GNU/Linux, architecture independent. - Copyright (C) 2009 Free Software Foundation, Inc. + Copyright (C) 2009-2020 Free Software Foundation, Inc. This file is part of GDB. @@ -20,6 +20,53 @@ #ifndef LINUX_TDEP_H #define LINUX_TDEP_H -struct type *linux_get_siginfo_type (struct gdbarch *); +#include "bfd.h" + +struct regcache; + +/* Enum used to define the extra fields of the siginfo type used by an + architecture. */ +enum linux_siginfo_extra_field_values +{ + /* Add bound fields into the segmentation fault field. */ + LINUX_SIGINFO_FIELD_ADDR_BND = 1 +}; + +/* Defines a type for the values defined in linux_siginfo_extra_field_values. */ +DEF_ENUM_FLAGS_TYPE (enum linux_siginfo_extra_field_values, + linux_siginfo_extra_fields); + +/* This function is suitable for architectures that + extend/override the standard siginfo in a specific way. */ +struct type *linux_get_siginfo_type_with_fields (struct gdbarch *gdbarch, + linux_siginfo_extra_fields); + +typedef char *(*linux_collect_thread_registers_ftype) (const struct regcache *, + ptid_t, + bfd *, char *, int *, + enum gdb_signal); + +extern enum gdb_signal linux_gdb_signal_from_target (struct gdbarch *gdbarch, + int signal); + +extern int linux_gdb_signal_to_target (struct gdbarch *gdbarch, + enum gdb_signal signal); + +/* Default GNU/Linux implementation of `displaced_step_location', as + defined in gdbarch.h. Determines the entry point from AT_ENTRY in + the target auxiliary vector. */ +extern CORE_ADDR linux_displaced_step_location (struct gdbarch *gdbarch); + +extern void linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch); + +extern int linux_is_uclinux (void); + +/* Fetch the AT_HWCAP entry from the auxv vector for the given TARGET. On + error, 0 is returned. */ +extern CORE_ADDR linux_get_hwcap (struct target_ops *target); + +/* Fetch the AT_HWCAP2 entry from the auxv vector for the given TARGET. On + error, 0 is returned. */ +extern CORE_ADDR linux_get_hwcap2 (struct target_ops *target); #endif /* linux-tdep.h */