port.cc (3918:1f9a98d198e8) | port.cc (4022:c422464ca16e) |
---|---|
1/* 2 * Copyright (c) 2002-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 32 unchanged lines hidden (view full) --- 41void 42Port::setPeer(Port *port) 43{ 44 DPRINTF(Config, "setting peer to %s\n", port->name()); 45 peer = port; 46} 47 48void | 1/* 2 * Copyright (c) 2002-2005 The Regents of The University of Michigan 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are 7 * met: redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer; --- 32 unchanged lines hidden (view full) --- 41void 42Port::setPeer(Port *port) 43{ 44 DPRINTF(Config, "setting peer to %s\n", port->name()); 45 peer = port; 46} 47 48void |
49Port::blobHelper(Addr addr, uint8_t *p, int size, Packet::Command cmd) | 49Port::blobHelper(Addr addr, uint8_t *p, int size, MemCmd cmd) |
50{ 51 Request req; 52 Packet pkt(&req, cmd, Packet::Broadcast); 53 54 for (ChunkGenerator gen(addr, size, peerBlockSize()); 55 !gen.done(); gen.next()) { 56 req.setPhys(gen.addr(), gen.size(), 0); 57 pkt.reinitFromRequest(); 58 pkt.dataStatic(p); 59 sendFunctional(&pkt); 60 p += gen.size(); 61 } 62} 63 64void 65Port::writeBlob(Addr addr, uint8_t *p, int size) 66{ | 50{ 51 Request req; 52 Packet pkt(&req, cmd, Packet::Broadcast); 53 54 for (ChunkGenerator gen(addr, size, peerBlockSize()); 55 !gen.done(); gen.next()) { 56 req.setPhys(gen.addr(), gen.size(), 0); 57 pkt.reinitFromRequest(); 58 pkt.dataStatic(p); 59 sendFunctional(&pkt); 60 p += gen.size(); 61 } 62} 63 64void 65Port::writeBlob(Addr addr, uint8_t *p, int size) 66{ |
67 blobHelper(addr, p, size, Packet::WriteReq); | 67 blobHelper(addr, p, size, MemCmd::WriteReq); |
68} 69 70void 71Port::readBlob(Addr addr, uint8_t *p, int size) 72{ | 68} 69 70void 71Port::readBlob(Addr addr, uint8_t *p, int size) 72{ |
73 blobHelper(addr, p, size, Packet::ReadReq); | 73 blobHelper(addr, p, size, MemCmd::ReadReq); |
74} 75 76void 77Port::memsetBlob(Addr addr, uint8_t val, int size) 78{ 79 // quick and dirty... 80 uint8_t *buf = new uint8_t[size]; 81 82 std::memset(buf, val, size); | 74} 75 76void 77Port::memsetBlob(Addr addr, uint8_t val, int size) 78{ 79 // quick and dirty... 80 uint8_t *buf = new uint8_t[size]; 81 82 std::memset(buf, val, size); |
83 blobHelper(addr, buf, size, Packet::WriteReq); | 83 blobHelper(addr, buf, size, MemCmd::WriteReq); |
84 85 delete [] buf; 86} | 84 85 delete [] buf; 86} |