X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdb%2Fnto-tdep.h;h=889553709cb25f81ece9e693d70d57f285604e2e;hb=f5a7c406b1975cde626efed526960f2cf1bdaceb;hp=983fb6c47f0543c551cf3b2a1a3d1501ad088021;hpb=c59fcb4cd4df69ce229b21cff60d79d7ff10ea59;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/nto-tdep.h b/gdb/nto-tdep.h index 983fb6c47f..889553709c 100644 --- a/gdb/nto-tdep.h +++ b/gdb/nto-tdep.h @@ -1,6 +1,6 @@ /* nto-tdep.h - QNX Neutrino target header. - Copyright (C) 2003, 2007, 2008, 2009 Free Software Foundation, Inc. + Copyright (C) 2003-2020 Free Software Foundation, Inc. Contributed by QNX Software Systems Ltd. @@ -19,20 +19,18 @@ You should have received a copy of the GNU General Public License along with this program. If not, see . */ -#ifndef _NTO_TDEP_H -#define _NTO_TDEP_H +#ifndef NTO_TDEP_H +#define NTO_TDEP_H #include "solist.h" #include "osabi.h" #include "regset.h" +#include "gdbthread.h" /* Target operations defined for Neutrino targets (-nto-tdep.c). */ struct nto_target_ops { -/* For 'maintenance debug nto-debug' command. */ - int internal_debugging; - /* The CPUINFO flags from the remote. Currently used by i386 for fxsave but future proofing other hosts. This is initialized in procfs_attach or nto_start_remote @@ -63,7 +61,7 @@ struct nto_target_ops regset, 0 if unknown register. */ int (*register_area) (struct gdbarch *, int, int, unsigned *); -/* Build the Neutrino register set info into the data buffer. +/* Build the Neutrino register set info into the data buffer. Return -1 if unknown regset, 0 otherwise. */ int (*regset_fill) (const struct regcache *, int, char *); @@ -78,8 +76,6 @@ struct nto_target_ops extern struct nto_target_ops current_nto_target; -#define nto_internal_debugging (current_nto_target.internal_debugging) - #define nto_cpuinfo_flags (current_nto_target.cpuinfo_flags) #define nto_cpuinfo_valid (current_nto_target.cpuinfo_valid) @@ -121,7 +117,7 @@ enum OSTYPE_NTO }; -/* These correspond to the DSMSG_* versions in dsmsgs.h. */ +/* These correspond to the DSMSG_* versions in dsmsgs.h. */ enum { NTO_REG_GENERAL, @@ -138,6 +134,30 @@ typedef struct _debug_regs qnx_reg64 padding[1024]; } nto_regset_t; +struct nto_thread_info : public private_thread_info +{ + short tid = 0; + unsigned char state = 0; + unsigned char flags = 0; + std::string name; +}; + +static inline nto_thread_info * +get_nto_thread_info (thread_info *thread) +{ + return static_cast (thread->priv.get ()); +} + +/* Per-inferior data, common for both procfs and remote. */ +struct nto_inferior_data +{ + /* Last stopped flags result from wait function */ + unsigned int stopped_flags = 0; + + /* Last known stopped PC */ + CORE_ADDR stopped_pc = 0; +}; + /* Generic functions in nto-tdep.c. */ void nto_init_solib_absolute_prefix (void); @@ -150,7 +170,8 @@ void nto_relocate_section_addresses (struct so_list *, int nto_map_arch_to_cputype (const char *); -int nto_find_and_open_solib (char *, unsigned, char **); +int nto_find_and_open_solib (const char *, unsigned, + gdb::unique_xmalloc_ptr *); enum gdb_osabi nto_elf_osabi_sniffer (bfd *abfd); @@ -162,4 +183,12 @@ void nto_dummy_supply_regset (struct regcache *regcache, char *regs); int nto_in_dynsym_resolve_code (CORE_ADDR pc); -#endif +const char *nto_extra_thread_info (struct target_ops *self, struct thread_info *); + +LONGEST nto_read_auxv_from_initial_stack (CORE_ADDR inital_stack, + gdb_byte *readbuf, + LONGEST len, size_t sizeof_auxv_t); + +struct nto_inferior_data *nto_inferior_data (struct inferior *inf); + +#endif /* NTO_TDEP_H */