Make a function to say how big gdbregs is in bytes vs. regs.

--HG--
extra : convert_revision : 10c50c2d45a8e510d71cccde520059363116da8a
This commit is contained in:
Gabe Black 2006-11-08 15:31:52 -05:00
parent 63bbc8929d
commit 42c73c6a92
3 changed files with 8 additions and 7 deletions

View file

@ -141,7 +141,7 @@ using namespace TheISA;
RemoteGDB::RemoteGDB(System *_system, ThreadContext *c)
: BaseRemoteGDB(_system, c, KGDB_NUMREGS)
{
memset(gdbregs.regs, 0, gdbregs.size);
memset(gdbregs.regs, 0, gdbregs.bytes());
}
///////////////////////////////////////////////////////////
@ -201,7 +201,7 @@ RemoteGDB::acc(Addr va, size_t len)
void
RemoteGDB::getregs()
{
memset(gdbregs.regs, 0, gdbregs.size);
memset(gdbregs.regs, 0, gdbregs.bytes());
gdbregs.regs[KGDB_REG_PC] = context->readPC();

View file

@ -247,7 +247,7 @@ BaseRemoteGDB::BaseRemoteGDB(System *_system, ThreadContext *c, size_t cacheSize
system(_system), pmem(_system->physmem), context(c),
gdbregs(cacheSize)
{
memset(gdbregs.regs, 0, gdbregs.size);
memset(gdbregs.regs, 0, gdbregs.bytes());
}
BaseRemoteGDB::~BaseRemoteGDB()
@ -610,7 +610,7 @@ BaseRemoteGDB::trap(int type)
uint64_t val;
size_t datalen, len;
char data[GDBPacketBufLen + 1];
char buffer[gdbregs.size * 2 + 256];
char buffer[gdbregs.bytes() * 2 + 256];
const char *p;
char command, subcmd;
string var;
@ -662,15 +662,15 @@ BaseRemoteGDB::trap(int type)
continue;
case GDBRegR:
if (2 * gdbregs.size > sizeof(buffer))
if (2 * gdbregs.bytes() > sizeof(buffer))
panic("buffer too small");
mem2hex(buffer, gdbregs.regs, gdbregs.size);
mem2hex(buffer, gdbregs.regs, gdbregs.bytes());
send(buffer);
continue;
case GDBRegW:
p = hex2mem(gdbregs.regs, p, gdbregs.size);
p = hex2mem(gdbregs.regs, p, gdbregs.bytes());
if (p == NULL || *p != '\0')
send("E01");
else {

View file

@ -145,6 +145,7 @@ class BaseRemoteGDB
uint64_t * regs;
size_t size;
size_t bytes() { return size * sizeof(uint64_t); }
};
GdbRegCache gdbregs;