ecpy.h

Go to the documentation of this file.
00001 /* 
00002  * Copyright (c) 2010, Texas Instruments Incorporated
00003  * All rights reserved.
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions
00007  * are met:
00008  *
00009  * *  Redistributions of source code must retain the above copyright
00010  *    notice, this list of conditions and the following disclaimer.
00011  *
00012  * *  Redistributions in binary form must reproduce the above copyright
00013  *    notice, this list of conditions and the following disclaimer in the
00014  *    documentation and/or other materials provided with the distribution.
00015  *
00016  * *  Neither the name of Texas Instruments Incorporated nor the names of
00017  *    its contributors may be used to endorse or promote products derived
00018  *    from this software without specific prior written permission.
00019  *
00020  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00021  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
00022  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
00023  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
00024  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
00025  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
00026  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
00027  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
00028  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
00029  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
00030  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00031  * 
00032  */
00060 #ifndef ti_sdo_fc_ecpy_ECPY_
00061 #define ti_sdo_fc_ecpy_ECPY_
00062 
00063 
00064 #ifdef __cplusplus
00065 extern "C" {
00066 #endif
00067 
00070 
00071 #define ti_sdo_fc_ires_NOPROTOCOLREV 
00072 #include <ti/sdo/fc/ires/edma3chan/ires_edma3Chan.h>
00073 
00074 #define ECPY_GTNAME "ti.sdo.fc.ecpy"
00075 
00084 #define ECPY_MODNAME "ti.sdo.fc.ecpy"
00085 
00086 
00092 typedef enum ECPY_ParamField16b {
00093 
00094     ECPY_PARAMFIELD_ELEMENTSIZE =  8,
00095     ECPY_PARAMFIELD_NUMELEMENTS = 10 ,
00096     ECPY_PARAMFIELD_ELEMENTINDEX_SRC = 16,
00097     ECPY_PARAMFIELD_ELEMENTINDEX_DST = 18,
00098     ECPY_PARAMFIELD_FRAMEINDEX_SRC =  24,
00099     ECPY_PARAMFIELD_FRAMEINDEX_DST =  26,
00100     ECPY_PARAMFIELD_NUMFRAMES = 28
00101 
00102 } ECPY_ParamField16b;
00103 
00109 typedef enum ECPY_ParamField32b {
00110 
00111     ECPY_PARAMFIELD_SRCADDR = 4,
00112     ECPY_PARAMFIELD_DSTADDR = 12,
00113     ECPY_PARAMFIELD_ELEMENTINDEXES = 16,
00114     ECPY_PARAMFIELD_FRAMEINDEXES = 24
00115 
00116 } ECPY_ParamField32b;
00117 
00128 typedef enum ECPY_TransferType {
00129 
00135     ECPY_1D1D,
00136 
00150     ECPY_1D2D,
00151 
00163     ECPY_2D1D,
00164 
00176     ECPY_2D2D
00177 } ECPY_TransferType;
00178 
00183 typedef struct  ECPY_Obj {
00184 
00185     IRES_EDMA3CHAN2_Obj *iresHandle;
00186 
00187     unsigned int iprRegisterAddr; /* Interrupt pending register */
00188     unsigned int iprBitMask;      /* Bit mask contining '1' corr to TCC */
00189     unsigned int esrRegisterAddr; /* Event Set Register Addr corr to channel */
00190     unsigned int esrBitMask;      /* Bit mask contining '1' corr to channel */
00191     short transferMode;           /* EDMA or QDMA mode transfers */    
00192     short transferPending;        
00193     short finalTransferNo;        /* TransferNo of the last transfer in a linked
00194                                    * transfer 
00195                                    */
00196     IRES_EDMA3CHAN_PaRamStruct *firstPARAMShadow;
00197 
00198 } ECPY_Obj;
00199 
00203 typedef struct ECPY_Obj *ECPY_Handle;
00204 
00205 
00210 typedef struct ECPY_Params {
00211 
00213     ECPY_TransferType transferType;
00214 
00216     Void *         srcAddr;
00217 
00219     Void *         dstAddr;
00220 
00222     unsigned short elementSize;
00223 
00225     unsigned short numElements;
00226 
00228     unsigned short numFrames ;
00229 
00234     short srcElementIndex;
00235 
00240     short dstElementIndex;
00241 
00247     short srcFrameIndex;
00248 
00254     short dstFrameIndex;
00255 
00256 } ECPY_Params;
00257 
00258 
00273 Void ECPY_configure(ECPY_Handle handle, ECPY_Params * restrict params,
00274     short transferNo);
00275 Void ECPY_directConfigure(ECPY_Handle handle, ECPY_Params * restrict params,
00276     short transferNo);
00277 
00278 
00310 #if defined(ECPY_CONFIGURE16) || defined(ECPY_INLINE_ALL)
00311 #include <ti/sdo/fc/ecpy/ecpy_configure16.h>
00312 #else
00313 Void ECPY_configure16(ECPY_Handle handle, ECPY_ParamField16b fieldId, 
00314         unsigned short value, short transferNo);
00315 Void ECPY_directConfigure16(ECPY_Handle handle, ECPY_ParamField16b fieldId, 
00316         unsigned short value, short transferNo);
00317 #endif
00318 
00353 #if defined(ECPY_CONFIGURE32_INLINE) || defined(ECPY_INLINE_ALL)
00354 #include <ti/sdo/fc/ecpy/ecpy_configure32.h>
00355 #else
00356 Void ECPY_configure32(ECPY_Handle handle, ECPY_ParamField32b fieldId, 
00357         unsigned int value, short transferNo);
00358 Void ECPY_directConfigure32(ECPY_Handle handle, ECPY_ParamField32b fieldId, 
00359         unsigned int value, short transferNo);
00360 #endif
00361 
00392 #if defined(ECPY_SETFINAL_INLINE) || defined(ECPY_INLINE_ALL)
00393 #include <ti/sdo/fc/ecpy/ecpy_setfinal.h>
00394 #else
00395 Void ECPY_setFinal(ECPY_Handle handle, short transferNo);
00396 Void ECPY_directSetFinal(ECPY_Handle handle, short transferNo);
00397 #endif
00398 
00410 Void ECPY_setDestinationMemoryMode(ECPY_Handle handle, short mode);
00411 
00434 #if defined(ECPY_START_INLINE) || defined(ECPY_INLINE_ALL)
00435 #include <ti/sdo/fc/ecpy/ecpy_start.h>
00436 #else
00437 Void ECPY_start(ECPY_Handle handle);
00438 Void ECPY_directStartEdma(ECPY_Handle handle);
00439 Void ECPY_directStartQdma(ECPY_Handle handle);
00440 #endif
00441 
00442 
00469 #if defined(ECPY_WAIT_INLINE) || defined(ECPY_INLINE_ALL)
00470 #include <ti/sdo/fc/ecpy/ecpy_wait.h>
00471 #else
00472 Void ECPY_wait(ECPY_Handle handle);
00473 #endif
00474 
00505 #if defined(ECPY_DIRECTWAIT_INLINE) || defined(ECPY_INLINE_ALL)
00506 #include <ti/sdo/fc/ecpy/ecpy_directwait.h>
00507 #else
00508 Void ECPY_directWait(ECPY_Handle handle);
00509 #endif
00510 
00526 Void ECPY_activate(ECPY_Handle handle);
00527 
00537 ECPY_Handle ECPY_createHandle(IRES_EDMA3CHAN2_Handle handle, IALG_Handle alg);
00538 
00547 Void ECPY_deleteHandle(ECPY_Handle handle);
00548 
00563 Void ECPY_deactivate(ECPY_Handle handle);
00564 
00565 
00569 Void ECPY_init(Void);
00570 
00574 Void ECPY_exit(Void);
00575 
00579 typedef Bool (ECPY_PersistentAllocFxn)(IALG_MemRec *memTab, Int numRecs);
00580 
00584 typedef Void (ECPY_PersistentFreeFxn)(IALG_MemRec *memTab, Int numRecs);
00585 
00586 
00597 typedef struct ECPY_CfgParams {
00598 
00602     ECPY_PersistentAllocFxn * allocFxn;
00603 
00607     ECPY_PersistentFreeFxn * freeFxn;
00608 
00609 } ECPY_CfgParams;
00610 
00614 extern __FAR__ ECPY_CfgParams ECPY_CFG_PARAMS;
00615 
00618 #ifdef __cplusplus
00619 }
00620 #endif /* extern "C" */
00621 
00622 
00623 #endif /* ti_sdo_fc_ecpy_ECPY_ */
00624 
00625 /*
00626  *  @(#) ti.sdo.fc.ecpy; 1, 0, 0,54; 11-2-2010 18:25:29; /db/atree/library/trees/fc/fc-n22x/src/ xlibrary
00627 
00628  */
00629 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Copyright 2010, Texas Instruments Incorporated