#ifndef _DMAPUSH_H_ #define _DMAPUSH_H_ /**************************** DMA Pusher *****************************\ * * * Module: DMAPUSH.H * * Control method implementation. * * * ***************************************************************************** * * * History: * * Bruce Thompson (brucet) 02/22/96 - wrote it. * * * \***************************************************************************/ #include "dma.h" //--------------------------------------------------------------------------- // // Defines. // //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- // // Miscellaneous structure definitions. // //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- // // Control object defines. // //--------------------------------------------------------------------------- typedef struct _def_dmapush_object DMAPUSHER, *PDMAPUSHER; // The object which represents the state of the DMA pusher struct _def_dmapush_object { BUFFEROBJECT BufferObject; U032 CurrentBuffer; U032 AddressSpace; U032 TlbPtBase; U032 Offset; }; //--------------------------------------------------------------------------- // // Function prototypes. // //--------------------------------------------------------------------------- // Allocate and init new DMA pusher object RM_STATUS dmaCreateDmaPusher ( PDMAPUSHER *DmaPushObject, // Ptr to object to initialize U032 ChID // Channel this object will be used on ); // Delete a DMA pusher object RM_STATUS dmaDeleteDmaPusher ( PDMAPUSHER DmaPushObject // Ptr to object to delete ); // Start a DMA pusher transfer RM_STATUS dmaPushStartXfer ( PBUFFEROBJECT BuffObject, // The buffer object to use U032 BuffNum // The buffer to start transfer on ); // Start/Continue a DMA pusher transfer RM_STATUS dmaPushXfer ( PBUFFER pBuffer // The buffer used for transfer ); // Set the DMA pusher Dma specification object RM_STATUS mthdSetPushBufferCtxDma ( POBJECT Object, // Ptr to DMA push object for this channel PMETHOD Method, // Ptr to method structure U032 Offset, // Method offset V032 Data // Method data ); // Set the DMA pusher notify Dma specification object RM_STATUS mthdSetPushBufferNotifyCtxDma ( POBJECT Object, // Ptr to DMA push object for this channel PMETHOD Method, // Ptr to method structure U032 Offset, // Method offset V032 Data // Method data ); // Set the start offset for this DMA push operation RM_STATUS mthdSetPushBufferStart ( POBJECT Object, // Ptr to DMA push object for this channel PMETHOD Method, // Ptr to method structure U032 Offset, // Method offset V032 Data // Method data ); // Set the length for this DMA push operation RM_STATUS mthdSetPushBufferLength ( POBJECT Object, // Ptr to DMA push object for this channel PMETHOD Method, // Ptr to method structure U032 Offset, // Method offset V032 Data // Method data ); // Start the DMA push operation RM_STATUS mthdSetPushBufferNotify ( POBJECT Object, // Ptr to DMA push object for this channel PMETHOD Method, // Ptr to method structure U032 Offset, // Method offset V032 Data // Method data ); #endif // _DMAPUSH_H_