MEM: Move all read/write blob functions from Port to PortProxy
Review Request #1049 - Created Feb. 14, 2012 and submitted
| Information | |
|---|---|
| Andreas Hansson | |
| gem5 | |
| default | |
| Reviewers | |
| Default | |
MEM: Move all read/write blob functions from Port to PortProxy This patch moves the readBlob/writeBlob/memsetBlob from the Port class to the PortProxy class, thus making a clear separation of the basic port functionality (recv/send functional/atomic/timing), and the higher-level functional accessors available on the port proxies. There are only a few places in the code base where the blob functions were used on ports, and they are all for peeking into the memory system without making a normal memory access (in the memtest, and the malta and tsunami pchip). The memtest also exemplifies how easy it is to create a non-translating proxy if desired. The malta and tsunami pchip used a slave port to perform a functional read, and this is now changed to rely on the physProxy of the system (to which they already have a pointer).
util/regress all passing (disregarding t1000 and eio)
Ship It!
Looks good other than the (optional) creation of port_proxy.cc.
-
src/mem/port_proxy.hh (Diff revision 1) -
I think I may have talked you out of creating a port_proxy.cc earlier when there wasn't so much code here, but now I'm having second thoughts... this is a pretty hefty function to have inlined in a header.
-
src/mem/port_proxy.hh (Diff revision 1) -
If you create a .cc file, I'd move this function definition there too.
