1
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
5
Copyright (c) 2001-2007 Octasic Inc.
9
Header file containing the definitions and prototypes that are to be
10
completed by the user.
12
This file is part of the Octasic OCT6100 GPL API . The OCT6100 GPL API is
13
free software; you can redistribute it and/or modify it under the terms of
14
the GNU General Public License as published by the Free Software Foundation;
15
either version 2 of the License, or (at your option) any later version.
17
The OCT6100 GPL API is distributed in the hope that it will be useful, but
18
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
19
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
22
You should have received a copy of the GNU General Public License
23
along with the OCT6100 GPL API; if not, write to the Free Software
24
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
26
$Octasic_Release: OCT612xAPI-01.00-PR49 $
28
$Octasic_Revision: 16 $
30
\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/
32
#ifndef __OCT6100_APIUD_H__
33
#define __OCT6100_APIUD_H__
35
/***************************** INCLUDE FILES *******************************/
39
/***************************** DEFINES *************************************/
42
/* Determines the maximum length of a burst of reads/writes. This value must
43
be in the range 8 - 1024. This value obtains best performance if set to
44
a power of 2 (i.e. 2^n). */
45
#define cOCT6100_MAX_RW_ACCESSES 32
47
/* The define used to specify that the Oct6100SeizeSerializeObject function
48
is not to return until the specified serialization object has been seized. */
49
#define cOCT6100_WAIT_INFINITELY 0xFFFFFFFF
52
/* Compile option: enabling this compile option inserts code to check every
53
call to a user provided function to make sure the function parameters
54
are not changed, as required by the API specification. */
55
#define cOCT6100_USER_FUNCTION_CHECK
59
#define cOCT6100_GET_TIME_FAILED_0 0xFFFF0000
60
#define cOCT6100_GET_TIME_FAILED_1 0xFFFF0001
61
#define cOCT6100_GET_TIME_FAILED_2 0xFFFF0002
62
#define cOCT6100_GET_TIME_FAILED_3 0xFFFF0003
63
#define cOCT6100_GET_TIME_FAILED_4 0xFFFF0004
65
#define cOCT6100_CREATE_SERIAL_FAILED_0 0xFFFF0010
66
#define cOCT6100_CREATE_SERIAL_FAILED_1 0xFFFF0011
67
#define cOCT6100_CREATE_SERIAL_FAILED_2 0xFFFF0012
68
#define cOCT6100_CREATE_SERIAL_FAILED_3 0xFFFF0013
69
#define cOCT6100_CREATE_SERIAL_FAILED_4 0xFFFF0014
71
#define cOCT6100_DESTROY_SERIAL_FAILED_0 0xFFFF0020
72
#define cOCT6100_DESTROY_SERIAL_FAILED_1 0xFFFF0021
73
#define cOCT6100_DESTROY_SERIAL_FAILED_2 0xFFFF0022
74
#define cOCT6100_DESTROY_SERIAL_FAILED_3 0xFFFF0023
75
#define cOCT6100_DESTROY_SERIAL_FAILED_4 0xFFFF0024
77
#define cOCT6100_INVALID_SERIAL_HANDLE_0 0xFFFF0030
78
#define cOCT6100_INVALID_SERIAL_HANDLE_1 0xFFFF0031
79
#define cOCT6100_INVALID_SERIAL_HANDLE_2 0xFFFF0032
80
#define cOCT6100_INVALID_SERIAL_HANDLE_3 0xFFFF0033
81
#define cOCT6100_INVALID_SERIAL_HANDLE_4 0xFFFF0034
83
#define cOCT6100_RELEASE_SERIAL_FAILED_0 0xFFFF0040
84
#define cOCT6100_RELEASE_SERIAL_FAILED_1 0xFFFF0041
85
#define cOCT6100_RELEASE_SERIAL_FAILED_2 0xFFFF0042
86
#define cOCT6100_RELEASE_SERIAL_FAILED_3 0xFFFF0043
87
#define cOCT6100_RELEASE_SERIAL_FAILED_4 0xFFFF0044
89
#define cOCT6100_SEIZE_SERIAL_FAILED_0 0xFFFF0050
90
#define cOCT6100_SEIZE_SERIAL_FAILED_1 0xFFFF0051
91
#define cOCT6100_SEIZE_SERIAL_FAILED_2 0xFFFF0052
92
#define cOCT6100_SEIZE_SERIAL_FAILED_3 0xFFFF0053
93
#define cOCT6100_SEIZE_SERIAL_FAILED_4 0xFFFF0054
95
#define cOCT6100_DRIVER_WRITE_FAILED_0 0xFFFF0060
96
#define cOCT6100_DRIVER_WRITE_FAILED_1 0xFFFF0061
97
#define cOCT6100_DRIVER_WRITE_FAILED_2 0xFFFF0062
98
#define cOCT6100_DRIVER_WRITE_FAILED_3 0xFFFF0063
99
#define cOCT6100_DRIVER_WRITE_FAILED_4 0xFFFF0064
101
#define cOCT6100_DRIVER_WSMEAR_FAILED_0 0xFFFF0070
102
#define cOCT6100_DRIVER_WSMEAR_FAILED_1 0xFFFF0071
103
#define cOCT6100_DRIVER_WSMEAR_FAILED_2 0xFFFF0072
104
#define cOCT6100_DRIVER_WSMEAR_FAILED_3 0xFFFF0073
105
#define cOCT6100_DRIVER_WSMEAR_FAILED_4 0xFFFF0074
107
#define cOCT6100_DRIVER_WBURST_FAILED_0 0xFFFF0080
108
#define cOCT6100_DRIVER_WBURST_FAILED_1 0xFFFF0081
109
#define cOCT6100_DRIVER_WBURST_FAILED_2 0xFFFF0082
110
#define cOCT6100_DRIVER_WBURST_FAILED_3 0xFFFF0083
111
#define cOCT6100_DRIVER_WBURST_FAILED_4 0xFFFF0084
113
#define cOCT6100_DRIVER_READ_FAILED_0 0xFFFF0090
114
#define cOCT6100_DRIVER_READ_FAILED_1 0xFFFF0091
115
#define cOCT6100_DRIVER_READ_FAILED_2 0xFFFF0092
116
#define cOCT6100_DRIVER_READ_FAILED_3 0xFFFF0093
117
#define cOCT6100_DRIVER_READ_FAILED_4 0xFFFF0094
119
#define cOCT6100_DRIVER_RBURST_FAILED_0 0xFFFF00A0
120
#define cOCT6100_DRIVER_RBURST_FAILED_1 0xFFFF00A1
121
#define cOCT6100_DRIVER_RBURST_FAILED_2 0xFFFF00A2
122
#define cOCT6100_DRIVER_RBURST_FAILED_3 0xFFFF00A3
123
#define cOCT6100_DRIVER_RBURST_FAILED_4 0xFFFF00A4
129
/***************************** TYPES ***************************************/
131
/*Change this type if your platform uses 64bits semaphores/locks */
132
typedef UINT32 tOCT6100_USER_SERIAL_OBJECT;
134
typedef struct _OCT6100_GET_TIME_
136
PVOID pProcessContext;
137
UINT32 aulWallTimeUs[ 2 ];
139
} tOCT6100_GET_TIME, *tPOCT6100_GET_TIME;
145
typedef struct _OCT6100_CREATE_SERIALIZE_OBJECT_
147
PVOID pProcessContext;
148
PSZ pszSerialObjName;
149
tOCT6100_USER_SERIAL_OBJECT ulSerialObjHndl;
151
} tOCT6100_CREATE_SERIALIZE_OBJECT, *tPOCT6100_CREATE_SERIALIZE_OBJECT;
154
typedef struct _OCT6100_DESTROY_SERIALIZE_OBJECT_
156
PVOID pProcessContext;
157
tOCT6100_USER_SERIAL_OBJECT ulSerialObjHndl;
159
} tOCT6100_DESTROY_SERIALIZE_OBJECT, *tPOCT6100_DESTROY_SERIALIZE_OBJECT;
162
typedef struct _OCT6100_SEIZE_SERIALIZE_OBJECT_
164
PVOID pProcessContext;
165
tOCT6100_USER_SERIAL_OBJECT ulSerialObjHndl;
168
} tOCT6100_SEIZE_SERIALIZE_OBJECT, *tPOCT6100_SEIZE_SERIALIZE_OBJECT;
171
typedef struct _OCT6100_RELEASE_SERIALIZE_OBJECT_
173
PVOID pProcessContext;
174
tOCT6100_USER_SERIAL_OBJECT ulSerialObjHndl;
176
} tOCT6100_RELEASE_SERIALIZE_OBJECT, *tPOCT6100_RELEASE_SERIALIZE_OBJECT;
179
typedef struct _OCT6100_WRITE_PARAMS_
181
PVOID pProcessContext;
184
UINT32 ulWriteAddress;
187
} tOCT6100_WRITE_PARAMS, *tPOCT6100_WRITE_PARAMS;
190
typedef struct _OCT6100_WRITE_SMEAR_PARAMS_
192
PVOID pProcessContext;
195
UINT32 ulWriteAddress;
196
UINT32 ulWriteLength;
199
} tOCT6100_WRITE_SMEAR_PARAMS, *tPOCT6100_WRITE_SMEAR_PARAMS;
202
typedef struct _OCT6100_WRITE_BURST_PARAMS_
204
PVOID pProcessContext;
207
UINT32 ulWriteAddress;
208
UINT32 ulWriteLength;
209
PUINT16 pusWriteData;
211
} tOCT6100_WRITE_BURST_PARAMS, *tPOCT6100_WRITE_BURST_PARAMS;
214
typedef struct _OCT6100_READ_PARAMS_
216
PVOID pProcessContext;
219
UINT32 ulReadAddress;
222
} tOCT6100_READ_PARAMS, *tPOCT6100_READ_PARAMS;
225
typedef struct _OCT6100_READ_BURST_PARAMS_
227
PVOID pProcessContext;
230
UINT32 ulReadAddress;
234
} tOCT6100_READ_BURST_PARAMS, *tPOCT6100_READ_BURST_PARAMS;
243
/************************** FUNCTION PROTOTYPES *****************************/
246
UINT32 Oct6100UserGetTime(
247
IN OUT tPOCT6100_GET_TIME f_pTime );
251
/* Memory management functions. */
252
UINT32 Oct6100UserMemSet(
254
IN UINT32 f_ulPattern,
255
IN UINT32 f_ulLength );
257
UINT32 Oct6100UserMemCopy(
258
IN PVOID f_pDestination,
259
IN const void *f_pSource,
260
IN UINT32 f_ulLength );
262
/* Serialization functions. */
263
UINT32 Oct6100UserCreateSerializeObject(
264
IN OUT tPOCT6100_CREATE_SERIALIZE_OBJECT f_pCreate);
266
UINT32 Oct6100UserDestroySerializeObject(
267
IN tPOCT6100_DESTROY_SERIALIZE_OBJECT f_pDestroy);
269
UINT32 Oct6100UserSeizeSerializeObject(
270
IN tPOCT6100_SEIZE_SERIALIZE_OBJECT f_pSeize);
272
UINT32 Oct6100UserReleaseSerializeObject(
273
IN tPOCT6100_RELEASE_SERIALIZE_OBJECT f_pRelease);
275
/* Read/Write functions.*/
276
UINT32 Oct6100UserDriverWriteApi(
277
IN tPOCT6100_WRITE_PARAMS f_pWriteParams );
279
UINT32 Oct6100UserDriverWriteOs(
280
IN tPOCT6100_WRITE_PARAMS f_pWriteParams );
282
UINT32 Oct6100UserDriverWriteSmearApi(
283
IN tPOCT6100_WRITE_SMEAR_PARAMS f_pSmearParams );
285
UINT32 Oct6100UserDriverWriteSmearOs(
286
IN tPOCT6100_WRITE_SMEAR_PARAMS f_pSmearParams );
288
UINT32 Oct6100UserDriverWriteBurstApi(
289
IN tPOCT6100_WRITE_BURST_PARAMS f_pBurstParams );
291
UINT32 Oct6100UserDriverWriteBurstOs(
292
IN tPOCT6100_WRITE_BURST_PARAMS f_pBurstParams );
294
UINT32 Oct6100UserDriverReadApi(
295
IN OUT tPOCT6100_READ_PARAMS f_pReadParams );
297
UINT32 Oct6100UserDriverReadOs(
298
IN OUT tPOCT6100_READ_PARAMS f_pReadParams );
300
UINT32 Oct6100UserDriverReadBurstApi(
301
IN OUT tPOCT6100_READ_BURST_PARAMS f_pBurstParams );
303
UINT32 Oct6100UserDriverReadBurstOs(
304
IN OUT tPOCT6100_READ_BURST_PARAMS f_pBurstParams );
312
#endif /* __OCT6100_APIUD_H__ */