1/* 2 * Copyright (c) 2004-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; --- 105 unchanged lines hidden (view full) --- 114 115 public: 116 PioPort(PioDevice *dev, Platform *p); 117 118 friend class PioPort::SendEvent; 119}; 120 121 |
122class DmaPort : public Port |
123{ |
124 protected: 125 struct DmaReqState : public Packet::SenderState 126 { 127 /** Event to call on the device when this transaction (all packets) 128 * complete. */ 129 Event *completionEvent; |
130 |
131 /** Where we came from for some sanity checking. */ 132 Port *outPort; |
133 |
134 /** Total number of bytes that this transaction involves. */ 135 Addr totBytes; |
136 |
137 /** Number of bytes that have been acked for this transaction. */ 138 Addr numBytes; |
139 |
140 DmaReqState(Event *ce, Port *p, Addr tb) 141 : completionEvent(ce), outPort(p), totBytes(tb), numBytes(0) 142 {} 143 }; |
144 |
145 DmaDevice *device; 146 std::list<Packet*> transmitList; 147 148 /** The platform that device/port are in. This is used to select which mode 149 * we are currently operating in. */ 150 Platform *platform; 151 152 /** Number of outstanding packets the dma port has. */ --- 179 unchanged lines hidden --- |