/******************************************************************************/ /* DNA PROPRIETARY INFORMATION */ /* (C) Copyright 1997,1998 by DNA Enterprises, Inc. */ /* All rights reserved */ /******************************************************************************/ /* DMA_UTILS.H - DMA Utilities */ /* */ /* This module implements a simple DMA manager which marks resources in */ /* use or available based on request and release calls. */ /* */ /* MACRO FUNCTIONS: */ /* */ /* FUNCTIONS: */ /* dma_chan_request() - request DMA channel */ /* dma_chan_release() - release reserved channel */ /* dma_gidx_request() - request global index register */ /* dma_gidx_release() - release global index register */ /* dma_gadr_request() - request global address register */ /* dma_gadr_release() - release global address register */ /* dma_gcnt_request() - request global cnt reload register */ /* dma_gcnt_release() - release global cnt reload register */ /* */ /******************************************************************************/ #ifndef _DMA_UTIL_H_ #define _DMA_UTIL_H_ #define SPLIT_ADDR 0 #define SOURCE_RLD 1 #define DEST_RLD 2 #define AVAILABLE 0 #define IN_USE 1 typedef enum { DMA_CH_IDX_NONE= -1, DMA_CH0_IDX = 0, DMA_CH1_IDX, DMA_CH2_IDX, DMA_CH3_IDX } Dma_channel_idx; typedef enum { DMA_GIDX_IDX_NONE= -1, DMA_GIDXA_IDX= 0, DMA_GIDXB_IDX } Dma_gidx_idx; typedef enum { DMA_GADR_IDX_NONE= -1, DMA_GADRA_IDX= 0, DMA_GADRB_IDX, DMA_GADRC_IDX, DMA_GADRD_IDX } Dma_gadr_idx; typedef enum { DMA_GCNT_IDX_NONE= -1, DMA_GCNTA_IDX= 0, DMA_GCNTB_IDX } Dma_gcnt_idx; Dma_channel_idx dma_chan_request(void); void dma_chan_release(Dma_channel_idx chan_idx); int dma_idx_to_isn(Dma_channel_idx idx); int dma_interrupt_enable(Dma_channel_idx idx,void (*p_isr)(void)); Dma_gidx_idx dma_gidx_request(void); void dma_gidx_release(Dma_gidx_idx gidx_idx); Dma_gadr_idx dma_gadr_request(int operation); void dma_gadr_release(Dma_gadr_idx gadr_idx); Dma_gcnt_idx dma_gcnt_request(void); void dma_gcnt_release(Dma_gcnt_idx dma_gcnt_idx); void dma_util_reset(void); #endif