1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
|
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
File: oct6100_apiud.h
Copyright (c) 2001-2006 Octasic Inc.
Description:
Header file containing the definitions and prototypes that are to be
completed by the user.
This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
free software; you can redistribute it and/or modify it under the terms of
the GNU General Public License as published by the Free Software Foundation;
either version 2 of the License, or (at your option) any later version.
The OCT6100 GPL API is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with the OCT6100 GPL API; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
$Octasic_Release: OCT612xAPI-01.00-PR47 $
$Octasic_Revision: 15 $
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
#ifndef __OCT6100_APIUD_H__
#define __OCT6100_APIUD_H__
/***************************** INCLUDE FILES *******************************/
#include "octdef.h"
/***************************** DEFINES *************************************/
/* Determines the maximum length of a burst of reads/writes. This value must
be in the range 8 - 1024. This value obtains best performance if set to
a power of 2 (i.e. 2^n). */
#define cOCT6100_MAX_RW_ACCESSES 32
/* The define used to specify that the Oct6100SeizeSerializeObject function
is not to return until the specified serialization object has been seized. */
#define cOCT6100_WAIT_INFINITELY 0xFFFFFFFF
/* Compile option: enabling this compile option inserts code to check every
call to a user provided function to make sure the function parameters
are not changed, as required by the API specification. */
#define cOCT6100_USER_FUNCTION_CHECK
#define cOCT6100_GET_TIME_FAILED_0 0xFFFF0000
#define cOCT6100_GET_TIME_FAILED_1 0xFFFF0001
#define cOCT6100_GET_TIME_FAILED_2 0xFFFF0002
#define cOCT6100_GET_TIME_FAILED_3 0xFFFF0003
#define cOCT6100_GET_TIME_FAILED_4 0xFFFF0004
#define cOCT6100_CREATE_SERIAL_FAILED_0 0xFFFF0010
#define cOCT6100_CREATE_SERIAL_FAILED_1 0xFFFF0011
#define cOCT6100_CREATE_SERIAL_FAILED_2 0xFFFF0012
#define cOCT6100_CREATE_SERIAL_FAILED_3 0xFFFF0013
#define cOCT6100_CREATE_SERIAL_FAILED_4 0xFFFF0014
#define cOCT6100_DESTROY_SERIAL_FAILED_0 0xFFFF0020
#define cOCT6100_DESTROY_SERIAL_FAILED_1 0xFFFF0021
#define cOCT6100_DESTROY_SERIAL_FAILED_2 0xFFFF0022
#define cOCT6100_DESTROY_SERIAL_FAILED_3 0xFFFF0023
#define cOCT6100_DESTROY_SERIAL_FAILED_4 0xFFFF0024
#define cOCT6100_INVALID_SERIAL_HANDLE_0 0xFFFF0030
#define cOCT6100_INVALID_SERIAL_HANDLE_1 0xFFFF0031
#define cOCT6100_INVALID_SERIAL_HANDLE_2 0xFFFF0032
#define cOCT6100_INVALID_SERIAL_HANDLE_3 0xFFFF0033
#define cOCT6100_INVALID_SERIAL_HANDLE_4 0xFFFF0034
#define cOCT6100_RELEASE_SERIAL_FAILED_0 0xFFFF0040
#define cOCT6100_RELEASE_SERIAL_FAILED_1 0xFFFF0041
#define cOCT6100_RELEASE_SERIAL_FAILED_2 0xFFFF0042
#define cOCT6100_RELEASE_SERIAL_FAILED_3 0xFFFF0043
#define cOCT6100_RELEASE_SERIAL_FAILED_4 0xFFFF0044
#define cOCT6100_SEIZE_SERIAL_FAILED_0 0xFFFF0050
#define cOCT6100_SEIZE_SERIAL_FAILED_1 0xFFFF0051
#define cOCT6100_SEIZE_SERIAL_FAILED_2 0xFFFF0052
#define cOCT6100_SEIZE_SERIAL_FAILED_3 0xFFFF0053
#define cOCT6100_SEIZE_SERIAL_FAILED_4 0xFFFF0054
#define cOCT6100_DRIVER_WRITE_FAILED_0 0xFFFF0060
#define cOCT6100_DRIVER_WRITE_FAILED_1 0xFFFF0061
#define cOCT6100_DRIVER_WRITE_FAILED_2 0xFFFF0062
#define cOCT6100_DRIVER_WRITE_FAILED_3 0xFFFF0063
#define cOCT6100_DRIVER_WRITE_FAILED_4 0xFFFF0064
#define cOCT6100_DRIVER_WSMEAR_FAILED_0 0xFFFF0070
#define cOCT6100_DRIVER_WSMEAR_FAILED_1 0xFFFF0071
#define cOCT6100_DRIVER_WSMEAR_FAILED_2 0xFFFF0072
#define cOCT6100_DRIVER_WSMEAR_FAILED_3 0xFFFF0073
#define cOCT6100_DRIVER_WSMEAR_FAILED_4 0xFFFF0074
#define cOCT6100_DRIVER_WBURST_FAILED_0 0xFFFF0080
#define cOCT6100_DRIVER_WBURST_FAILED_1 0xFFFF0081
#define cOCT6100_DRIVER_WBURST_FAILED_2 0xFFFF0082
#define cOCT6100_DRIVER_WBURST_FAILED_3 0xFFFF0083
#define cOCT6100_DRIVER_WBURST_FAILED_4 0xFFFF0084
#define cOCT6100_DRIVER_READ_FAILED_0 0xFFFF0090
#define cOCT6100_DRIVER_READ_FAILED_1 0xFFFF0091
#define cOCT6100_DRIVER_READ_FAILED_2 0xFFFF0092
#define cOCT6100_DRIVER_READ_FAILED_3 0xFFFF0093
#define cOCT6100_DRIVER_READ_FAILED_4 0xFFFF0094
#define cOCT6100_DRIVER_RBURST_FAILED_0 0xFFFF00A0
#define cOCT6100_DRIVER_RBURST_FAILED_1 0xFFFF00A1
#define cOCT6100_DRIVER_RBURST_FAILED_2 0xFFFF00A2
#define cOCT6100_DRIVER_RBURST_FAILED_3 0xFFFF00A3
#define cOCT6100_DRIVER_RBURST_FAILED_4 0xFFFF00A4
/***************************** TYPES ***************************************/
typedef struct _OCT6100_GET_TIME_
{
PVOID pProcessContext;
UINT32 aulWallTimeUs[ 2 ];
} tOCT6100_GET_TIME, *tPOCT6100_GET_TIME;
typedef struct _OCT6100_CREATE_SERIALIZE_OBJECT_
{
PVOID pProcessContext;
PSZ pszSerialObjName;
UINT32 ulSerialObjHndl;
} tOCT6100_CREATE_SERIALIZE_OBJECT, *tPOCT6100_CREATE_SERIALIZE_OBJECT;
typedef struct _OCT6100_DESTROY_SERIALIZE_OBJECT_
{
PVOID pProcessContext;
UINT32 ulSerialObjHndl;
} tOCT6100_DESTROY_SERIALIZE_OBJECT, *tPOCT6100_DESTROY_SERIALIZE_OBJECT;
typedef struct _OCT6100_SEIZE_SERIALIZE_OBJECT_
{
PVOID pProcessContext;
UINT32 ulSerialObjHndl;
UINT32 ulTryTimeMs;
} tOCT6100_SEIZE_SERIALIZE_OBJECT, *tPOCT6100_SEIZE_SERIALIZE_OBJECT;
typedef struct _OCT6100_RELEASE_SERIALIZE_OBJECT_
{
PVOID pProcessContext;
UINT32 ulSerialObjHndl;
} tOCT6100_RELEASE_SERIALIZE_OBJECT, *tPOCT6100_RELEASE_SERIALIZE_OBJECT;
typedef struct _OCT6100_WRITE_PARAMS_
{
PVOID pProcessContext;
UINT32 ulUserChipId;
UINT32 ulWriteAddress;
UINT16 usWriteData;
} tOCT6100_WRITE_PARAMS, *tPOCT6100_WRITE_PARAMS;
typedef struct _OCT6100_WRITE_SMEAR_PARAMS_
{
PVOID pProcessContext;
UINT32 ulUserChipId;
UINT32 ulWriteAddress;
UINT32 ulWriteLength;
UINT16 usWriteData;
} tOCT6100_WRITE_SMEAR_PARAMS, *tPOCT6100_WRITE_SMEAR_PARAMS;
typedef struct _OCT6100_WRITE_BURST_PARAMS_
{
PVOID pProcessContext;
UINT32 ulUserChipId;
UINT32 ulWriteAddress;
UINT32 ulWriteLength;
PUINT16 pusWriteData;
} tOCT6100_WRITE_BURST_PARAMS, *tPOCT6100_WRITE_BURST_PARAMS;
typedef struct _OCT6100_READ_PARAMS_
{
PVOID pProcessContext;
UINT32 ulUserChipId;
UINT32 ulReadAddress;
PUINT16 pusReadData;
} tOCT6100_READ_PARAMS, *tPOCT6100_READ_PARAMS;
typedef struct _OCT6100_READ_BURST_PARAMS_
{
PVOID pProcessContext;
UINT32 ulUserChipId;
UINT32 ulReadAddress;
UINT32 ulReadLength;
PUINT16 pusReadData;
} tOCT6100_READ_BURST_PARAMS, *tPOCT6100_READ_BURST_PARAMS;
/************************** FUNCTION PROTOTYPES *****************************/
/* Time function. */
UINT32 Oct6100UserGetTime(
IN OUT tPOCT6100_GET_TIME f_pTime );
/* Memory management functions. */
UINT32 Oct6100UserMemSet(
IN PVOID f_pAddress,
IN UINT32 f_ulPattern,
IN UINT32 f_ulLength );
UINT32 Oct6100UserMemCopy(
IN PVOID f_pDestination,
IN const void *f_pSource,
IN UINT32 f_ulLength );
/* Serialization functions. */
UINT32 Oct6100UserCreateSerializeObject(
IN OUT tPOCT6100_CREATE_SERIALIZE_OBJECT f_pCreate);
UINT32 Oct6100UserDestroySerializeObject(
IN tPOCT6100_DESTROY_SERIALIZE_OBJECT f_pDestroy);
UINT32 Oct6100UserSeizeSerializeObject(
IN tPOCT6100_SEIZE_SERIALIZE_OBJECT f_pSeize);
UINT32 Oct6100UserReleaseSerializeObject(
IN tPOCT6100_RELEASE_SERIALIZE_OBJECT f_pRelease);
/* Read/Write functions.*/
UINT32 Oct6100UserDriverWriteApi(
IN tPOCT6100_WRITE_PARAMS f_pWriteParams );
UINT32 Oct6100UserDriverWriteOs(
IN tPOCT6100_WRITE_PARAMS f_pWriteParams );
UINT32 Oct6100UserDriverWriteSmearApi(
IN tPOCT6100_WRITE_SMEAR_PARAMS f_pSmearParams );
UINT32 Oct6100UserDriverWriteSmearOs(
IN tPOCT6100_WRITE_SMEAR_PARAMS f_pSmearParams );
UINT32 Oct6100UserDriverWriteBurstApi(
IN tPOCT6100_WRITE_BURST_PARAMS f_pBurstParams );
UINT32 Oct6100UserDriverWriteBurstOs(
IN tPOCT6100_WRITE_BURST_PARAMS f_pBurstParams );
UINT32 Oct6100UserDriverReadApi(
IN OUT tPOCT6100_READ_PARAMS f_pReadParams );
UINT32 Oct6100UserDriverReadOs(
IN OUT tPOCT6100_READ_PARAMS f_pReadParams );
UINT32 Oct6100UserDriverReadBurstApi(
IN OUT tPOCT6100_READ_BURST_PARAMS f_pBurstParams );
UINT32 Oct6100UserDriverReadBurstOs(
IN OUT tPOCT6100_READ_BURST_PARAMS f_pBurstParams );
#endif /* __OCT6100_APIUD_H__ */
|