kernel/eka/include/drivers/dma_v1.h
changeset 231 75252ea6123b
parent 189 a5496987b1da
equal deleted inserted replaced
202:9aca3be14c27 231:75252ea6123b
   277 		{
   277 		{
   278 		/** Identifier used by PSL to select channel to open */
   278 		/** Identifier used by PSL to select channel to open */
   279 		TUint32 iCookie;
   279 		TUint32 iCookie;
   280 		/** Number of descriptors this channel can use */
   280 		/** Number of descriptors this channel can use */
   281 		TInt iDesCount;
   281 		TInt iDesCount;
   282 		/** DFC queue used to service DMA interrupts.  The DFC thread
   282 		/** DFC queue used to service DMA interrupts */
   283 			priority must be higher than any client thread priority to
       
   284 			avoid a situation where a transfer completes while being
       
   285 			cancelled and another transfer is started before the DFC
       
   286 			thread gets a chance to run.  This would lead to a stray
       
   287 			DFC.
       
   288 		*/
       
   289 		TDfcQue* iDfcQ;
   283 		TDfcQue* iDfcQ;
   290 		/** DFC priority */
   284 		/** DFC priority */
   291 		TUint8 iDfcPriority;
   285 		TUint8 iDfcPriority;
   292 		};
   286 		};
   293 public:
   287 public:
   435 	enum { KCancelFlagMask = 0x40000000 };					// bit 30 - cancel flag
   429 	enum { KCancelFlagMask = 0x40000000 };					// bit 30 - cancel flag
   436 	enum { KDfcCountMask = 0x3FFFFFFF };					// bits 0-29 - number of queued DFCs
   430 	enum { KDfcCountMask = 0x3FFFFFFF };					// bits 0-29 - number of queued DFCs
   437 	SDblQue iReqQ;											// being/about to be transferred request queue
   431 	SDblQue iReqQ;											// being/about to be transferred request queue
   438 	TInt iReqCount;											// number of requests attached to this channel
   432 	TInt iReqCount;											// number of requests attached to this channel
   439 	TInt iQueuedRequests; 									// number of requests currently queued on this channel
   433 	TInt iQueuedRequests; 									// number of requests currently queued on this channel
       
   434 	TBool iCallQueuedRequestFn;								// call QueuedRequestCountChanged? (default: true)
   440 private:
   435 private:
   441 	TDmaCancelInfo* iCancelInfo;
   436 	TDmaCancelInfo* iCancelInfo;
   442 	__DMA_DECLARE_INVARIANT
   437 	__DMA_DECLARE_INVARIANT
   443 	};
   438 	};
   444 
   439