XDAIS  dais-x04
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
idma3.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2006-2013, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  *
32  */
52 #ifndef IDMA3_
53 #define IDMA3_
54 
57 
58 
59 #ifdef __cplusplus
60 extern "C" {
61 #endif
62 
63 #include "ialg.h"
64 
68 typedef enum IDMA3_MemType {
72 
73 
79 typedef struct IDMA3_MemRec {
80 
82  Void *base;
83 
85  Uns size;
86 
91  Uns align;
92 
95 
96 } IDMA3_MemRec;
97 
98 
102 typedef struct IDMA3_Obj *IDMA3_Handle;
103 
104 
109 
110 
120 #define IDMA3_PROTOCOL_NULL ((IDMA3_ProtocolHandle)NULL)
121 
122 
126 typedef enum IDMA3_Priority {
127 
132 
134 
135 
139 typedef struct IDMA3_ChannelRec {
140 
142  IDMA3_Handle handle;
143 
149 
154  Int numWaits;
155 
158 
167  IDMA3_ProtocolHandle protocol;
168 
175 
177 
178 
185 typedef struct IDMA3_Fxns {
186 
192 
197  Void (*dmaChangeChannels)(IALG_Handle handle, IDMA3_ChannelRec *chnlRec);
198 
203  Uns (*dmaGetChannelCnt)(Void);
204 
209  Uns (*dmaGetChannels)(IALG_Handle handle, IDMA3_ChannelRec *chnlRec);
210 
215  Int (*dmaInit)(IALG_Handle handle, IDMA3_ChannelRec *chnlRec);
216 
217 } IDMA3_Fxns;
218 
219 
244 typedef struct IDMA3_ProtocolObj {
245 
249  String name;
250 
255  Void (*getEnvMemRec)(IDMA3_ChannelRec *chnlRec, IDMA3_MemRec *memRec);
256 
270  Bool (*initHandle)(IDMA3_Handle handle);
271 
276  Bool (*deInitHandle)(IDMA3_Handle handle);
277 
279 
280 
285 typedef struct IDMA3_Obj {
286 
288  unsigned short numTccs;
289 
291  unsigned short numPaRams;
292 
294  unsigned char *tccTable;
295 
297  Uns *paRamAddr;
298 
300  unsigned short qdmaChan;
301 
307 
330  Void *env;
331 
336  IDMA3_ProtocolHandle protocol;
337 
340 
341 } IDMA3_Obj;
342 
343 
346 #ifdef __cplusplus
347 }
348 #endif
349 
350 #endif
Copyright 2013, Texas Instruments Incorporated