summaryrefslogtreecommitdiff
path: root/src/mem/packet.hh
diff options
context:
space:
mode:
authorSteve Reinhardt <stever@eecs.umich.edu>2006-05-31 00:12:29 -0400
committerSteve Reinhardt <stever@eecs.umich.edu>2006-05-31 00:12:29 -0400
commitd77d39daee5c3ba8483d58911a1d5b12c4707040 (patch)
tree55b0fd6943a73d115d6dccad29ff875b60d65726 /src/mem/packet.hh
parent91e3aa629550fcdaa03173f94674a74ac906ae4c (diff)
downloadgem5-d77d39daee5c3ba8483d58911a1d5b12c4707040.tar.xz
Streamline interface to Request object.
src/SConscript: mem/request.cc no longer needed (all functions inline). src/cpu/simple/atomic.cc: src/cpu/simple/base.cc: src/cpu/simple/timing.cc: src/dev/io_device.cc: src/mem/port.cc: Modified Request object interface. src/mem/packet.hh: Modified Request object interface. Address & size are always set together now, so track with single flag. src/mem/request.hh: Streamline interface to support a handful of calls that set multiple fields reflecting common usage patterns. Reduce number of validFoo booleans by combining flags for fields which must be set together. --HG-- extra : convert_revision : 3b499de90d6d5f12f0cc7a9a788663265677fe10
Diffstat (limited to 'src/mem/packet.hh')
-rw-r--r--src/mem/packet.hh21
1 files changed, 8 insertions, 13 deletions
diff --git a/src/mem/packet.hh b/src/mem/packet.hh
index e09ef4b85..4bcc05abd 100644
--- a/src/mem/packet.hh
+++ b/src/mem/packet.hh
@@ -91,10 +91,8 @@ class Packet
* (unlike * addr, size, and src). */
short dest;
- /** Is the 'addr' field valid? */
- bool addrValid;
- /** Is the 'size' field valid? */
- bool sizeValid;
+ /** Are the 'addr' and 'size' fields valid? */
+ bool addrSizeValid;
/** Is the 'src' field valid? */
bool srcValid;
@@ -192,11 +190,8 @@ class Packet
short getDest() const { return dest; }
void setDest(short _dest) { dest = _dest; }
- Addr getAddr() const { assert(addrValid); return addr; }
- void setAddr(Addr _addr) { addr = _addr; addrValid = true; }
-
- int getSize() const { assert(sizeValid); return size; }
- void setSize(int _size) { size = _size; sizeValid = true; }
+ Addr getAddr() const { assert(addrSizeValid); return addr; }
+ int getSize() const { assert(addrSizeValid); return size; }
/** Constructor. Note that a Request object must be constructed
* first, but the Requests's physical address and size fields
@@ -205,7 +200,7 @@ class Packet
Packet(Request *_req, Command _cmd, short _dest)
: data(NULL), staticData(false), dynamicData(false), arrayData(false),
addr(_req->paddr), size(_req->size), dest(_dest),
- addrValid(_req->validPaddr), sizeValid(_req->validSize),
+ addrSizeValid(_req->validPaddr),
srcValid(false),
req(_req), coherence(NULL), senderState(NULL), cmd(_cmd),
result(Unknown)
@@ -223,9 +218,9 @@ class Packet
* multiple transactions. */
void reinitFromRequest() {
assert(req->validPaddr);
- setAddr(req->paddr);
- assert(req->validSize);
- setSize(req->size);
+ addr = req->paddr;
+ size = req->size;
+ addrSizeValid = true;
result = Unknown;
if (dynamicData) {
deleteData();