33#ifndef __ARCH_RISCV_REMOTE_GDB_HH__
34#define __ARCH_RISCV_REMOTE_GDB_HH__
61 bool checkBpKind(
size_t kind)
override {
return kind == 2 || kind == 4; }
142 size_t size()
const {
return sizeof(
r); }
149 return gdb->
name() +
".RiscvGdbRegCache";
226 size_t size()
const {
return sizeof(
r); }
233 return gdb->
name() +
".RiscvGdbRegCache";
250 return {
"qXfer:features:read+"};
256 std::string &
output)
override;
Concrete subclasses of this abstract class represent how the register values are transmitted on the w...
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.
char * data()
Return the pointer to the raw bytes buffer containing the register values.
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).
char * data()
Return the pointer to the raw bytes buffer containing the register values.
const std::string name() const
Return the name to use in places like DPRINTF.
void setRegs(ThreadContext *) const
Set the ThreadContext's registers from the values in the raw buffer.
void removeHardBreak(Addr addr, size_t kind) override
BaseGdbRegCache * gdbRegs() override
virtual PrivilegeModeSet getPrivilegeModeSet(ThreadContext *tc)
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
void insertHardBreak(Addr addr, size_t kind) override
Riscv32GdbRegCache regCache32
Riscv64GdbRegCache regCache64
virtual RiscvType getRvType(ThreadContext *tc)
RemoteGDB(System *_system, ListenSocketConfig _listen_config)
ThreadContext is the external interface to all thread state for anything outside of the CPU.
BaseGdbRegCache(BaseRemoteGDB *g)
enums::RiscvType RiscvType
enums::PrivilegeModeSet PrivilegeModeSet
Copyright (c) 2024 Arm Limited 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]