135 #include <sys/signal.h>
140 #include "arch/power/gdb-xml/gdb_xml_power64_core.hh"
141 #include "arch/power/gdb-xml/gdb_xml_power_core.hh"
142 #include "arch/power/gdb-xml/gdb_xml_power_fpu.hh"
143 #include "arch/power/gdb-xml/gdb_xml_powerpc_32.hh"
144 #include "arch/power/gdb-xml/gdb_xml_powerpc_64.hh"
148 #include "debug/GDBAcc.hh"
149 #include "debug/GDBMisc.hh"
156 using namespace PowerISA;
159 : BaseRemoteGDB(_system, _port), regCache32(this), regCache64(this)
175 return context()->getProcessPtr()->pTable->lookup(
va) !=
nullptr;
181 DPRINTF(GDBAcc,
"getRegs in remotegdb \n");
184 ByteOrder order = (msr.le ? ByteOrder::little : ByteOrder::big);
210 DPRINTF(GDBAcc,
"setRegs in remotegdb \n");
213 ByteOrder order = (msr.le ? ByteOrder::little : ByteOrder::big);
236 DPRINTF(GDBAcc,
"getRegs in remotegdb \n");
239 ByteOrder order = (msr.le ? ByteOrder::little : ByteOrder::big);
264 DPRINTF(GDBAcc,
"setRegs in remotegdb \n");
267 ByteOrder order = (msr.le ? ByteOrder::little : ByteOrder::big);
298 RemoteGDB::getXferFeaturesRead(
const std::string &annex, std::string &
output)
300 #define GDB_XML(x, s) \
301 { x, std::string(reinterpret_cast<const char *>(Blobs::s), \
303 static const std::map<std::string, std::string> annexMap32{
304 GDB_XML(
"target.xml", gdb_xml_powerpc_32),
305 GDB_XML(
"power-core.xml", gdb_xml_power_core),
306 GDB_XML(
"power-fpu.xml", gdb_xml_power_fpu)
308 static const std::map<std::string, std::string> annexMap64{
309 GDB_XML(
"target.xml", gdb_xml_powerpc_64),
310 GDB_XML(
"power64-core.xml", gdb_xml_power64_core),
311 GDB_XML(
"power-fpu.xml", gdb_xml_power_fpu)
316 auto& annexMap = msr.sf ? annexMap64 : annexMap32;
317 auto it = annexMap.find(annex);
318 if (it == annexMap.end())
Concrete subclasses of this abstract class represent how the register values are transmitted on the w...
Addr instAddr() const
Returns the memory address of the instruction this PC points to.
RemoteGDB(System *_system, int _port)
Register ID: describe an architectural register with its class and index.
ThreadContext is the external interface to all thread state for anything outside of the CPU.
virtual RegVal getReg(const RegId ®) const
virtual const PCStateBase & pcState() const =0
virtual void setReg(const RegId ®, RegVal val)
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
constexpr RegClass intRegClass
constexpr RegClass floatRegClass
std::ostream & output()
Get the ostream from the current global logger.
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
T gtoh(T value, ByteOrder guest_byte_order)
bool FullSystem
The FullSystem variable can be used to determine the current mode of simulation.
T htog(T value, ByteOrder guest_byte_order)
Declarations of a non-full system Page Table.