33#ifndef __ARCH_RISCV_REMOTE_GDB_HH__
34#define __ARCH_RISCV_REMOTE_GDB_HH__
59 bool checkBpKind(
size_t kind)
override {
return kind == 2 || kind == 4; }
136 char *
data()
const {
return (
char *)&
r; }
137 size_t size()
const {
return sizeof(
r); }
144 return gdb->
name() +
".RiscvGdbRegCache";
219 char *
data()
const {
return (
char *)&
r; }
220 size_t size()
const {
return sizeof(
r); }
227 return gdb->
name() +
".RiscvGdbRegCache";
244 return {
"qXfer:features:read+"};
250 std::string &
output)
override;
Concrete subclasses of this abstract class represent how the register values are transmitted on the w...
char * data() const
Return the pointer to the raw bytes buffer containing the register values.
void getRegs(ThreadContext *)
Fill the raw buffer from the registers in the ThreadContext.
void setRegs(ThreadContext *) const
Set the ThreadContext's registers from the values in the raw buffer.
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).
const std::string name() const
Return the name to use in places like DPRINTF.
struct gem5::RiscvISA::RemoteGDB::Riscv32GdbRegCache::GEM5_PACKED r
void getRegs(ThreadContext *)
Fill the raw buffer from the registers in the ThreadContext.
struct gem5::RiscvISA::RemoteGDB::Riscv64GdbRegCache::GEM5_PACKED r
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).
const std::string name() const
Return the name to use in places like DPRINTF.
char * data() const
Return the pointer to the raw bytes buffer containing the register values.
void setRegs(ThreadContext *) const
Set the ThreadContext's registers from the values in the raw buffer.
BaseGdbRegCache * gdbRegs() override
std::vector< std::string > availableFeatures() const override
Informs GDB remote serial protocol that XML features are supported GDB then queries for xml blobs usi...
bool getXferFeaturesRead(const std::string &annex, std::string &output) override
Reply to qXfer:features:read:xxx.xml qeuries.
bool acc(Addr addr, size_t len) override
static const int NumGDBRegs
bool checkBpKind(size_t kind) override
Riscv32GdbRegCache regCache32
Riscv64GdbRegCache regCache64
RemoteGDB(System *_system, ListenSocketConfig _listen_config)
ThreadContext is the external interface to all thread state for anything outside of the CPU.
BaseGdbRegCache(BaseRemoteGDB *g)
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
static void output(const char *filename)
RISC-V Register Cache Order and sizes of registers found in ext/gdb-xml/riscv.xml To add support for ...
uint64_t fpu[float_reg::NumRegs]
uint32_t gpr[int_reg::NumArchRegs]
RISC-V Register Cache Order and sizes of registers found in ext/gdb-xml/riscv.xml To add support for ...
uint64_t gpr[int_reg::NumArchRegs]
uint64_t fpu[float_reg::NumRegs]