Deleted Added
sdiff udiff text old ( 8598:c7fec2cb91cb ) new ( 8630:05580a8506c7 )
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;

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

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

--- 128 unchanged lines hidden ---