1
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\
5
Copyright (c) 2001-2006 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-PR43 $
28
$Octasic_Revision: 15 $
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
typedef struct _OCT6100_GET_TIME_
133
PVOID pProcessContext;
134
UINT32 aulWallTimeUs[ 2 ];
136
} tOCT6100_GET_TIME, *tPOCT6100_GET_TIME;
142
typedef struct _OCT6100_CREATE_SERIALIZE_OBJECT_
144
PVOID pProcessContext;
145
PSZ pszSerialObjName;
146
UINT32 ulSerialObjHndl;
148
} tOCT6100_CREATE_SERIALIZE_OBJECT, *tPOCT6100_CREATE_SERIALIZE_OBJECT;
151
typedef struct _OCT6100_DESTROY_SERIALIZE_OBJECT_
153
PVOID pProcessContext;
154
UINT32 ulSerialObjHndl;
156
} tOCT6100_DESTROY_SERIALIZE_OBJECT, *tPOCT6100_DESTROY_SERIALIZE_OBJECT;
159
typedef struct _OCT6100_SEIZE_SERIALIZE_OBJECT_
161
PVOID pProcessContext;
162
UINT32 ulSerialObjHndl;
165
} tOCT6100_SEIZE_SERIALIZE_OBJECT, *tPOCT6100_SEIZE_SERIALIZE_OBJECT;
168
typedef struct _OCT6100_RELEASE_SERIALIZE_OBJECT_
170
PVOID pProcessContext;
171
UINT32 ulSerialObjHndl;
173
} tOCT6100_RELEASE_SERIALIZE_OBJECT, *tPOCT6100_RELEASE_SERIALIZE_OBJECT;
176
typedef struct _OCT6100_WRITE_PARAMS_
178
PVOID pProcessContext;
181
UINT32 ulWriteAddress;
184
} tOCT6100_WRITE_PARAMS, *tPOCT6100_WRITE_PARAMS;
187
typedef struct _OCT6100_WRITE_SMEAR_PARAMS_
189
PVOID pProcessContext;
192
UINT32 ulWriteAddress;
193
UINT32 ulWriteLength;
196
} tOCT6100_WRITE_SMEAR_PARAMS, *tPOCT6100_WRITE_SMEAR_PARAMS;
199
typedef struct _OCT6100_WRITE_BURST_PARAMS_
201
PVOID pProcessContext;
204
UINT32 ulWriteAddress;
205
UINT32 ulWriteLength;
206
PUINT16 pusWriteData;
208
} tOCT6100_WRITE_BURST_PARAMS, *tPOCT6100_WRITE_BURST_PARAMS;
211
typedef struct _OCT6100_READ_PARAMS_
213
PVOID pProcessContext;
216
UINT32 ulReadAddress;
219
} tOCT6100_READ_PARAMS, *tPOCT6100_READ_PARAMS;
222
typedef struct _OCT6100_READ_BURST_PARAMS_
224
PVOID pProcessContext;
227
UINT32 ulReadAddress;
231
} tOCT6100_READ_BURST_PARAMS, *tPOCT6100_READ_BURST_PARAMS;
240
/************************** FUNCTION PROTOTYPES *****************************/
243
static UINT32 Oct6100UserGetTime(
244
IN OUT tPOCT6100_GET_TIME f_pTime );
248
/* Memory management functions. */
249
static UINT32 Oct6100UserMemSet(
251
IN UINT32 f_ulPattern,
252
IN UINT32 f_ulLength );
254
static UINT32 Oct6100UserMemCopy(
255
IN PVOID f_pDestination,
257
IN UINT32 f_ulLength );
259
/* Serialization functions. */
260
static UINT32 Oct6100UserCreateSerializeObject(
261
IN OUT tPOCT6100_CREATE_SERIALIZE_OBJECT f_pCreate);
263
static UINT32 Oct6100UserDestroySerializeObject(
264
IN tPOCT6100_DESTROY_SERIALIZE_OBJECT f_pDestroy);
266
static UINT32 Oct6100UserSeizeSerializeObject(
267
IN tPOCT6100_SEIZE_SERIALIZE_OBJECT f_pSeize);
269
static UINT32 Oct6100UserReleaseSerializeObject(
270
IN tPOCT6100_RELEASE_SERIALIZE_OBJECT f_pRelease);
272
/* Read/Write functions.*/
273
static UINT32 Oct6100UserDriverWriteApi(
274
IN tPOCT6100_WRITE_PARAMS f_pWriteParams );
276
UINT32 Oct6100UserDriverWriteOs(
277
IN tPOCT6100_WRITE_PARAMS f_pWriteParams );
279
static UINT32 Oct6100UserDriverWriteSmearApi(
280
IN tPOCT6100_WRITE_SMEAR_PARAMS f_pSmearParams );
282
UINT32 Oct6100UserDriverWriteSmearOs(
283
IN tPOCT6100_WRITE_SMEAR_PARAMS f_pSmearParams );
285
static UINT32 Oct6100UserDriverWriteBurstApi(
286
IN tPOCT6100_WRITE_BURST_PARAMS f_pBurstParams );
288
UINT32 Oct6100UserDriverWriteBurstOs(
289
IN tPOCT6100_WRITE_BURST_PARAMS f_pBurstParams );
291
static UINT32 Oct6100UserDriverReadApi(
292
IN OUT tPOCT6100_READ_PARAMS f_pReadParams );
294
UINT32 Oct6100UserDriverReadOs(
295
IN OUT tPOCT6100_READ_PARAMS f_pReadParams );
297
static UINT32 Oct6100UserDriverReadBurstApi(
298
IN OUT tPOCT6100_READ_BURST_PARAMS f_pBurstParams );
300
UINT32 Oct6100UserDriverReadBurstOs(
301
IN OUT tPOCT6100_READ_BURST_PARAMS f_pBurstParams );
309
#endif /* __OCT6100_APIUD_H__ */