kernel/eka/include/drivers/dma_v2.h
changeset 243 c7a0ce20c48c
parent 231 75252ea6123b
equal deleted inserted replaced
231:75252ea6123b 243:c7a0ce20c48c
    40 #define __DMA_ASSERTD(e) __ASSERT_DEBUG(e, Kern::Fault(KDmaPanicCat, __LINE__))
    40 #define __DMA_ASSERTD(e) __ASSERT_DEBUG(e, Kern::Fault(KDmaPanicCat, __LINE__))
    41 #define __DMA_ASSERTA(e) __ASSERT_ALWAYS(e, Kern::Fault(KDmaPanicCat, __LINE__))
    41 #define __DMA_ASSERTA(e) __ASSERT_ALWAYS(e, Kern::Fault(KDmaPanicCat, __LINE__))
    42 #ifdef _DEBUG
    42 #ifdef _DEBUG
    43 #define __DMA_CANT_HAPPEN() Kern::Fault(KDmaPanicCat, __LINE__)
    43 #define __DMA_CANT_HAPPEN() Kern::Fault(KDmaPanicCat, __LINE__)
    44 #define __DMA_DECLARE_INVARIANT public: void Invariant();
    44 #define __DMA_DECLARE_INVARIANT public: void Invariant();
       
    45 #define __DMA_DECLARE_VIRTUAL_INVARIANT public: virtual void Invariant();
    45 #define __DMA_INVARIANT() Invariant()
    46 #define __DMA_INVARIANT() Invariant()
    46 #else
    47 #else
    47 #define __DMA_CANT_HAPPEN()
    48 #define __DMA_CANT_HAPPEN()
    48 #define __DMA_DECLARE_INVARIANT
    49 #define __DMA_DECLARE_INVARIANT
       
    50 #define __DMA_DECLARE_VIRTUAL_INVARIANT
    49 #define __DMA_INVARIANT()
    51 #define __DMA_INVARIANT()
    50 #endif
    52 #endif
    51 
    53 
    52 #ifdef __DMASIM__
    54 #ifdef __DMASIM__
    53 #ifdef __PRETTY_FUNCTION__
    55 #ifdef __PRETTY_FUNCTION__
  1253 
  1255 
  1254 		@see iQueuedRequests
  1256 		@see iQueuedRequests
  1255 	*/
  1257 	*/
  1256 	virtual void QueuedRequestCountChanged();
  1258 	virtual void QueuedRequestCountChanged();
  1257 
  1259 
  1258 #if defined(__CPU_ARM) && !defined(__EABI__)
  1260 	virtual void SetNullPtr(const DDmaRequest& aReq);
  1259 	inline virtual ~TDmaChannel() {}	// kill really annoying warning
  1261 	virtual void ResetNullPtr();
  1260 #endif
  1262 
       
  1263 	inline virtual ~TDmaChannel() {}
       
  1264 
       
  1265 	inline void Wait();
       
  1266 	inline void Signal();
       
  1267 	inline TBool Flash();
  1261 
  1268 
  1262 private:
  1269 private:
  1263 	static void Dfc(TAny*);
  1270 	static void Dfc(TAny*);
  1264 	void DoDfc();
  1271 	void DoDfc();
  1265 	inline void Wait();
       
  1266 	inline void Signal();
       
  1267 	inline TBool Flash();
       
  1268 	void ResetStateMachine();
       
  1269 
  1272 
  1270 protected:
  1273 protected:
  1271 	TDmac* iController;		 // DMAC this channel belongs to (NULL when closed)
  1274 	TDmac* iController;		 // DMAC this channel belongs to (NULL when closed)
  1272 	const SDmacCaps* iDmacCaps;	// what is supported by DMAC on this channel
  1275 	const SDmacCaps* iDmacCaps;	// what is supported by DMAC on this channel
  1273 	TUint32 iPslId;			 // unique identifier provided by PSL
  1276 	TUint32 iPslId;			 // unique identifier provided by PSL
  1291 private:
  1294 private:
  1292 	TDmaCancelInfo* iCancelInfo; // ...
  1295 	TDmaCancelInfo* iCancelInfo; // ...
  1293 	TBool iRedoRequest;		// client ISR callback wants a redo of request
  1296 	TBool iRedoRequest;		// client ISR callback wants a redo of request
  1294 	TBool iIsrCbRequest;	// request on queue using ISR callback
  1297 	TBool iIsrCbRequest;	// request on queue using ISR callback
  1295 
  1298 
  1296 	__DMA_DECLARE_INVARIANT
  1299 	__DMA_DECLARE_VIRTUAL_INVARIANT
  1297 	};
  1300 	};
  1298 
  1301 
  1299 
  1302 
  1300 //////////////////////////////////////////////////////////////////////////////
  1303 //////////////////////////////////////////////////////////////////////////////
  1301 // INTERFACE WITH TEST HARNESS
  1304 // INTERFACE WITH TEST HARNESS