www.pudn.com > SEEDVPM642_audio.rar > csl_dat.h


/******************************************************************************\ 
*           Copyright (C) 1999-2000 Texas Instruments Incorporated. 
*                           All Rights Reserved 
*------------------------------------------------------------------------------ 
* FILENAME...... csl_dat.h 
* DATE CREATED.. 11/11/1999  
* LAST MODIFIED. 10/03/2000 
\******************************************************************************/ 
#ifndef _CSL_DAT_H_ 
#define _CSL_DAT_H_ 
 
#include  
#include  
#include  
#include  
 
 
#if (DAT_SUPPORT) 
/******************************************************************************\ 
* scope and inline control macros 
\******************************************************************************/ 
#ifdef __cplusplus 
#define CSLAPI extern "C" far 
#else 
#define CSLAPI extern far 
#endif 
 
#undef  USEDEFS 
#undef  IDECL 
#undef  IDEF 
 
#ifdef  _DAT_MOD_ 
  #define IDECL CSLAPI 
  #define USEDEFS 
  #define IDEF 
#else 
  #ifdef  _INLINE 
    #define IDECL static inline 
    #define USEDEFS 
    #define IDEF  static inline 
  #else 
    #define IDECL CSLAPI 
  #endif 
#endif 
 
 
/******************************************************************************\ 
* global macro declarations 
\******************************************************************************/ 
#if (DMA_SUPPORT) 
  #define DAT_CHAANY    DMA_CHAANY 
  #define DAT_CHA0      DMA_CHA0 
  #define DAT_CHA1      DMA_CHA1 
  #define DAT_CHA2      DMA_CHA2 
  #define DAT_CHA3      DMA_CHA3 
  #define DAT_PRI_LOW   DMA_PRICTL_PRI_CPU 
  #define DAT_PRI_HIGH  DMA_PRICTL_PRI_DMA 
 
  #define DAT_1D2D      0x000000D0 
  #define DAT_2D1D      0x00000070 
  #define DAT_2D2D      0x000000F0 
 
#elif (EDMA_SUPPORT) 
  #define DAT_CHAANY    0 
  #define DAT_CHA0      0 
  #define DAT_CHA1      0 
  #define DAT_CHA2      0 
  #define DAT_CHA3      0 
  #define DAT_PRI_LOW   EDMA_OPT_PRI_LOW 
  #define DAT_PRI_HIGH  EDMA_OPT_PRI_HIGH 
 
  #define DAT_1D2D      0x01A00001 
  #define DAT_2D1D      0x05200001 
  #define DAT_2D2D      0x05A00001 
#endif 
 
/* open flags */ 
#define DAT_OPEN_2D    1 
 
/* special magic transfer IDs */ 
#define DAT_XFRID_WAITALL   0xFFFFFFFF 
#define DAT_XFRID_WAITNONE  0xFFFF0010 
 
 
/******************************************************************************\ 
* global typedef declarations 
\******************************************************************************/ 
#if (DMA_SUPPORT) 
  typedef struct { 
    Uint32 useMask; 
    Uint32 baseAddr; 
    Uint32 gblcntAddr; 
    Uint32 gblidxAddr; 
    Uint32 initPrictl; 
  } _DAT_StateStruct; 
#endif 
 
#if (EDMA_SUPPORT) 
  typedef struct { 
    Uint32 useMask; 
    Uint32 baseAddr; 
    Uint32 initOpt; 
  } _DAT_StateStruct; 
#endif 
 
 
/******************************************************************************\ 
* global variable declarations 
\******************************************************************************/ 
extern far _DAT_StateStruct _DAT_stateStruct; 
 
 
/******************************************************************************\ 
* global function declarations 
\******************************************************************************/ 
CSLAPI int DAT_open(int chaNum, int priority, Uint32 flags); 
CSLAPI void DAT_close(); 
 
CSLAPI Uint32 DAT_copy(void *src , void *dst , Uint16 byteCnt); 
CSLAPI Uint32 DAT_fill(void *dst , Uint16 byteCnt, Uint32 *value); 
CSLAPI void   DAT_wait(Uint32 id); 
CSLAPI int    DAT_busy(Uint32 id); 
 
CSLAPI Uint32 DAT_copy2d(Uint32 type, void *src, void *dst, Uint16 lineLen, Uint16 lineCnt, Uint16 linePitch); 
 
 
/******************************************************************************\ 
* inline function declarations 
\******************************************************************************/ 
IDECL void DAT_setPriority(int priority); 
 
 
/******************************************************************************\ 
* inline function definitions 
\******************************************************************************/ 
#ifdef USEDEFS 
/*----------------------------------------------------------------------------*/ 
IDEF void DAT_setPriority(int priority) { 
  #if (DMA_SUPPORT) 
    DMA_FSETA(&(_DAT_stateStruct.initPrictl), PRICTL, PRI, priority); 
  #endif 
 
  #if (EDMA_SUPPORT) 
    EDMA_FSETA(&(_DAT_stateStruct.initOpt), OPT, PRI, priority); 
  #endif  
} 
/*----------------------------------------------------------------------------*/ 
#endif /* USEDEFS */ 
 
 
#endif /* DAT_SUPPORT */ 
#endif /* _CSL_DAT_H_ */ 
/******************************************************************************\ 
* End of csl_dat.h 
\******************************************************************************/