X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Flinux-tdep.h;h=913045a954e6d97a40811f3b12ae56af291b9d2c;hb=1d29ab86cb5145cac5045c1a4113d8b8fbd4d9c6;hp=d2f40773c5bc62b889a49618c8a8cc7c015e561d;hpb=6432734d1ddb783a4f7ed377dfe5920013ee9872;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/linux-tdep.h b/gdb/linux-tdep.h index d2f40773c5..913045a954 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-2012 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This file is part of GDB. @@ -24,16 +24,49 @@ 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 target_signal); + enum gdb_signal); + +extern enum gdb_signal linux_gdb_signal_from_target (struct gdbarch *gdbarch, + int signal); -char *linux_make_corefile_notes (struct gdbarch *, bfd *, int *, - linux_collect_thread_registers_ftype); +extern int linux_gdb_signal_to_target (struct gdbarch *gdbarch, + enum gdb_signal signal); -struct type *linux_get_siginfo_type (struct gdbarch *); +/* 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 */