acpy3.h

Go to the documentation of this file.
00001 /* 
00002  * Copyright (c) 2012, 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  */
00054 #ifndef _ACPY3_
00055 #define _ACPY3_
00056 
00057 
00058 #ifdef __cplusplus
00059 extern "C" {
00060 #endif
00061 
00064 
00065 #include <ti/xdais/idma3.h>
00066 
00067 #define ACPY3_GTNAME "ti.sdo.fc.acpy3"
00068 
00077 #define ACPY3_MODNAME "ti.sdo.fc.acpy3"
00078 
00079 
00085 typedef enum ACPY3_ParamField16b {
00086 
00087     ACPY3_PARAMFIELD_ELEMENTSIZE =  8,
00088     ACPY3_PARAMFIELD_NUMELEMENTS = 10 ,
00089     ACPY3_PARAMFIELD_ELEMENTINDEX_SRC = 16,
00090     ACPY3_PARAMFIELD_ELEMENTINDEX_DST = 18,
00091     ACPY3_PARAMFIELD_FRAMEINDEX_SRC =  24,
00092     ACPY3_PARAMFIELD_FRAMEINDEX_DST =  26,
00093     ACPY3_PARAMFIELD_NUMFRAMES = 28
00094 
00095 } ACPY3_ParamField16b;
00096 
00102 typedef enum ACPY3_ParamField32b {
00103 
00104     ACPY3_PARAMFIELD_SRCADDR = 4,
00105     ACPY3_PARAMFIELD_DSTADDR = 12,
00106     ACPY3_PARAMFIELD_ELEMENTINDEXES = 16,
00107     ACPY3_PARAMFIELD_FRAMEINDEXES = 24
00108 
00109 } ACPY3_ParamField32b;
00110 
00121 typedef enum ACPY3_TransferType {
00122 
00128     ACPY3_1D1D,
00129 
00143     ACPY3_1D2D,
00144 
00156     ACPY3_2D1D,
00157 
00169     ACPY3_2D2D
00170 } ACPY3_TransferType;
00171 
00172 
00177 typedef struct ACPY3_Params {
00178 
00180     ACPY3_TransferType transferType;
00181 
00183     Void *         srcAddr;
00184 
00186     Void *         dstAddr;
00187 
00189     unsigned short elementSize;
00190 
00192     unsigned short numElements;
00193 
00195     unsigned short numFrames ;
00196 
00201     short srcElementIndex;
00202 
00207     short dstElementIndex;
00208 
00214     short srcFrameIndex;
00215 
00221     short dstFrameIndex;
00222 
00232     short waitId;
00233 
00234 } ACPY3_Params;
00235 
00236 
00237 extern IDMA3_ProtocolObj ACPY3_PROTOCOL;
00238 
00261 Void ACPY3_configure(IDMA3_Handle handle, ACPY3_Params *params,
00262     short transferNo);
00263 
00264 
00302 #if defined(ACPY3_FASTCONFIGURE16B_INLINE) || defined(ACPY3_INLINE_ALL)
00303 #include <ti/sdo/fc/acpy3/acpy3_fastconfigure16b.h>
00304 #else
00305 Void ACPY3_fastConfigure16b(IDMA3_Handle handle, ACPY3_ParamField16b fieldId,
00306     unsigned short value, short transferNo);
00307 #endif
00308 
00348 #if defined(ACPY3_FASTCONFIGURE32B_INLINE) || defined(ACPY3_INLINE_ALL)
00349 #include <ti/sdo/fc/acpy3/acpy3_fastconfigure32b.h>
00350 #else
00351 Void ACPY3_fastConfigure32b(IDMA3_Handle handle, ACPY3_ParamField32b fieldId,
00352     Uns value, short transferNo);
00353 #endif
00354 
00396 #if defined(ACPY3_SETFINAL_INLINE) || defined(ACPY3_INLINE_ALL)
00397 #include <ti/sdo/fc/acpy3/acpy3_setfinal.h>
00398 #else
00399 Void ACPY3_setFinal(IDMA3_Handle handle, short transferNo);
00400 #endif
00401 
00445 #if defined(ACPY3_FASTSETFINAL_INLINE) || defined(ACPY3_INLINE_ALL)
00446 #include <ti/sdo/fc/acpy3/acpy3_fastsetfinal.h>
00447 #else
00448 Void ACPY3_fastSetFinal(IDMA3_Handle handle, short transferNo);
00449 #endif
00450 
00496 #if defined(ACPY3_START_INLINE) || defined(ACPY3_INLINE_ALL)
00497 #include <ti/sdo/fc/acpy3/acpy3_start.h>
00498 #else
00499 Void ACPY3_start(IDMA3_Handle handle);
00500 #endif
00501 
00502 
00529 #if defined(ACPY3_WAIT_INLINE) || defined(ACPY3_INLINE_ALL)
00530 #include <ti/sdo/fc/acpy3/acpy3_wait.h>
00531 #else
00532 Void ACPY3_wait(IDMA3_Handle handle);
00533 #endif
00534 
00535 
00554 Void ACPY3_waitLinked(IDMA3_Handle handle, unsigned short waitId);
00555 
00556 
00587 #if defined(ACPY3_COMPLETE_INLINE) || defined(ACPY3_INLINE_ALL)
00588 #include <ti/sdo/fc/acpy3/acpy3_complete.h>
00589 #else
00590 Bool ACPY3_complete(IDMA3_Handle handle);
00591 #endif
00592 
00593 
00621 Bool ACPY3_completeLinked(IDMA3_Handle handle, unsigned short waitId);
00622 
00623 
00639 Void ACPY3_activate(IDMA3_Handle handle);
00640 
00641 
00656 Void ACPY3_deactivate(IDMA3_Handle handle);
00657 
00658 
00662 Void ACPY3_init(Void);
00663 
00667 Void ACPY3_exit(Void);
00668 
00669 
00672 #ifdef __cplusplus
00673 }
00674 #endif /* extern "C" */
00675 
00676 
00677 #endif /* _ACPY3_ */
00678 
00679 /*
00680  *  @(#) ti.sdo.fc.acpy3; 1, 0, 4,3; 4-16-2012 00:00:08; /db/atree/library/trees/fc/fc-q08/src/ xlibrary
00681 
00682  */
00683 
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Copyright 2012, Texas Instruments Incorporated