XDAIS
dais-x04
Main Page
Modules
Data Structures
Files
Related Pages
File List
Globals
•
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Groups
Pages
packages
ti
xdais
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
{
69
IDMA3_INTERNAL
,
70
IDMA3_EXTERNAL
71
}
IDMA3_MemType
;
72
73
79
typedef
struct
IDMA3_MemRec
{
80
82
Void *
base
;
83
85
Uns
size
;
86
91
Uns
align
;
92
94
IDMA3_MemType
memType
;
95
96
}
IDMA3_MemRec
;
97
98
102
typedef
struct
IDMA3_Obj
*
IDMA3_Handle
;
103
104
108
typedef
struct
IDMA3_ProtocolObj
*
IDMA3_ProtocolHandle
;
109
110
120
#define IDMA3_PROTOCOL_NULL ((IDMA3_ProtocolHandle)NULL)
121
122
126
typedef
enum
IDMA3_Priority
{
127
128
IDMA3_PRIORITY_URGENT
,
129
IDMA3_PRIORITY_HIGH
,
130
IDMA3_PRIORITY_MEDIUM
,
131
IDMA3_PRIORITY_LOW
132
133
}
IDMA3_Priority
;
134
135
139
typedef
struct
IDMA3_ChannelRec
{
140
142
IDMA3_Handle
handle
;
143
148
Int
numTransfers
;
149
154
Int
numWaits
;
155
157
IDMA3_Priority
priority
;
158
167
IDMA3_ProtocolHandle
protocol
;
168
174
Bool
persistent
;
175
176
}
IDMA3_ChannelRec
;
177
178
185
typedef
struct
IDMA3_Fxns
{
186
191
Void *
implementationId
;
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
278
}
IDMA3_ProtocolObj
;
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
306
Bool
transferPending
;
307
330
Void *
env
;
331
336
IDMA3_ProtocolHandle
protocol
;
337
339
Bool
persistent
;
340
341
}
IDMA3_Obj
;
342
343
346
#ifdef __cplusplus
347
}
348
#endif
349
350
#endif
Copyright 2013, Texas Instruments Incorporated