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; --- 91 unchanged lines hidden (view full) --- 100 101 friend class PioPort; 102 }; 103 104 /** Schedule a sendTiming() event to be called in the future. */ 105 void sendTiming(Packet *pkt, Tick time) 106 { new PioPort::SendEvent(this, pkt, time); } 107 |
108 /** This function is notification that the device should attempt to send a 109 * packet again. */ 110 virtual void recvRetry(); |
111 112 public: 113 PioPort(PioDevice *dev, Platform *p); 114 115 friend class PioPort::SendEvent; 116}; 117 118 --- 23 unchanged lines hidden (view full) --- 142 virtual Tick recvAtomic(Packet *pkt) 143 { panic("dma port shouldn't be used for pio access."); } 144 virtual void recvFunctional(Packet *pkt) 145 { panic("dma port shouldn't be used for pio access."); } 146 147 virtual void recvStatusChange(Status status) 148 { ; } 149 |
150 virtual void recvRetry() ; |
151 152 virtual void getDeviceAddressRanges(AddrRangeList &resp, AddrRangeList &snoop) 153 { resp.clear(); snoop.clear(); } 154 |
155 void sendDma(Packet *pkt); 156 157 public: 158 DmaPort(DmaDevice *dev, Platform *p); 159 160 void dmaAction(Packet::Command cmd, Addr addr, int size, Event *event, 161 uint8_t *data = NULL); 162 163 bool dmaPending() { return pendingCount > 0; } 164 |
165}; 166 167/** 168 * This device is the base class which all devices senstive to an address range 169 * inherit from. There are three pure virtual functions which all devices must 170 * implement addressRanges(), read(), and write(). The magic do choose which 171 * mode we are in, etc is handled by the PioPort so the device doesn't have to 172 * bother. --- 145 unchanged lines hidden --- |