diff -r fdd9932e6ca5 -r f927469c75b7 src/cpu/testers/traffic_gen/generators.hh --- a/src/cpu/testers/traffic_gen/generators.hh Thu Mar 28 10:33:45 2013 +0000 +++ b/src/cpu/testers/traffic_gen/generators.hh Thu Mar 28 10:33:57 2013 +0000 @@ -75,8 +75,10 @@ * @param addr Physical address to use * @param size Size of the request * @param cmd Memory command to send + * @param flags Optional request flags */ - void send(Addr addr, unsigned size, const MemCmd& cmd); + void send(Addr addr, unsigned size, const MemCmd& cmd, + Request::FlagsType flags = 0); public: @@ -328,6 +330,9 @@ /** The time at which the request should be sent */ Tick tick; + /** Potential request flags to use */ + Request::FlagsType flags; + /** * Check validity of this element. * diff -r fdd9932e6ca5 -r f927469c75b7 src/cpu/testers/traffic_gen/generators.cc --- a/src/cpu/testers/traffic_gen/generators.cc Thu Mar 28 10:33:45 2013 +0000 +++ b/src/cpu/testers/traffic_gen/generators.cc Thu Mar 28 10:33:57 2013 +0000 @@ -50,10 +50,10 @@ } void -BaseGen::send(Addr addr, unsigned size, const MemCmd& cmd) +BaseGen::send(Addr addr, unsigned size, const MemCmd& cmd, + Request::FlagsType flags) { // Create new request - Request::Flags flags; Request *req = new Request(addr, size, flags, masterID); // Embed it in a packet @@ -215,6 +215,8 @@ element.addr = pkt_msg.addr(); element.blocksize = pkt_msg.size(); element.tick = pkt_msg.tick(); + if (pkt_msg.has_flags()) + element.flags = pkt_msg.flags(); return true; } @@ -280,14 +282,15 @@ // state graph from executing the state if it should not assert(currElement.isValid()); - DPRINTF(TrafficGen, "TraceGen::execute: %c %d %d %d\n", + DPRINTF(TrafficGen, "TraceGen::execute: %c %d %d %d 0x%x\n", currElement.cmd.isRead() ? 'r' : 'w', currElement.addr, currElement.blocksize, - currElement.tick); + currElement.tick, + currElement.flags); send(currElement.addr + addrOffset, currElement.blocksize, - currElement.cmd); + currElement.cmd, currElement.flags); } void