ecpy.h

Go to the documentation of this file.
00001 /* 
00002  * Copyright (c) 2011, 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  */
00076 #ifndef ti_sdo_fc_ecpy_ECPY_
00077 #define ti_sdo_fc_ecpy_ECPY_
00078 
00079 
00080 #ifdef __cplusplus
00081 extern "C" {
00082 #endif
00083 
00086 
00087 #define ti_sdo_fc_ires_NOPROTOCOLREV 
00088 #include <ti/sdo/fc/ires/edma3chan/ires_edma3Chan.h>
00089 
00090 #define ECPY_GTNAME "ti.sdo.fc.ecpy"
00091 
00100 #define ECPY_MODNAME "ti.sdo.fc.ecpy"
00101 
00102 
00108 typedef enum ECPY_ParamField16b {
00109 
00110     ECPY_PARAMFIELD_ELEMENTSIZE =  8,
00111     ECPY_PARAMFIELD_NUMELEMENTS = 10 ,
00112     ECPY_PARAMFIELD_ELEMENTINDEX_SRC = 16,
00113     ECPY_PARAMFIELD_ELEMENTINDEX_DST = 18,
00114     ECPY_PARAMFIELD_FRAMEINDEX_SRC =  24,
00115     ECPY_PARAMFIELD_FRAMEINDEX_DST =  26,
00116     ECPY_PARAMFIELD_NUMFRAMES = 28
00117 
00118 } ECPY_ParamField16b;
00119 
00125 typedef enum ECPY_ParamField32b {
00126 
00127     ECPY_PARAMFIELD_SRCADDR = 4,
00128     ECPY_PARAMFIELD_DSTADDR = 12,
00129     ECPY_PARAMFIELD_ELEMENTINDEXES = 16,
00130     ECPY_PARAMFIELD_FRAMEINDEXES = 24
00131 
00132 } ECPY_ParamField32b;
00133 
00144 typedef enum ECPY_TransferType {
00145 
00151     ECPY_1D1D,
00152 
00166     ECPY_1D2D,
00167 
00179     ECPY_2D1D,
00180 
00192     ECPY_2D2D
00193 } ECPY_TransferType;
00194 
00198 typedef struct ECPY_Obj *ECPY_Handle;
00199 
00200 
00205 typedef struct ECPY_Params {
00206 
00208     ECPY_TransferType transferType;
00209 
00211     Void *         srcAddr;
00212 
00214     Void *         dstAddr;
00215 
00217     unsigned short elementSize;
00218 
00220     unsigned short numElements;
00221 
00223     unsigned short numFrames ;
00224 
00229     short srcElementIndex;
00230 
00235     short dstElementIndex;
00236 
00242     short srcFrameIndex;
00243 
00249     short dstFrameIndex;
00250 
00251 } ECPY_Params;
00252 
00253 
00272 Void ECPY_configure(ECPY_Handle handle, ECPY_Params * restrict params,
00273     short transferNo);
00274 
00294 Void ECPY_directConfigure(ECPY_Handle handle, ECPY_Params * restrict params,
00295     short transferNo);
00296 
00297 
00334 #if defined(ECPY_CONFIGURE16) || defined(ECPY_INLINE_ALL)
00335 #include <ti/sdo/fc/ecpy/ecpy_configure16.h>
00336 #else
00337 Void ECPY_configure16(ECPY_Handle handle, ECPY_ParamField16b fieldId, 
00338         unsigned short value, short transferNo);
00339 
00378 Void ECPY_directConfigure16(ECPY_Handle handle, ECPY_ParamField16b fieldId, 
00379         unsigned short value, short transferNo);
00380 #endif
00381 
00419 #if defined(ECPY_CONFIGURE32_INLINE) || defined(ECPY_INLINE_ALL)
00420 #include <ti/sdo/fc/ecpy/ecpy_configure32.h>
00421 #else
00422 Void ECPY_configure32(ECPY_Handle handle, ECPY_ParamField32b fieldId, 
00423         unsigned int value, short transferNo);
00424 
00463 Void ECPY_directConfigure32(ECPY_Handle handle, ECPY_ParamField32b fieldId, 
00464         unsigned int value, short transferNo);
00465 #endif
00466 
00489 #if defined(ECPY_SETFINAL_INLINE) || defined(ECPY_INLINE_ALL)
00490 #include <ti/sdo/fc/ecpy/ecpy_setfinal.h>
00491 #else
00492 Void ECPY_setFinal(ECPY_Handle handle, short transferNo);
00493 
00516 Void ECPY_directSetFinal(ECPY_Handle handle, short transferNo);
00517 #endif
00518 
00530 Void ECPY_setDestinationMemoryMode(ECPY_Handle handle, short mode);
00531 
00559 Void ECPY_start(ECPY_Handle handle);
00560 
00561 
00593 Void ECPY_directStartEdma(ECPY_Handle handle);
00594 
00598 Void ECPY_directStartQdma(ECPY_Handle handle);
00599 
00600 
00627 #if defined(ECPY_WAIT_INLINE) || defined(ECPY_INLINE_ALL)
00628 #include <ti/sdo/fc/ecpy/ecpy_wait.h>
00629 #else
00630 Void ECPY_wait(ECPY_Handle handle);
00631 #endif
00632 
00665 #if defined(ECPY_DIRECTWAIT_INLINE) || defined(ECPY_INLINE_ALL)
00666 #include <ti/sdo/fc/ecpy/ecpy_directwait.h>
00667 #else
00668 Void ECPY_directWait(ECPY_Handle handle);
00669 #endif
00670 
00686 Void ECPY_activate(ECPY_Handle handle);
00687 
00697 ECPY_Handle ECPY_createHandle(IRES_EDMA3CHAN2_Handle handle, IALG_Handle alg);
00698 
00707 Void ECPY_deleteHandle(ECPY_Handle handle);
00708 
00723 Void ECPY_deactivate(ECPY_Handle handle);
00724 
00725 
00729 Void ECPY_init(Void);
00730 
00734 Void ECPY_exit(Void);
00735 
00739 typedef Bool (ECPY_PersistentAllocFxn)(IALG_MemRec *memTab, Int numRecs);
00740 
00744 typedef Void (ECPY_PersistentFreeFxn)(IALG_MemRec *memTab, Int numRecs);
00745 
00746 
00757 typedef struct ECPY_CfgParams {
00758 
00762     ECPY_PersistentAllocFxn * allocFxn;
00763 
00767     ECPY_PersistentFreeFxn * freeFxn;
00768 
00769 } ECPY_CfgParams;
00770 
00774 extern __FAR__ ECPY_CfgParams ECPY_CFG_PARAMS;
00775 
00778 #ifdef __cplusplus
00779 }
00780 #endif /* extern "C" */
00781 
00782 
00783 #endif /* ti_sdo_fc_ecpy_ECPY_ */
00784 
00785 /*
00786  *  @(#) ti.sdo.fc.ecpy; 1, 0, 0,71; 2-8-2011 15:06:25; /db/atree/library/trees/fc/fc-n26x/src/ xlibrary
00787 
00788  */
00789 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Copyright 2011, Texas Instruments Incorporated