gem5
[DEVELOP-FOR-23.0]
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
x
Enumerations
_
a
b
c
d
e
f
g
h
i
k
l
m
o
p
q
r
s
t
v
x
Enumerator
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
y
Enumerations
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
w
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Related Functions
:
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
s
t
v
Variables
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
Typedefs
a
b
c
d
g
h
i
l
m
r
s
t
u
w
Enumerations
b
h
i
o
p
Enumerator
h
i
o
Macros
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
arch
riscv
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
61
class
Riscv32GdbRegCache
:
public
BaseGdbRegCache
62
{
63
using
BaseGdbRegCache::BaseGdbRegCache
;
64
private
:
73
struct
GEM5_PACKED
74
{
75
uint32_t
gpr
[
int_reg::NumArchRegs
];
76
uint32_t
pc
;
77
uint64_t
fpu
[
float_reg::NumRegs
];
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
};
147
class
Riscv64GdbRegCache
:
public
BaseGdbRegCache
148
{
149
using
BaseGdbRegCache::BaseGdbRegCache
;
150
private
:
159
struct
GEM5_PACKED
160
{
161
uint64_t
gpr
[
int_reg::NumArchRegs
];
162
uint64_t
pc
;
163
uint64_t
fpu
[
float_reg::NumRegs
];
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
231
Riscv32GdbRegCache
regCache32
;
232
Riscv64GdbRegCache
regCache64
;
233
234
public
:
235
RemoteGDB
(
System
*_system,
ListenSocketConfig
_listen_config);
236
BaseGdbRegCache
*
gdbRegs
()
override
;
241
std::vector<std::string>
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