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; --- 25 unchanged lines hidden (view full) --- 34 */ 35#include <cstring> 36 37#include "base/chunk_generator.hh" 38#include "base/trace.hh" 39#include "mem/mem_object.hh" 40#include "mem/port.hh" 41 |
42class DefaultPeerPort : public Port 43{ 44 protected: 45 void blowUp() 46 { |
47 fatal("%s: Unconnected port!", peer->name()); |
48 } 49 50 public: |
51 DefaultPeerPort() 52 : Port("default_port") |
53 { } 54 55 bool recvTiming(PacketPtr) 56 { 57 blowUp(); 58 return false; 59 } 60 --- 22 unchanged lines hidden (view full) --- 83 void getDeviceAddressRanges(AddrRangeList &, bool &) 84 { 85 blowUp(); 86 } 87 88 bool isDefaultPort() const { return true; } 89}; 90 |
91DefaultPeerPort defaultPeerPort; |
92 |
93Port::Port() 94 : peer(&defaultPeerPort), owner(NULL) |
95{ 96} 97 |
98Port::Port(const std::string &_name, MemObject *_owner) 99 : portName(_name), peer(&defaultPeerPort), owner(_owner) |
100{ |
101} 102 |
103Port::~Port() |
104{ |
105} 106 107void |
108Port::setPeer(Port *port) |
109{ |
110 DPRINTF(Config, "setting peer to %s\n", port->name()); 111 112 peer = port; |
113} 114 115void |
116Port::removeConn() |
117{ |
118 if (peer->getOwner()) 119 peer->getOwner()->deletePortRefs(peer); 120 peer = NULL; |
121} 122 123void 124Port::blobHelper(Addr addr, uint8_t *p, int size, MemCmd cmd) 125{ 126 Request req; 127 128 for (ChunkGenerator gen(addr, size, peerBlockSize()); --- 44 unchanged lines hidden --- |