GDB (xrefs)
/tmp/gdb-7.10/gdb/nto-tdep.h
Go to the documentation of this file.
1 /* nto-tdep.h - QNX Neutrino target header.
2 
3  Copyright (C) 2003-2015 Free Software Foundation, Inc.
4 
5  Contributed by QNX Software Systems Ltd.
6 
7  This file is part of GDB.
8 
9  This program is free software; you can redistribute it and/or modify
10  it under the terms of the GNU General Public License as published by
11  the Free Software Foundation; either version 3 of the License, or
12  (at your option) any later version.
13 
14  This program is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17  GNU General Public License for more details.
18 
19  You should have received a copy of the GNU General Public License
20  along with this program. If not, see <http://www.gnu.org/licenses/>. */
21 
22 #ifndef _NTO_TDEP_H
23 #define _NTO_TDEP_H
24 
25 #include "solist.h"
26 #include "osabi.h"
27 #include "regset.h"
28 #include "gdbthread.h"
29 
30 /* Target operations defined for Neutrino targets (<target>-nto-tdep.c). */
31 
33 {
34 /* The CPUINFO flags from the remote. Currently used by
35  i386 for fxsave but future proofing other hosts.
36  This is initialized in procfs_attach or nto_start_remote
37  depending on our host/target. It would only be invalid
38  if we were talking to an older pdebug which didn't support
39  the cpuinfo message. */
40  unsigned cpuinfo_flags;
41 
42 /* True if successfully retrieved cpuinfo from remote. */
44 
45 /* Given a register, return an id that represents the Neutrino
46  regset it came from. If reg == -1 update all regsets. */
48 
49  void (*supply_gregset) (struct regcache *, char *);
50 
51  void (*supply_fpregset) (struct regcache *, char *);
52 
53  void (*supply_altregset) (struct regcache *, char *);
54 
55 /* Given a regset, tell gdb about registers stored in data. */
56  void (*supply_regset) (struct regcache *, int, char *);
57 
58 /* Given a register and regset, calculate the offset into the regset
59  and stuff it into the last argument. If regno is -1, calculate the
60  size of the entire regset. Returns length of data, -1 if unknown
61  regset, 0 if unknown register. */
62  int (*register_area) (struct gdbarch *, int, int, unsigned *);
63 
64 /* Build the Neutrino register set info into the data buffer.
65  Return -1 if unknown regset, 0 otherwise. */
66  int (*regset_fill) (const struct regcache *, int, char *);
67 
68 /* Gives the fetch_link_map_offsets function exposure outside of
69  solib-svr4.c so that we can override relocate_section_addresses(). */
70  struct link_map_offsets *(*fetch_link_map_offsets) (void);
71 
72 /* Used by nto_elf_osabi_sniffer to determine if we're connected to an
73  Neutrino target. */
74  enum gdb_osabi (*is_nto_target) (bfd *abfd);
75 };
76 
78 
79 #define nto_cpuinfo_flags (current_nto_target.cpuinfo_flags)
80 
81 #define nto_cpuinfo_valid (current_nto_target.cpuinfo_valid)
82 
83 #define nto_regset_id (current_nto_target.regset_id)
84 
85 #define nto_supply_gregset (current_nto_target.supply_gregset)
86 
87 #define nto_supply_fpregset (current_nto_target.supply_fpregset)
88 
89 #define nto_supply_altregset (current_nto_target.supply_altregset)
90 
91 #define nto_supply_regset (current_nto_target.supply_regset)
92 
93 #define nto_register_area (current_nto_target.register_area)
94 
95 #define nto_regset_fill (current_nto_target.regset_fill)
96 
97 #define nto_fetch_link_map_offsets \
98 (current_nto_target.fetch_link_map_offsets)
99 
100 #define nto_is_nto_target (current_nto_target.is_nto_target)
101 
102 /* Keep this consistant with neutrino syspage.h. */
103 enum
104 {
112 };
113 
114 enum
115 {
118 };
119 
120 /* These correspond to the DSMSG_* versions in dsmsgs.h. */
121 enum
122 {
128 };
129 
130 typedef char qnx_reg64[8];
131 
132 typedef struct _debug_regs
133 {
135 } nto_regset_t;
136 
137 struct private_thread_info
138 {
139  short tid;
140  unsigned char state;
141  unsigned char flags;
142  char name[1];
143 };
144 
145 /* Generic functions in nto-tdep.c. */
146 
148 
149 char **nto_parse_redirection (char *start_argv[], const char **in,
150  const char **out, const char **err);
151 
153  struct target_section *);
154 
155 int nto_map_arch_to_cputype (const char *);
156 
157 int nto_find_and_open_solib (char *, unsigned, char **);
158 
159 enum gdb_osabi nto_elf_osabi_sniffer (bfd *abfd);
160 
161 void nto_initialize_signals (void);
162 
163 /* Dummy function for initializing nto_target_ops on targets which do
164  not define a particular regset. */
165 void nto_dummy_supply_regset (struct regcache *regcache, char *regs);
166 
168 
169 char *nto_extra_thread_info (struct target_ops *self, struct thread_info *);
170 
171 #endif
char * nto_extra_thread_info(struct target_ops *self, struct thread_info *)
Definition: nto-tdep.c:367
bfd_vma CORE_ADDR
Definition: common-types.h:41
void nto_initialize_signals(void)
Definition: nto-tdep.c:376
struct _debug_regs nto_regset_t
int(* register_area)(struct gdbarch *, int, int, unsigned *)
Definition: nto-tdep.h:62
void(* supply_gregset)(struct regcache *, char *)
Definition: nto-tdep.h:49
int nto_in_dynsym_resolve_code(CORE_ADDR pc)
Definition: nto-tdep.c:320
Definition: solist.h:30
int(* regset_id)(int)
Definition: nto-tdep.h:47
enum gdb_osabi(* is_nto_target)(bfd *abfd)
Definition: nto-tdep.h:74
mach_port_t mach_port_t name mach_port_t mach_port_t name error_t err
Definition: gnu-nat.c:1816
int nto_map_arch_to_cputype(const char *)
Definition: nto-tdep.c:69
void(* supply_regset)(struct regcache *, int, char *)
Definition: nto-tdep.h:56
unsigned char state
Definition: nto-tdep.h:140
qnx_reg64 padding[1024]
Definition: nto-tdep.h:134
char ** nto_parse_redirection(char *start_argv[], const char **in, const char **out, const char **err)
Definition: nto-tdep.c:183
void nto_init_solib_absolute_prefix(void)
Definition: nto-tdep.c:148
int nto_find_and_open_solib(char *, unsigned, char **)
Definition: nto-tdep.c:85
const char const char int
Definition: command.h:229
unsigned cpuinfo_flags
Definition: nto-tdep.h:40
enum gdb_osabi nto_elf_osabi_sniffer(bfd *abfd)
Definition: nto-tdep.c:334
void(* supply_altregset)(struct regcache *, char *)
Definition: nto-tdep.h:53
void nto_dummy_supply_regset(struct regcache *regcache, char *regs)
Definition: nto-tdep.c:328
void(* supply_fpregset)(struct regcache *, char *)
Definition: nto-tdep.h:51
char qnx_reg64[8]
Definition: nto-tdep.h:130
struct nto_target_ops current_nto_target
Definition: nto-tdep.c:47
unsigned char flags
Definition: nto-tdep.h:141
int(* regset_fill)(const struct regcache *, int, char *)
Definition: nto-tdep.h:66
void nto_relocate_section_addresses(struct so_list *, struct target_section *)
Definition: nto-tdep.c:305
int cpuinfo_valid
Definition: nto-tdep.h:43
gdb_osabi
Definition: defs.h:540