update name of several Ada fixed-point type handling functions
[binutils-gdb.git] / gdbserver / nto-low.h
blobe26dcab331d28e8f77b7e5ca7aad2ddfa1ee2e3d
1 /* Internal interfaces for the QNX Neutrino specific target code for gdbserver.
2 Copyright (C) 2009-2020 Free Software Foundation, Inc.
4 This file is part of GDB.
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>. */
19 #ifndef GDBSERVER_NTO_LOW_H
20 #define GDBSERVER_NTO_LOW_H
22 struct target_desc;
24 enum regset_type
26 NTO_REG_GENERAL,
27 NTO_REG_FLOAT,
28 NTO_REG_SYSTEM,
29 NTO_REG_ALT,
30 NTO_REG_END
33 struct nto_target_ops
35 /* Architecture specific setup. */
36 void (*arch_setup) (void);
37 int num_regs;
38 int (*register_offset) (int gdbregno);
39 const unsigned char *breakpoint;
40 int breakpoint_len;
43 extern struct nto_target_ops the_low_target;
45 /* Target ops definitions for a QNX Neutrino target. */
47 class nto_process_target : public process_stratum_target
49 public:
51 int create_inferior (const char *program,
52 const std::vector<char *> &program_args) override;
54 int attach (unsigned long pid) override;
56 int kill (process_info *proc) override;
58 int detach (process_info *proc) override;
60 void mourn (process_info *proc) override;
62 void join (int pid) override;
64 bool thread_alive (ptid_t pid) override;
66 void resume (thread_resume *resume_info, size_t n) override;
68 ptid_t wait (ptid_t ptid, target_waitstatus *status,
69 int options) override;
71 void fetch_registers (regcache *regcache, int regno) override;
73 void store_registers (regcache *regcache, int regno) override;
75 int read_memory (CORE_ADDR memaddr, unsigned char *myaddr,
76 int len) override;
78 int write_memory (CORE_ADDR memaddr, const unsigned char *myaddr,
79 int len) override;
81 void request_interrupt () override;
83 bool supports_read_auxv () override;
85 int read_auxv (CORE_ADDR offset, unsigned char *myaddr,
86 unsigned int len) override;
88 bool supports_z_point_type (char z_type) override;
90 int insert_point (enum raw_bkpt_type type, CORE_ADDR addr,
91 int size, raw_breakpoint *bp) override;
93 int remove_point (enum raw_bkpt_type type, CORE_ADDR addr,
94 int size, raw_breakpoint *bp) override;
96 bool supports_hardware_single_step () override;
98 bool stopped_by_watchpoint () override;
100 CORE_ADDR stopped_data_address () override;
102 const gdb_byte *sw_breakpoint_from_kind (int kind, int *size) override;
105 /* The inferior's target description. This is a global because the
106 LynxOS ports support neither bi-arch nor multi-process. */
107 extern const struct target_desc *nto_tdesc;
109 #endif /* GDBSERVER_NTO_LOW_H */