/***************************************************************************
 *
 * dma.h
 *
 ***************************************************************************
 *
 * N64 PI DMA functions
 *
 ***************************************************************************/

#ifndef DMA_H_INCLUDED
#define DMA_H_INCLUDED

/*
 * includes
 */

/*
 * defines
 */

#define DMA_IDLE		0
#define DMA_ACTIVE		1
#define DMA_PENDING		2
#define DMA_COMPLETE		3

/*
 * typedefs
 */

/*
 * structures
 */

/*
 * globals
 */

extern OSPiHandle *cartRomHandle;
extern OSPiHandle *sramHandle;

extern void (*dmaPoll)(void);

/*
 * function prototypes
 */

extern int DmaOpen(void);

extern int DmaStart(OSPiHandle *device,
                    unsigned long dir,unsigned long devAddr,
                    unsigned long ramAddr,unsigned long byteCount);

extern int DmaStatus(int channel);

extern void DmaProcess(void);
extern void DmaRelease(int chan);

#endif
