Deleted Added
sdiff udiff text old ( 8795:0909f8ed7aa0 ) new ( 8796:a2ae5c378d0a )
full compact
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;

--- 115 unchanged lines hidden (view full) ---

124
125 /** Maximum time that device should back off for after failed sendTiming */
126 Tick maxBackoffDelay;
127
128 /** If the port is currently waiting for a retry before it can send whatever
129 * it is that it's sending. */
130 bool inRetry;
131
132 virtual bool recvTiming(PacketPtr pkt);
133 virtual Tick recvAtomic(PacketPtr pkt)
134 { panic("dma port shouldn't be used for pio access."); M5_DUMMY_RETURN }
135 virtual void recvFunctional(PacketPtr pkt)
136 { panic("dma port shouldn't be used for pio access."); }
137
138 virtual void recvStatusChange(Status status)
139 { ; }
140
141 virtual void recvRetry() ;
142
143 virtual void getDeviceAddressRanges(AddrRangeList &resp,
144 bool &snoop)
145 { resp.clear(); snoop = false; }
146
147 void queueDma(PacketPtr pkt, bool front = false);
148 void sendDma();
149
150 /** event to give us a kick every time we backoff time is reached. */
151 EventWrapper<DmaPort, &DmaPort::sendDma> backoffEvent;
152
153 public:
154 DmaPort(MemObject *dev, System *s, Tick min_backoff, Tick max_backoff);
155
156 void dmaAction(Packet::Command cmd, Addr addr, int size, Event *event,
157 uint8_t *data, Tick delay, Request::Flags flag = 0);
158
159 bool dmaPending() { return pendingCount > 0; }
160
161 unsigned cacheBlockSize() const { return peerBlockSize(); }
162 unsigned int drain(Event *de);

--- 123 unchanged lines hidden ---