summaryrefslogtreecommitdiff
path: root/software/include/oct6100api/oct6100_apiud.h
blob: a81d8354e951bd3a414cc843036395d60d673566 (plain)
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
310
311
312
/*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*\

File:  oct6100_apiud.h

    Copyright (c) 2001-2011 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.04.06 $

$Octasic_Revision: 16 $

\*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/

#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  ***************************************/

/*Change this type if your platform uses 64bits semaphores/locks */ 
typedef UINT32 tOCT6100_USER_SERIAL_OBJECT;

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;
	tOCT6100_USER_SERIAL_OBJECT	ulSerialObjHndl;

} tOCT6100_CREATE_SERIALIZE_OBJECT, *tPOCT6100_CREATE_SERIALIZE_OBJECT;


typedef struct _OCT6100_DESTROY_SERIALIZE_OBJECT_
{
	PVOID						pProcessContext;
	tOCT6100_USER_SERIAL_OBJECT	ulSerialObjHndl;

} tOCT6100_DESTROY_SERIALIZE_OBJECT, *tPOCT6100_DESTROY_SERIALIZE_OBJECT;


typedef struct _OCT6100_SEIZE_SERIALIZE_OBJECT_
{
	PVOID						pProcessContext;
	tOCT6100_USER_SERIAL_OBJECT	ulSerialObjHndl;
	UINT32						ulTryTimeMs;

} tOCT6100_SEIZE_SERIALIZE_OBJECT, *tPOCT6100_SEIZE_SERIALIZE_OBJECT;


typedef struct _OCT6100_RELEASE_SERIALIZE_OBJECT_
{
	PVOID						pProcessContext;
	tOCT6100_USER_SERIAL_OBJECT	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		PVOID								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__ */