gem5  [DEVELOP-FOR-23.0]
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
remote_gdb.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2021 Huawei International
3  * Copyright (c) 2017 The University of Virginia
4  * Copyright 2015 LabWare
5  * Copyright 2014 Google, Inc.
6  * Copyright (c) 2007 The Regents of The University of Michigan
7  * All rights reserved.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions are
11  * met: redistributions of source code must retain the above copyright
12  * notice, this list of conditions and the following disclaimer;
13  * redistributions in binary form must reproduce the above copyright
14  * notice, this list of conditions and the following disclaimer in the
15  * documentation and/or other materials provided with the distribution;
16  * neither the name of the copyright holders nor the names of its
17  * contributors may be used to endorse or promote products derived from
18  * this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
33 #ifndef __ARCH_RISCV_REMOTE_GDB_HH__
34 #define __ARCH_RISCV_REMOTE_GDB_HH__
35 
36 #include <string>
37 
38 #include "arch/riscv/regs/float.hh"
39 #include "arch/riscv/regs/int.hh"
40 #include "base/remote_gdb.hh"
41 
42 namespace gem5
43 {
44 
45 class System;
46 class ThreadContext;
47 
48 namespace RiscvISA
49 {
50 
51 class RemoteGDB : public BaseRemoteGDB
52 {
53  protected:
54  static const int NumGDBRegs = 4162;
55  static const int NumCSRs = 4096;
56 
57  bool acc(Addr addr, size_t len) override;
58  // A breakpoint will be 2 bytes if it is compressed and 4 if not
59  bool checkBpKind(size_t kind) override { return kind == 2 || kind == 4; }
60 
62  {
64  private:
73  struct GEM5_PACKED
74  {
76  uint32_t pc;
78  uint32_t fflags;
79  uint32_t frm;
80  uint32_t fcsr;
81  // Placeholder for byte alignment
82  uint32_t placeholder;
83  uint32_t cycle;
84  uint32_t time;
85  uint32_t cycleh;
86  uint32_t timeh;
87  uint32_t ustatus;
88  uint32_t uie;
89  uint32_t utvec;
90  uint32_t uscratch;
91  uint32_t uepc;
92  uint32_t ucause;
93  uint32_t utval;
94  uint32_t uip;
95  uint32_t sstatus;
96  uint32_t sedeleg;
97  uint32_t sideleg;
98  uint32_t sie;
99  uint32_t stvec;
100  uint32_t scounteren;
101  uint32_t sscratch;
102  uint32_t sepc;
103  uint32_t scause;
104  uint32_t stval;
105  uint32_t sip;
106  uint32_t satp;
107  uint32_t mvendorid;
108  uint32_t marchid;
109  uint32_t mimpid;
110  uint32_t mhartid;
111  uint32_t mstatus;
112  uint32_t misa;
113  uint32_t medeleg;
114  uint32_t mideleg;
115  uint32_t mie;
116  uint32_t mtvec;
117  uint32_t mcounteren;
118  uint32_t mstatush;
119  uint32_t mscratch;
120  uint32_t mepc;
121  uint32_t mcause;
122  uint32_t mtval;
123  uint32_t mip;
124  uint32_t hstatus;
125  uint32_t hedeleg;
126  uint32_t hideleg;
127  uint32_t hie;
128  uint32_t htvec;
129  uint32_t hscratch;
130  uint32_t hepc;
131  uint32_t hcause;
132  uint32_t hbadaddr;
133  uint32_t hip;
134  } r;
135  public:
136  char *data() const { return (char *)&r; }
137  size_t size() const { return sizeof(r); }
138  void getRegs(ThreadContext*);
139  void setRegs(ThreadContext*) const;
140 
141  const std::string
142  name() const
143  {
144  return gdb->name() + ".RiscvGdbRegCache";
145  }
146  };
148  {
150  private:
159  struct GEM5_PACKED
160  {
162  uint64_t pc;
164  uint32_t fflags;
165  uint32_t frm;
166  uint32_t fcsr;
167  // Placeholder for byte alignment
168  uint32_t placeholder;
169  uint64_t cycle;
170  uint64_t time;
171  uint64_t ustatus;
172  uint64_t uie;
173  uint64_t utvec;
174  uint64_t uscratch;
175  uint64_t uepc;
176  uint64_t ucause;
177  uint64_t utval;
178  uint64_t uip;
179  uint64_t sstatus;
180  uint64_t sedeleg;
181  uint64_t sideleg;
182  uint64_t sie;
183  uint64_t stvec;
184  uint64_t scounteren;
185  uint64_t sscratch;
186  uint64_t sepc;
187  uint64_t scause;
188  uint64_t stval;
189  uint64_t sip;
190  uint64_t satp;
191  uint64_t mvendorid;
192  uint64_t marchid;
193  uint64_t mimpid;
194  uint64_t mhartid;
195  uint64_t mstatus;
196  uint64_t misa;
197  uint64_t medeleg;
198  uint64_t mideleg;
199  uint64_t mie;
200  uint64_t mtvec;
201  uint64_t mcounteren;
202  uint64_t mscratch;
203  uint64_t mepc;
204  uint64_t mcause;
205  uint64_t mtval;
206  uint64_t mip;
207  uint64_t hstatus;
208  uint64_t hedeleg;
209  uint64_t hideleg;
210  uint64_t hie;
211  uint64_t htvec;
212  uint64_t hscratch;
213  uint64_t hepc;
214  uint64_t hcause;
215  uint64_t hbadaddr;
216  uint64_t hip;
217  } r;
218  public:
219  char *data() const { return (char *)&r; }
220  size_t size() const { return sizeof(r); }
221  void getRegs(ThreadContext*);
222  void setRegs(ThreadContext*) const;
223 
224  const std::string
225  name() const
226  {
227  return gdb->name() + ".RiscvGdbRegCache";
228  }
229  };
230 
233 
234  public:
235  RemoteGDB(System *_system, ListenSocketConfig _listen_config);
236  BaseGdbRegCache *gdbRegs() override;
242  availableFeatures() const override
243  {
244  return {"qXfer:features:read+"};
245  };
249  bool getXferFeaturesRead(const std::string &annex,
250  std::string &output) override;
251 };
252 
253 } // namespace RiscvISA
254 } // namespace gem5
255 
256 #endif /* __ARCH_RISCV_REMOTE_GDB_H__ */
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::stval
uint32_t stval
Definition: remote_gdb.hh:104
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::sideleg
uint64_t sideleg
Definition: remote_gdb.hh:181
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::mcounteren
uint64_t mcounteren
Definition: remote_gdb.hh:201
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::medeleg
uint32_t medeleg
Definition: remote_gdb.hh:113
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::mhartid
uint32_t mhartid
Definition: remote_gdb.hh:110
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::hstatus
uint64_t hstatus
Definition: remote_gdb.hh:207
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::fpu
uint64_t fpu[float_reg::NumRegs]
Definition: remote_gdb.hh:77
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::placeholder
uint32_t placeholder
Definition: remote_gdb.hh:82
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::data
char * data() const
Return the pointer to the raw bytes buffer containing the register values.
Definition: remote_gdb.hh:219
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::frm
uint32_t frm
Definition: remote_gdb.hh:165
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::frm
uint32_t frm
Definition: remote_gdb.hh:79
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::getRegs
void getRegs(ThreadContext *)
Fill the raw buffer from the registers in the ThreadContext.
Definition: remote_gdb.cc:225
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::hedeleg
uint32_t hedeleg
Definition: remote_gdb.hh:125
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::sstatus
uint32_t sstatus
Definition: remote_gdb.hh:95
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::stvec
uint32_t stvec
Definition: remote_gdb.hh:99
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::mcause
uint64_t mcause
Definition: remote_gdb.hh:204
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::satp
uint32_t satp
Definition: remote_gdb.hh:106
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::mtvec
uint32_t mtvec
Definition: remote_gdb.hh:116
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::size
size_t size() const
Return the size of the raw buffer, in bytes (i.e., half of the number of digits in the g/G packet).
Definition: remote_gdb.hh:137
gem5::output
static void output(const char *filename)
Definition: debug.cc:60
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::hedeleg
uint64_t hedeleg
Definition: remote_gdb.hh:208
remote_gdb.hh
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::fflags
uint32_t fflags
Definition: remote_gdb.hh:78
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::time
uint32_t time
Definition: remote_gdb.hh:84
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache
Definition: remote_gdb.hh:147
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::mscratch
uint32_t mscratch
Definition: remote_gdb.hh:119
gem5::ListenSocketConfig
Definition: socket.hh:114
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::hideleg
uint64_t hideleg
Definition: remote_gdb.hh:209
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::fcsr
uint32_t fcsr
Definition: remote_gdb.hh:80
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::mtval
uint64_t mtval
Definition: remote_gdb.hh:205
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::utvec
uint32_t utvec
Definition: remote_gdb.hh:89
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::hip
uint32_t hip
Definition: remote_gdb.hh:133
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::sedeleg
uint32_t sedeleg
Definition: remote_gdb.hh:96
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::marchid
uint64_t marchid
Definition: remote_gdb.hh:192
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::mtvec
uint64_t mtvec
Definition: remote_gdb.hh:200
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::hie
uint64_t hie
Definition: remote_gdb.hh:210
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::utval
uint32_t utval
Definition: remote_gdb.hh:93
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::misa
uint64_t misa
Definition: remote_gdb.hh:196
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::getRegs
void getRegs(ThreadContext *)
Fill the raw buffer from the registers in the ThreadContext.
Definition: remote_gdb.cc:420
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::utvec
uint64_t utvec
Definition: remote_gdb.hh:173
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::mtval
uint32_t mtval
Definition: remote_gdb.hh:122
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::mimpid
uint64_t mimpid
Definition: remote_gdb.hh:193
gem5::RiscvISA::RemoteGDB::RemoteGDB
RemoteGDB(System *_system, ListenSocketConfig _listen_config)
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::htvec
uint64_t htvec
Definition: remote_gdb.hh:211
gem5::RiscvISA::RemoteGDB::gdbRegs
BaseGdbRegCache * gdbRegs() override
std::vector< std::string >
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::gpr
uint32_t gpr[int_reg::NumArchRegs]
Definition: remote_gdb.hh:75
float.hh
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::mhartid
uint64_t mhartid
Definition: remote_gdb.hh:194
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::sip
uint64_t sip
Definition: remote_gdb.hh:189
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::ucause
uint64_t ucause
Definition: remote_gdb.hh:176
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache
Definition: remote_gdb.hh:61
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::marchid
uint32_t marchid
Definition: remote_gdb.hh:108
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::pc
uint32_t pc
Definition: remote_gdb.hh:76
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::misa
uint32_t misa
Definition: remote_gdb.hh:112
gem5::BaseGdbRegCache
Concrete subclasses of this abstract class represent how the register values are transmitted on the w...
Definition: remote_gdb.hh:85
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::hbadaddr
uint64_t hbadaddr
Definition: remote_gdb.hh:215
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::hstatus
uint32_t hstatus
Definition: remote_gdb.hh:124
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::sideleg
uint32_t sideleg
Definition: remote_gdb.hh:97
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::ustatus
uint64_t ustatus
Definition: remote_gdb.hh:171
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::hcause
uint32_t hcause
Definition: remote_gdb.hh:131
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::mimpid
uint32_t mimpid
Definition: remote_gdb.hh:109
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::uie
uint32_t uie
Definition: remote_gdb.hh:88
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::sstatus
uint64_t sstatus
Definition: remote_gdb.hh:179
gem5::RiscvISA::RemoteGDB::checkBpKind
bool checkBpKind(size_t kind) override
Definition: remote_gdb.hh:59
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::mstatush
uint32_t mstatush
Definition: remote_gdb.hh:118
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::scounteren
uint32_t scounteren
Definition: remote_gdb.hh:100
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::mstatus
uint32_t mstatus
Definition: remote_gdb.hh:111
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::uip
uint64_t uip
Definition: remote_gdb.hh:178
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::sie
uint64_t sie
Definition: remote_gdb.hh:182
gem5::RiscvISA::RemoteGDB::acc
bool acc(Addr addr, size_t len) override
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::r
struct gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED r
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::gpr
uint64_t gpr[int_reg::NumArchRegs]
Definition: remote_gdb.hh:161
gem5::System
Definition: system.hh:74
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::mepc
uint64_t mepc
Definition: remote_gdb.hh:203
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::uip
uint32_t uip
Definition: remote_gdb.hh:94
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::hcause
uint64_t hcause
Definition: remote_gdb.hh:214
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::mideleg
uint64_t mideleg
Definition: remote_gdb.hh:198
gem5::RiscvISA::RemoteGDB::getXferFeaturesRead
bool getXferFeaturesRead(const std::string &annex, std::string &output) override
Reply to qXfer:features:read:xxx.xml qeuries.
gem5::ThreadContext
ThreadContext is the external interface to all thread state for anything outside of the CPU.
Definition: thread_context.hh:88
gem5::RiscvISA::RemoteGDB
Definition: remote_gdb.hh:51
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::mscratch
uint64_t mscratch
Definition: remote_gdb.hh:202
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::hepc
uint64_t hepc
Definition: remote_gdb.hh:213
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::mcounteren
uint32_t mcounteren
Definition: remote_gdb.hh:117
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::scounteren
uint64_t scounteren
Definition: remote_gdb.hh:184
gem5::BaseRemoteGDB::name
std::string name()
Definition: remote_gdb.cc:409
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::mvendorid
uint64_t mvendorid
Definition: remote_gdb.hh:191
len
uint16_t len
Definition: helpers.cc:62
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::htvec
uint32_t htvec
Definition: remote_gdb.hh:128
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::sscratch
uint32_t sscratch
Definition: remote_gdb.hh:101
gem5::RiscvISA::float_reg::NumRegs
@ NumRegs
Definition: float.hh:152
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::sepc
uint32_t sepc
Definition: remote_gdb.hh:102
gem5::RiscvISA::RemoteGDB::regCache64
Riscv64GdbRegCache regCache64
Definition: remote_gdb.hh:232
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::setRegs
void setRegs(ThreadContext *) const
Set the ThreadContext's registers from the values in the raw buffer.
Definition: remote_gdb.cc:528
gem5::BaseGdbRegCache::gdb
BaseRemoteGDB * gdb
Definition: remote_gdb.hh:140
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED
RISC-V Register Cache Order and sizes of registers found in ext/gdb-xml/riscv.xml To add support for ...
Definition: remote_gdb.hh:159
gem5::RiscvISA::RemoteGDB::NumCSRs
static const int NumCSRs
Definition: remote_gdb.hh:55
gem5::RiscvISA::RemoteGDB::regCache32
Riscv32GdbRegCache regCache32
Definition: remote_gdb.hh:231
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::fpu
uint64_t fpu[float_reg::NumRegs]
Definition: remote_gdb.hh:163
gem5::BaseGdbRegCache::BaseGdbRegCache
BaseGdbRegCache(BaseRemoteGDB *g)
Definition: remote_gdb.hh:134
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::pc
uint64_t pc
Definition: remote_gdb.hh:162
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::time
uint64_t time
Definition: remote_gdb.hh:170
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::data
char * data() const
Return the pointer to the raw bytes buffer containing the register values.
Definition: remote_gdb.hh:136
gem5::Addr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition: types.hh:147
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::size
size_t size() const
Return the size of the raw buffer, in bytes (i.e., half of the number of digits in the g/G packet).
Definition: remote_gdb.hh:220
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::setRegs
void setRegs(ThreadContext *) const
Set the ThreadContext's registers from the values in the raw buffer.
Definition: remote_gdb.cc:339
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED
RISC-V Register Cache Order and sizes of registers found in ext/gdb-xml/riscv.xml To add support for ...
Definition: remote_gdb.hh:73
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::utval
uint64_t utval
Definition: remote_gdb.hh:177
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::stval
uint64_t stval
Definition: remote_gdb.hh:188
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::mvendorid
uint32_t mvendorid
Definition: remote_gdb.hh:107
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::placeholder
uint32_t placeholder
Definition: remote_gdb.hh:168
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::uscratch
uint32_t uscratch
Definition: remote_gdb.hh:90
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::uepc
uint64_t uepc
Definition: remote_gdb.hh:175
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::sedeleg
uint64_t sedeleg
Definition: remote_gdb.hh:180
gem5::RiscvISA::RemoteGDB::NumGDBRegs
static const int NumGDBRegs
Definition: remote_gdb.hh:54
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::uie
uint64_t uie
Definition: remote_gdb.hh:172
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::timeh
uint32_t timeh
Definition: remote_gdb.hh:86
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::satp
uint64_t satp
Definition: remote_gdb.hh:190
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::uepc
uint32_t uepc
Definition: remote_gdb.hh:91
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::name
const std::string name() const
Return the name to use in places like DPRINTF.
Definition: remote_gdb.hh:225
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::hepc
uint32_t hepc
Definition: remote_gdb.hh:130
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::fflags
uint32_t fflags
Definition: remote_gdb.hh:164
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::cycleh
uint32_t cycleh
Definition: remote_gdb.hh:85
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::scause
uint32_t scause
Definition: remote_gdb.hh:103
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::uscratch
uint64_t uscratch
Definition: remote_gdb.hh:174
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::name
const std::string name() const
Return the name to use in places like DPRINTF.
Definition: remote_gdb.hh:142
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::stvec
uint64_t stvec
Definition: remote_gdb.hh:183
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::r
struct gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED r
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::medeleg
uint64_t medeleg
Definition: remote_gdb.hh:197
gem5::RiscvISA::int_reg::NumArchRegs
@ NumArchRegs
Definition: int.hh:75
gem5::RiscvISA::RemoteGDB::availableFeatures
std::vector< std::string > availableFeatures() const override
Informs GDB remote serial protocol that XML features are supported GDB then queries for xml blobs usi...
Definition: remote_gdb.hh:242
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::mideleg
uint32_t mideleg
Definition: remote_gdb.hh:114
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::mcause
uint32_t mcause
Definition: remote_gdb.hh:121
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::hscratch
uint32_t hscratch
Definition: remote_gdb.hh:129
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::cycle
uint32_t cycle
Definition: remote_gdb.hh:83
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::mstatus
uint64_t mstatus
Definition: remote_gdb.hh:195
gem5::BaseRemoteGDB
Definition: remote_gdb.hh:48
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::sepc
uint64_t sepc
Definition: remote_gdb.hh:186
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::hip
uint64_t hip
Definition: remote_gdb.hh:216
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::hbadaddr
uint32_t hbadaddr
Definition: remote_gdb.hh:132
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::sscratch
uint64_t sscratch
Definition: remote_gdb.hh:185
gem5
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Definition: gpu_translation_state.hh:37
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::mepc
uint32_t mepc
Definition: remote_gdb.hh:120
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::hscratch
uint64_t hscratch
Definition: remote_gdb.hh:212
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::sip
uint32_t sip
Definition: remote_gdb.hh:105
int.hh
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::mip
uint32_t mip
Definition: remote_gdb.hh:123
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::scause
uint64_t scause
Definition: remote_gdb.hh:187
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::fcsr
uint32_t fcsr
Definition: remote_gdb.hh:166
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::cycle
uint64_t cycle
Definition: remote_gdb.hh:169
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::hideleg
uint32_t hideleg
Definition: remote_gdb.hh:126
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::mie
uint32_t mie
Definition: remote_gdb.hh:115
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::ustatus
uint32_t ustatus
Definition: remote_gdb.hh:87
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::ucause
uint32_t ucause
Definition: remote_gdb.hh:92
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::mie
uint64_t mie
Definition: remote_gdb.hh:199
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::sie
uint32_t sie
Definition: remote_gdb.hh:98
gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED::hie
uint32_t hie
Definition: remote_gdb.hh:127
gem5::X86ISA::addr
Bitfield< 3 > addr
Definition: types.hh:84
gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED::mip
uint64_t mip
Definition: remote_gdb.hh:206

Generated on Sun Jul 30 2023 01:56:47 for gem5 by doxygen 1.8.17