aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/pvr/servicesext.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/pvr/servicesext.h')
-rw-r--r--drivers/gpu/pvr/servicesext.h850
1 files changed, 850 insertions, 0 deletions
diff --git a/drivers/gpu/pvr/servicesext.h b/drivers/gpu/pvr/servicesext.h
new file mode 100644
index 00000000000..759cffe2e15
--- /dev/null
+++ b/drivers/gpu/pvr/servicesext.h
@@ -0,0 +1,850 @@
1/**********************************************************************
2 *
3 * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
4 *
5 * This program is free software; you can redistribute it and/or modify it
6 * under the terms and conditions of the GNU General Public License,
7 * version 2, as published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope it will be useful but, except
10 * as otherwise stated in writing, without any warranty; without even the
11 * implied warranty of merchantability or fitness for a particular purpose.
12 * See the GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License along with
15 * this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
17 *
18 * The full GNU General Public License is included in this distribution in
19 * the file called "COPYING".
20 *
21 * Contact Information:
22 * Imagination Technologies Ltd. <gpl-support@imgtec.com>
23 * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK
24 *
25 ******************************************************************************/
26
27#if !defined (__SERVICESEXT_H__)
28#define __SERVICESEXT_H__
29
30#define PVRSRV_LOCKFLG_READONLY (1)
31
32typedef enum _PVRSRV_ERROR_
33{
34 PVRSRV_OK = 0,
35 PVRSRV_ERROR_OUT_OF_MEMORY,
36 PVRSRV_ERROR_TOO_FEW_BUFFERS,
37 PVRSRV_ERROR_INVALID_PARAMS,
38 PVRSRV_ERROR_INIT_FAILURE,
39 PVRSRV_ERROR_CANT_REGISTER_CALLBACK,
40 PVRSRV_ERROR_INVALID_DEVICE,
41 PVRSRV_ERROR_NOT_OWNER,
42 PVRSRV_ERROR_BAD_MAPPING,
43 PVRSRV_ERROR_TIMEOUT,
44 PVRSRV_ERROR_FLIP_CHAIN_EXISTS,
45 PVRSRV_ERROR_INVALID_SWAPINTERVAL,
46 PVRSRV_ERROR_SCENE_INVALID,
47 PVRSRV_ERROR_STREAM_ERROR,
48 PVRSRV_ERROR_FAILED_DEPENDENCIES,
49 PVRSRV_ERROR_CMD_NOT_PROCESSED,
50 PVRSRV_ERROR_CMD_TOO_BIG,
51 PVRSRV_ERROR_DEVICE_REGISTER_FAILED,
52 PVRSRV_ERROR_TOOMANYBUFFERS,
53 PVRSRV_ERROR_NOT_SUPPORTED,
54 PVRSRV_ERROR_PROCESSING_BLOCKED,
55
56 PVRSRV_ERROR_CANNOT_FLUSH_QUEUE,
57 PVRSRV_ERROR_CANNOT_GET_QUEUE_SPACE,
58 PVRSRV_ERROR_CANNOT_GET_RENDERDETAILS,
59 PVRSRV_ERROR_RETRY,
60
61 PVRSRV_ERROR_DDK_VERSION_MISMATCH,
62 PVRSRV_ERROR_BUILD_MISMATCH,
63 PVRSRV_ERROR_CORE_REVISION_MISMATCH,
64
65 PVRSRV_ERROR_UPLOAD_TOO_BIG,
66
67 PVRSRV_ERROR_INVALID_FLAGS,
68 PVRSRV_ERROR_FAILED_TO_REGISTER_PROCESS,
69
70 PVRSRV_ERROR_UNABLE_TO_LOAD_LIBRARY,
71 PVRSRV_ERROR_UNABLE_GET_FUNC_ADDR,
72 PVRSRV_ERROR_UNLOAD_LIBRARY_FAILED,
73
74 PVRSRV_ERROR_BRIDGE_CALL_FAILED,
75 PVRSRV_ERROR_IOCTL_CALL_FAILED,
76
77 PVRSRV_ERROR_MMU_CONTEXT_NOT_FOUND,
78 PVRSRV_ERROR_BUFFER_DEVICE_NOT_FOUND,
79 PVRSRV_ERROR_BUFFER_DEVICE_ALREADY_PRESENT,
80
81 PVRSRV_ERROR_PCI_DEVICE_NOT_FOUND,
82 PVRSRV_ERROR_PCI_CALL_FAILED,
83 PVRSRV_ERROR_PCI_REGION_TOO_SMALL,
84 PVRSRV_ERROR_PCI_REGION_UNAVAILABLE,
85 PVRSRV_ERROR_BAD_REGION_SIZE_MISMATCH,
86
87 PVRSRV_ERROR_REGISTER_BASE_NOT_SET,
88
89 PVRSRV_ERROR_FAILED_TO_ALLOC_USER_MEM,
90 PVRSRV_ERROR_FAILED_TO_ALLOC_VP_MEMORY,
91 PVRSRV_ERROR_FAILED_TO_MAP_SHARED_PBDESC,
92 PVRSRV_ERROR_FAILED_TO_GET_PHYS_ADDR,
93
94 PVRSRV_ERROR_FAILED_TO_ALLOC_VIRT_MEMORY,
95 PVRSRV_ERROR_FAILED_TO_COPY_VIRT_MEMORY,
96
97 PVRSRV_ERROR_FAILED_TO_ALLOC_PAGES,
98 PVRSRV_ERROR_FAILED_TO_FREE_PAGES,
99 PVRSRV_ERROR_FAILED_TO_COPY_PAGES,
100 PVRSRV_ERROR_UNABLE_TO_LOCK_PAGES,
101 PVRSRV_ERROR_UNABLE_TO_UNLOCK_PAGES,
102 PVRSRV_ERROR_STILL_MAPPED,
103 PVRSRV_ERROR_MAPPING_NOT_FOUND,
104 PVRSRV_ERROR_PHYS_ADDRESS_EXCEEDS_32BIT,
105 PVRSRV_ERROR_FAILED_TO_MAP_PAGE_TABLE,
106
107 PVRSRV_ERROR_INVALID_SEGMENT_BLOCK,
108 PVRSRV_ERROR_INVALID_SGXDEVDATA,
109 PVRSRV_ERROR_INVALID_DEVINFO,
110 PVRSRV_ERROR_INVALID_MEMINFO,
111 PVRSRV_ERROR_INVALID_MISCINFO,
112 PVRSRV_ERROR_UNKNOWN_IOCTL,
113 PVRSRV_ERROR_INVALID_CONTEXT,
114 PVRSRV_ERROR_UNABLE_TO_DESTROY_CONTEXT,
115 PVRSRV_ERROR_INVALID_HEAP,
116 PVRSRV_ERROR_INVALID_KERNELINFO,
117 PVRSRV_ERROR_UNKNOWN_POWER_STATE,
118 PVRSRV_ERROR_INVALID_HANDLE_TYPE,
119 PVRSRV_ERROR_INVALID_WRAP_TYPE,
120 PVRSRV_ERROR_INVALID_PHYS_ADDR,
121 PVRSRV_ERROR_INVALID_CPU_ADDR,
122 PVRSRV_ERROR_INVALID_HEAPINFO,
123 PVRSRV_ERROR_INVALID_PERPROC,
124 PVRSRV_ERROR_FAILED_TO_RETRIEVE_HEAPINFO,
125 PVRSRV_ERROR_INVALID_MAP_REQUEST,
126 PVRSRV_ERROR_INVALID_UNMAP_REQUEST,
127 PVRSRV_ERROR_UNABLE_TO_FIND_MAPPING_HEAP,
128 PVRSRV_ERROR_MAPPING_STILL_IN_USE,
129
130 PVRSRV_ERROR_EXCEEDED_HW_LIMITS,
131 PVRSRV_ERROR_NO_STAGING_BUFFER_ALLOCATED,
132
133 PVRSRV_ERROR_UNABLE_TO_CREATE_PERPROC_AREA,
134 PVRSRV_ERROR_UNABLE_TO_CREATE_EVENT,
135 PVRSRV_ERROR_UNABLE_TO_ENABLE_EVENT,
136 PVRSRV_ERROR_UNABLE_TO_REGISTER_EVENT,
137 PVRSRV_ERROR_UNABLE_TO_DESTROY_EVENT,
138 PVRSRV_ERROR_UNABLE_TO_CREATE_THREAD,
139 PVRSRV_ERROR_UNABLE_TO_CLOSE_THREAD,
140 PVRSRV_ERROR_THREAD_READ_ERROR,
141 PVRSRV_ERROR_UNABLE_TO_REGISTER_ISR_HANDLER,
142 PVRSRV_ERROR_UNABLE_TO_INSTALL_ISR,
143 PVRSRV_ERROR_UNABLE_TO_UNINSTALL_ISR,
144 PVRSRV_ERROR_ISR_ALREADY_INSTALLED,
145 PVRSRV_ERROR_ISR_NOT_INSTALLED,
146 PVRSRV_ERROR_UNABLE_TO_INITIALISE_INTERRUPT,
147 PVRSRV_ERROR_UNABLE_TO_RETRIEVE_INFO,
148 PVRSRV_ERROR_UNABLE_TO_DO_BACKWARDS_BLIT,
149 PVRSRV_ERROR_UNABLE_TO_CLOSE_SERVICES,
150 PVRSRV_ERROR_UNABLE_TO_REGISTER_CONTEXT,
151 PVRSRV_ERROR_UNABLE_TO_REGISTER_RESOURCE,
152
153 PVRSRV_ERROR_INVALID_CCB_COMMAND,
154
155 PVRSRV_ERROR_UNABLE_TO_LOCK_RESOURCE,
156 PVRSRV_ERROR_INVALID_LOCK_ID,
157 PVRSRV_ERROR_RESOURCE_NOT_LOCKED,
158
159 PVRSRV_ERROR_FLIP_FAILED,
160 PVRSRV_ERROR_UNBLANK_DISPLAY_FAILED,
161
162 PVRSRV_ERROR_TIMEOUT_POLLING_FOR_VALUE,
163
164 PVRSRV_ERROR_CREATE_RENDER_CONTEXT_FAILED,
165 PVRSRV_ERROR_UNKNOWN_PRIMARY_FRAG,
166 PVRSRV_ERROR_UNEXPECTED_SECONDARY_FRAG,
167 PVRSRV_ERROR_UNEXPECTED_PRIMARY_FRAG,
168
169 PVRSRV_ERROR_UNABLE_TO_INSERT_FENCE_ID,
170
171 PVRSRV_ERROR_BLIT_SETUP_FAILED,
172
173 PVRSRV_ERROR_PDUMP_NOT_AVAILABLE,
174 PVRSRV_ERROR_PDUMP_BUFFER_FULL,
175 PVRSRV_ERROR_PDUMP_BUF_OVERFLOW,
176 PVRSRV_ERROR_PDUMP_NOT_ACTIVE,
177 PVRSRV_ERROR_INCOMPLETE_LINE_OVERLAPS_PAGES,
178
179 PVRSRV_ERROR_MUTEX_DESTROY_FAILED,
180 PVRSRV_ERROR_MUTEX_INTERRUPTIBLE_ERROR,
181
182 PVRSRV_ERROR_INSUFFICIENT_SCRIPT_SPACE,
183 PVRSRV_ERROR_INSUFFICIENT_SPACE_FOR_COMMAND,
184
185 PVRSRV_ERROR_PROCESS_NOT_INITIALISED,
186 PVRSRV_ERROR_PROCESS_NOT_FOUND,
187 PVRSRV_ERROR_SRV_CONNECT_FAILED,
188 PVRSRV_ERROR_SRV_DISCONNECT_FAILED,
189 PVRSRV_ERROR_DEINT_PHASE_FAILED,
190 PVRSRV_ERROR_INIT2_PHASE_FAILED,
191
192 PVRSRV_ERROR_UNABLE_TO_FIND_RESOURCE,
193
194 PVRSRV_ERROR_NO_DC_DEVICES_FOUND,
195 PVRSRV_ERROR_UNABLE_TO_OPEN_DC_DEVICE,
196 PVRSRV_ERROR_UNABLE_TO_REMOVE_DEVICE,
197 PVRSRV_ERROR_NO_DEVICEDATA_FOUND,
198 PVRSRV_ERROR_NO_DEVICENODE_FOUND,
199 PVRSRV_ERROR_NO_CLIENTNODE_FOUND,
200 PVRSRV_ERROR_FAILED_TO_PROCESS_QUEUE,
201
202 PVRSRV_ERROR_UNABLE_TO_INIT_TASK,
203 PVRSRV_ERROR_UNABLE_TO_SCHEDULE_TASK,
204 PVRSRV_ERROR_UNABLE_TO_KILL_TASK,
205
206 PVRSRV_ERROR_UNABLE_TO_ENABLE_TIMER,
207 PVRSRV_ERROR_UNABLE_TO_DISABLE_TIMER,
208 PVRSRV_ERROR_UNABLE_TO_REMOVE_TIMER,
209
210 PVRSRV_ERROR_UNKNOWN_PIXEL_FORMAT,
211 PVRSRV_ERROR_UNKNOWN_SCRIPT_OPERATION,
212
213 PVRSRV_ERROR_HANDLE_INDEX_OUT_OF_RANGE,
214 PVRSRV_ERROR_HANDLE_NOT_ALLOCATED,
215 PVRSRV_ERROR_HANDLE_TYPE_MISMATCH,
216 PVRSRV_ERROR_UNABLE_TO_ADD_HANDLE,
217 PVRSRV_ERROR_HANDLE_NOT_SHAREABLE,
218 PVRSRV_ERROR_HANDLE_NOT_FOUND,
219 PVRSRV_ERROR_INVALID_SUBHANDLE,
220 PVRSRV_ERROR_HANDLE_BATCH_IN_USE,
221 PVRSRV_ERROR_HANDLE_BATCH_COMMIT_FAILURE,
222
223 PVRSRV_ERROR_UNABLE_TO_CREATE_HASH_TABLE,
224 PVRSRV_ERROR_INSERT_HASH_TABLE_DATA_FAILED,
225
226 PVRSRV_ERROR_UNSUPPORTED_BACKING_STORE,
227 PVRSRV_ERROR_UNABLE_TO_DESTROY_BM_HEAP,
228
229 PVRSRV_ERROR_UNKNOWN_INIT_SERVER_STATE,
230
231 PVRSRV_ERROR_NO_FREE_DEVICEIDS_AVALIABLE,
232 PVRSRV_ERROR_INVALID_DEVICEID,
233 PVRSRV_ERROR_DEVICEID_NOT_FOUND,
234
235 PVRSRV_ERROR_MEMORY_TEST_FAILED,
236 PVRSRV_ERROR_CPUPADDR_TEST_FAILED,
237 PVRSRV_ERROR_COPY_TEST_FAILED,
238
239 PVRSRV_ERROR_SEMAPHORE_NOT_INITIALISED,
240
241 PVRSRV_ERROR_UNABLE_TO_RELEASE_CLOCK,
242 PVRSRV_ERROR_CLOCK_REQUEST_FAILED,
243 PVRSRV_ERROR_DISABLE_CLOCK_FAILURE,
244 PVRSRV_ERROR_UNABLE_TO_SET_CLOCK_RATE,
245 PVRSRV_ERROR_UNABLE_TO_ROUND_CLOCK_RATE,
246 PVRSRV_ERROR_UNABLE_TO_ENABLE_CLOCK,
247 PVRSRV_ERROR_UNABLE_TO_GET_CLOCK,
248 PVRSRV_ERROR_UNABLE_TO_GET_PARENT_CLOCK,
249 PVRSRV_ERROR_UNABLE_TO_GET_SYSTEM_CLOCK,
250
251 PVRSRV_ERROR_UNKNOWN_SGL_ERROR,
252
253 PVRSRV_ERROR_SYSTEM_POWER_CHANGE_FAILURE,
254 PVRSRV_ERROR_DEVICE_POWER_CHANGE_FAILURE,
255
256 PVRSRV_ERROR_BAD_SYNC_STATE,
257
258 PVRSRV_ERROR_CACHEOP_FAILED,
259
260 PVRSRV_ERROR_FORCE_I32 = 0x7fffffff
261
262} PVRSRV_ERROR;
263
264
265typedef enum _PVRSRV_DEVICE_CLASS_
266{
267 PVRSRV_DEVICE_CLASS_3D = 0 ,
268 PVRSRV_DEVICE_CLASS_DISPLAY = 1 ,
269 PVRSRV_DEVICE_CLASS_BUFFER = 2 ,
270 PVRSRV_DEVICE_CLASS_VIDEO = 3 ,
271
272 PVRSRV_DEVICE_CLASS_FORCE_I32 = 0x7fffffff
273
274} PVRSRV_DEVICE_CLASS;
275
276
277typedef enum _PVRSRV_SYS_POWER_STATE_
278{
279 PVRSRV_SYS_POWER_STATE_Unspecified = -1,
280 PVRSRV_SYS_POWER_STATE_D0 = 0,
281 PVRSRV_SYS_POWER_STATE_D1 = 1,
282 PVRSRV_SYS_POWER_STATE_D2 = 2,
283 PVRSRV_SYS_POWER_STATE_D3 = 3,
284 PVRSRV_SYS_POWER_STATE_D4 = 4,
285
286 PVRSRV_SYS_POWER_STATE_FORCE_I32 = 0x7fffffff
287
288} PVRSRV_SYS_POWER_STATE, *PPVRSRV_SYS_POWER_STATE;
289
290
291typedef enum _PVRSRV_DEV_POWER_STATE_
292{
293 PVRSRV_DEV_POWER_STATE_DEFAULT = -1,
294 PVRSRV_DEV_POWER_STATE_ON = 0,
295 PVRSRV_DEV_POWER_STATE_IDLE = 1,
296 PVRSRV_DEV_POWER_STATE_OFF = 2,
297
298 PVRSRV_DEV_POWER_STATE_FORCE_I32 = 0x7fffffff
299
300} PVRSRV_DEV_POWER_STATE, *PPVRSRV_DEV_POWER_STATE;
301
302
303typedef PVRSRV_ERROR (*PFN_PRE_POWER) (IMG_HANDLE hDevHandle,
304 PVRSRV_DEV_POWER_STATE eNewPowerState,
305 PVRSRV_DEV_POWER_STATE eCurrentPowerState);
306typedef PVRSRV_ERROR (*PFN_POST_POWER) (IMG_HANDLE hDevHandle,
307 PVRSRV_DEV_POWER_STATE eNewPowerState,
308 PVRSRV_DEV_POWER_STATE eCurrentPowerState);
309
310typedef PVRSRV_ERROR (*PFN_PRE_CLOCKSPEED_CHANGE) (IMG_HANDLE hDevHandle,
311 IMG_BOOL bIdleDevice,
312 PVRSRV_DEV_POWER_STATE eCurrentPowerState);
313typedef PVRSRV_ERROR (*PFN_POST_CLOCKSPEED_CHANGE) (IMG_HANDLE hDevHandle,
314 IMG_BOOL bIdleDevice,
315 PVRSRV_DEV_POWER_STATE eCurrentPowerState);
316
317
318typedef enum _PVRSRV_PIXEL_FORMAT_ {
319
320 PVRSRV_PIXEL_FORMAT_UNKNOWN = 0,
321 PVRSRV_PIXEL_FORMAT_RGB565 = 1,
322 PVRSRV_PIXEL_FORMAT_RGB555 = 2,
323 PVRSRV_PIXEL_FORMAT_RGB888 = 3,
324 PVRSRV_PIXEL_FORMAT_BGR888 = 4,
325 PVRSRV_PIXEL_FORMAT_GREY_SCALE = 8,
326 PVRSRV_PIXEL_FORMAT_PAL12 = 13,
327 PVRSRV_PIXEL_FORMAT_PAL8 = 14,
328 PVRSRV_PIXEL_FORMAT_PAL4 = 15,
329 PVRSRV_PIXEL_FORMAT_PAL2 = 16,
330 PVRSRV_PIXEL_FORMAT_PAL1 = 17,
331 PVRSRV_PIXEL_FORMAT_ARGB1555 = 18,
332 PVRSRV_PIXEL_FORMAT_ARGB4444 = 19,
333 PVRSRV_PIXEL_FORMAT_ARGB8888 = 20,
334 PVRSRV_PIXEL_FORMAT_ABGR8888 = 21,
335 PVRSRV_PIXEL_FORMAT_YV12 = 22,
336 PVRSRV_PIXEL_FORMAT_I420 = 23,
337 PVRSRV_PIXEL_FORMAT_IMC2 = 25,
338 PVRSRV_PIXEL_FORMAT_XRGB8888 = 26,
339 PVRSRV_PIXEL_FORMAT_XBGR8888 = 27,
340 PVRSRV_PIXEL_FORMAT_BGRA8888 = 28,
341 PVRSRV_PIXEL_FORMAT_XRGB4444 = 29,
342 PVRSRV_PIXEL_FORMAT_ARGB8332 = 30,
343 PVRSRV_PIXEL_FORMAT_A2RGB10 = 31,
344 PVRSRV_PIXEL_FORMAT_A2BGR10 = 32,
345 PVRSRV_PIXEL_FORMAT_P8 = 33,
346 PVRSRV_PIXEL_FORMAT_L8 = 34,
347 PVRSRV_PIXEL_FORMAT_A8L8 = 35,
348 PVRSRV_PIXEL_FORMAT_A4L4 = 36,
349 PVRSRV_PIXEL_FORMAT_L16 = 37,
350 PVRSRV_PIXEL_FORMAT_L6V5U5 = 38,
351 PVRSRV_PIXEL_FORMAT_V8U8 = 39,
352 PVRSRV_PIXEL_FORMAT_V16U16 = 40,
353 PVRSRV_PIXEL_FORMAT_QWVU8888 = 41,
354 PVRSRV_PIXEL_FORMAT_XLVU8888 = 42,
355 PVRSRV_PIXEL_FORMAT_QWVU16 = 43,
356 PVRSRV_PIXEL_FORMAT_D16 = 44,
357 PVRSRV_PIXEL_FORMAT_D24S8 = 45,
358 PVRSRV_PIXEL_FORMAT_D24X8 = 46,
359
360
361 PVRSRV_PIXEL_FORMAT_ABGR16 = 47,
362 PVRSRV_PIXEL_FORMAT_ABGR16F = 48,
363 PVRSRV_PIXEL_FORMAT_ABGR32 = 49,
364 PVRSRV_PIXEL_FORMAT_ABGR32F = 50,
365 PVRSRV_PIXEL_FORMAT_B10GR11 = 51,
366 PVRSRV_PIXEL_FORMAT_GR88 = 52,
367 PVRSRV_PIXEL_FORMAT_BGR32 = 53,
368 PVRSRV_PIXEL_FORMAT_GR32 = 54,
369 PVRSRV_PIXEL_FORMAT_E5BGR9 = 55,
370
371
372 PVRSRV_PIXEL_FORMAT_DXT1 = 56,
373 PVRSRV_PIXEL_FORMAT_DXT2 = 57,
374 PVRSRV_PIXEL_FORMAT_DXT3 = 58,
375 PVRSRV_PIXEL_FORMAT_DXT4 = 59,
376 PVRSRV_PIXEL_FORMAT_DXT5 = 60,
377
378
379 PVRSRV_PIXEL_FORMAT_R8G8_B8G8 = 61,
380 PVRSRV_PIXEL_FORMAT_G8R8_G8B8 = 62,
381
382
383 PVRSRV_PIXEL_FORMAT_NV11 = 63,
384 PVRSRV_PIXEL_FORMAT_NV12 = 64,
385
386
387 PVRSRV_PIXEL_FORMAT_YUY2 = 65,
388 PVRSRV_PIXEL_FORMAT_YUV420 = 66,
389 PVRSRV_PIXEL_FORMAT_YUV444 = 67,
390 PVRSRV_PIXEL_FORMAT_VUY444 = 68,
391 PVRSRV_PIXEL_FORMAT_YUYV = 69,
392 PVRSRV_PIXEL_FORMAT_YVYU = 70,
393 PVRSRV_PIXEL_FORMAT_UYVY = 71,
394 PVRSRV_PIXEL_FORMAT_VYUY = 72,
395
396 PVRSRV_PIXEL_FORMAT_FOURCC_ORG_UYVY = 73,
397 PVRSRV_PIXEL_FORMAT_FOURCC_ORG_YUYV = 74,
398 PVRSRV_PIXEL_FORMAT_FOURCC_ORG_YVYU = 75,
399 PVRSRV_PIXEL_FORMAT_FOURCC_ORG_VYUY = 76,
400 PVRSRV_PIXEL_FORMAT_FOURCC_ORG_AYUV = 77,
401
402
403 PVRSRV_PIXEL_FORMAT_A32B32G32R32 = 78,
404 PVRSRV_PIXEL_FORMAT_A32B32G32R32F = 79,
405 PVRSRV_PIXEL_FORMAT_A32B32G32R32_UINT = 80,
406 PVRSRV_PIXEL_FORMAT_A32B32G32R32_SINT = 81,
407
408
409 PVRSRV_PIXEL_FORMAT_B32G32R32 = 82,
410 PVRSRV_PIXEL_FORMAT_B32G32R32F = 83,
411 PVRSRV_PIXEL_FORMAT_B32G32R32_UINT = 84,
412 PVRSRV_PIXEL_FORMAT_B32G32R32_SINT = 85,
413
414
415 PVRSRV_PIXEL_FORMAT_G32R32 = 86,
416 PVRSRV_PIXEL_FORMAT_G32R32F = 87,
417 PVRSRV_PIXEL_FORMAT_G32R32_UINT = 88,
418 PVRSRV_PIXEL_FORMAT_G32R32_SINT = 89,
419
420
421 PVRSRV_PIXEL_FORMAT_D32F = 90,
422 PVRSRV_PIXEL_FORMAT_R32 = 91,
423 PVRSRV_PIXEL_FORMAT_R32F = 92,
424 PVRSRV_PIXEL_FORMAT_R32_UINT = 93,
425 PVRSRV_PIXEL_FORMAT_R32_SINT = 94,
426
427
428 PVRSRV_PIXEL_FORMAT_A16B16G16R16 = 95,
429 PVRSRV_PIXEL_FORMAT_A16B16G16R16F = 96,
430 PVRSRV_PIXEL_FORMAT_A16B16G16R16_SINT = 97,
431 PVRSRV_PIXEL_FORMAT_A16B16G16R16_SNORM = 98,
432 PVRSRV_PIXEL_FORMAT_A16B16G16R16_UINT = 99,
433 PVRSRV_PIXEL_FORMAT_A16B16G16R16_UNORM = 100,
434
435
436 PVRSRV_PIXEL_FORMAT_G16R16 = 101,
437 PVRSRV_PIXEL_FORMAT_G16R16F = 102,
438 PVRSRV_PIXEL_FORMAT_G16R16_UINT = 103,
439 PVRSRV_PIXEL_FORMAT_G16R16_UNORM = 104,
440 PVRSRV_PIXEL_FORMAT_G16R16_SINT = 105,
441 PVRSRV_PIXEL_FORMAT_G16R16_SNORM = 106,
442
443
444 PVRSRV_PIXEL_FORMAT_R16 = 107,
445 PVRSRV_PIXEL_FORMAT_R16F = 108,
446 PVRSRV_PIXEL_FORMAT_R16_UINT = 109,
447 PVRSRV_PIXEL_FORMAT_R16_UNORM = 110,
448 PVRSRV_PIXEL_FORMAT_R16_SINT = 111,
449 PVRSRV_PIXEL_FORMAT_R16_SNORM = 112,
450
451
452 PVRSRV_PIXEL_FORMAT_X8R8G8B8 = 113,
453 PVRSRV_PIXEL_FORMAT_X8R8G8B8_UNORM = 114,
454 PVRSRV_PIXEL_FORMAT_X8R8G8B8_UNORM_SRGB = 115,
455
456 PVRSRV_PIXEL_FORMAT_A8R8G8B8 = 116,
457 PVRSRV_PIXEL_FORMAT_A8R8G8B8_UNORM = 117,
458 PVRSRV_PIXEL_FORMAT_A8R8G8B8_UNORM_SRGB = 118,
459
460 PVRSRV_PIXEL_FORMAT_A8B8G8R8 = 119,
461 PVRSRV_PIXEL_FORMAT_A8B8G8R8_UINT = 120,
462 PVRSRV_PIXEL_FORMAT_A8B8G8R8_UNORM = 121,
463 PVRSRV_PIXEL_FORMAT_A8B8G8R8_UNORM_SRGB = 122,
464 PVRSRV_PIXEL_FORMAT_A8B8G8R8_SINT = 123,
465 PVRSRV_PIXEL_FORMAT_A8B8G8R8_SNORM = 124,
466
467
468 PVRSRV_PIXEL_FORMAT_G8R8 = 125,
469 PVRSRV_PIXEL_FORMAT_G8R8_UINT = 126,
470 PVRSRV_PIXEL_FORMAT_G8R8_UNORM = 127,
471 PVRSRV_PIXEL_FORMAT_G8R8_SINT = 128,
472 PVRSRV_PIXEL_FORMAT_G8R8_SNORM = 129,
473
474
475 PVRSRV_PIXEL_FORMAT_A8 = 130,
476 PVRSRV_PIXEL_FORMAT_R8 = 131,
477 PVRSRV_PIXEL_FORMAT_R8_UINT = 132,
478 PVRSRV_PIXEL_FORMAT_R8_UNORM = 133,
479 PVRSRV_PIXEL_FORMAT_R8_SINT = 134,
480 PVRSRV_PIXEL_FORMAT_R8_SNORM = 135,
481
482
483 PVRSRV_PIXEL_FORMAT_A2B10G10R10 = 136,
484 PVRSRV_PIXEL_FORMAT_A2B10G10R10_UNORM = 137,
485 PVRSRV_PIXEL_FORMAT_A2B10G10R10_UINT = 138,
486
487
488 PVRSRV_PIXEL_FORMAT_B10G11R11 = 139,
489 PVRSRV_PIXEL_FORMAT_B10G11R11F = 140,
490
491
492 PVRSRV_PIXEL_FORMAT_X24G8R32 = 141,
493 PVRSRV_PIXEL_FORMAT_G8R24 = 142,
494 PVRSRV_PIXEL_FORMAT_X8R24 = 143,
495 PVRSRV_PIXEL_FORMAT_E5B9G9R9 = 144,
496 PVRSRV_PIXEL_FORMAT_R1 = 145,
497
498 PVRSRV_PIXEL_FORMAT_BC1 = 146,
499 PVRSRV_PIXEL_FORMAT_BC1_UNORM = 147,
500 PVRSRV_PIXEL_FORMAT_BC1_SRGB = 148,
501 PVRSRV_PIXEL_FORMAT_BC2 = 149,
502 PVRSRV_PIXEL_FORMAT_BC2_UNORM = 150,
503 PVRSRV_PIXEL_FORMAT_BC2_SRGB = 151,
504 PVRSRV_PIXEL_FORMAT_BC3 = 152,
505 PVRSRV_PIXEL_FORMAT_BC3_UNORM = 153,
506 PVRSRV_PIXEL_FORMAT_BC3_SRGB = 154,
507 PVRSRV_PIXEL_FORMAT_BC4 = 155,
508 PVRSRV_PIXEL_FORMAT_BC4_UNORM = 156,
509 PVRSRV_PIXEL_FORMAT_BC4_SNORM = 157,
510 PVRSRV_PIXEL_FORMAT_BC5 = 158,
511 PVRSRV_PIXEL_FORMAT_BC5_UNORM = 159,
512 PVRSRV_PIXEL_FORMAT_BC5_SNORM = 160,
513
514
515 PVRSRV_PIXEL_FORMAT_UBYTE4 = 161,
516 PVRSRV_PIXEL_FORMAT_SHORT4 = 162,
517 PVRSRV_PIXEL_FORMAT_SHORT4N = 163,
518 PVRSRV_PIXEL_FORMAT_USHORT4N = 164,
519 PVRSRV_PIXEL_FORMAT_SHORT2N = 165,
520 PVRSRV_PIXEL_FORMAT_SHORT2 = 166,
521 PVRSRV_PIXEL_FORMAT_USHORT2N = 167,
522 PVRSRV_PIXEL_FORMAT_UDEC3 = 168,
523 PVRSRV_PIXEL_FORMAT_DEC3N = 169,
524 PVRSRV_PIXEL_FORMAT_F16_2 = 170,
525 PVRSRV_PIXEL_FORMAT_F16_4 = 171,
526
527
528 PVRSRV_PIXEL_FORMAT_L_F16 = 172,
529 PVRSRV_PIXEL_FORMAT_L_F16_REP = 173,
530 PVRSRV_PIXEL_FORMAT_L_F16_A_F16 = 174,
531 PVRSRV_PIXEL_FORMAT_A_F16 = 175,
532 PVRSRV_PIXEL_FORMAT_B16G16R16F = 176,
533
534 PVRSRV_PIXEL_FORMAT_L_F32 = 177,
535 PVRSRV_PIXEL_FORMAT_A_F32 = 178,
536 PVRSRV_PIXEL_FORMAT_L_F32_A_F32 = 179,
537
538
539 PVRSRV_PIXEL_FORMAT_PVRTC2 = 180,
540 PVRSRV_PIXEL_FORMAT_PVRTC4 = 181,
541 PVRSRV_PIXEL_FORMAT_PVRTCII2 = 182,
542 PVRSRV_PIXEL_FORMAT_PVRTCII4 = 183,
543 PVRSRV_PIXEL_FORMAT_PVRTCIII = 184,
544 PVRSRV_PIXEL_FORMAT_PVRO8 = 185,
545 PVRSRV_PIXEL_FORMAT_PVRO88 = 186,
546 PVRSRV_PIXEL_FORMAT_PT1 = 187,
547 PVRSRV_PIXEL_FORMAT_PT2 = 188,
548 PVRSRV_PIXEL_FORMAT_PT4 = 189,
549 PVRSRV_PIXEL_FORMAT_PT8 = 190,
550 PVRSRV_PIXEL_FORMAT_PTW = 191,
551 PVRSRV_PIXEL_FORMAT_PTB = 192,
552 PVRSRV_PIXEL_FORMAT_MONO8 = 193,
553 PVRSRV_PIXEL_FORMAT_MONO16 = 194,
554
555
556 PVRSRV_PIXEL_FORMAT_C0_YUYV = 195,
557 PVRSRV_PIXEL_FORMAT_C0_UYVY = 196,
558 PVRSRV_PIXEL_FORMAT_C0_YVYU = 197,
559 PVRSRV_PIXEL_FORMAT_C0_VYUY = 198,
560 PVRSRV_PIXEL_FORMAT_C1_YUYV = 199,
561 PVRSRV_PIXEL_FORMAT_C1_UYVY = 200,
562 PVRSRV_PIXEL_FORMAT_C1_YVYU = 201,
563 PVRSRV_PIXEL_FORMAT_C1_VYUY = 202,
564
565
566 PVRSRV_PIXEL_FORMAT_C0_YUV420_2P_UV = 203,
567 PVRSRV_PIXEL_FORMAT_C0_YUV420_2P_VU = 204,
568 PVRSRV_PIXEL_FORMAT_C0_YUV420_3P = 205,
569 PVRSRV_PIXEL_FORMAT_C1_YUV420_2P_UV = 206,
570 PVRSRV_PIXEL_FORMAT_C1_YUV420_2P_VU = 207,
571 PVRSRV_PIXEL_FORMAT_C1_YUV420_3P = 208,
572
573 PVRSRV_PIXEL_FORMAT_A2B10G10R10F = 209,
574 PVRSRV_PIXEL_FORMAT_B8G8R8_SINT = 210,
575 PVRSRV_PIXEL_FORMAT_PVRF32SIGNMASK = 211,
576
577 PVRSRV_PIXEL_FORMAT_ABGR4444 = 212,
578 PVRSRV_PIXEL_FORMAT_ABGR1555 = 213,
579 PVRSRV_PIXEL_FORMAT_BGR565 = 214,
580
581 PVRSRV_PIXEL_FORMAT_FORCE_I32 = 0x7fffffff
582
583} PVRSRV_PIXEL_FORMAT;
584
585typedef enum _PVRSRV_ALPHA_FORMAT_ {
586 PVRSRV_ALPHA_FORMAT_UNKNOWN = 0x00000000,
587 PVRSRV_ALPHA_FORMAT_PRE = 0x00000001,
588 PVRSRV_ALPHA_FORMAT_NONPRE = 0x00000002,
589 PVRSRV_ALPHA_FORMAT_MASK = 0x0000000F,
590} PVRSRV_ALPHA_FORMAT;
591
592typedef enum _PVRSRV_COLOURSPACE_FORMAT_ {
593 PVRSRV_COLOURSPACE_FORMAT_UNKNOWN = 0x00000000,
594 PVRSRV_COLOURSPACE_FORMAT_LINEAR = 0x00010000,
595 PVRSRV_COLOURSPACE_FORMAT_NONLINEAR = 0x00020000,
596 PVRSRV_COLOURSPACE_FORMAT_MASK = 0x000F0000,
597} PVRSRV_COLOURSPACE_FORMAT;
598
599
600typedef enum _PVRSRV_ROTATION_ {
601 PVRSRV_ROTATE_0 = 0,
602 PVRSRV_ROTATE_90 = 1,
603 PVRSRV_ROTATE_180 = 2,
604 PVRSRV_ROTATE_270 = 3,
605 PVRSRV_FLIP_Y
606
607} PVRSRV_ROTATION;
608
609#define PVRSRV_CREATE_SWAPCHAIN_SHARED (1<<0)
610#define PVRSRV_CREATE_SWAPCHAIN_QUERY (1<<1)
611#define PVRSRV_CREATE_SWAPCHAIN_OEMOVERLAY (1<<2)
612
613typedef struct _PVRSRV_SYNC_DATA_
614{
615
616 IMG_UINT32 ui32WriteOpsPending;
617 volatile IMG_UINT32 ui32WriteOpsComplete;
618
619
620 IMG_UINT32 ui32ReadOpsPending;
621 volatile IMG_UINT32 ui32ReadOpsComplete;
622
623
624 IMG_UINT32 ui32LastOpDumpVal;
625 IMG_UINT32 ui32LastReadOpDumpVal;
626
627} PVRSRV_SYNC_DATA;
628
629typedef struct _PVRSRV_CLIENT_SYNC_INFO_
630{
631
632 PVRSRV_SYNC_DATA *psSyncData;
633
634
635
636
637
638 IMG_DEV_VIRTADDR sWriteOpsCompleteDevVAddr;
639
640
641 IMG_DEV_VIRTADDR sReadOpsCompleteDevVAddr;
642
643
644 IMG_HANDLE hMappingInfo;
645
646
647 IMG_HANDLE hKernelSyncInfo;
648
649} PVRSRV_CLIENT_SYNC_INFO, *PPVRSRV_CLIENT_SYNC_INFO;
650
651typedef struct PVRSRV_RESOURCE_TAG
652{
653 volatile IMG_UINT32 ui32Lock;
654 IMG_UINT32 ui32ID;
655}PVRSRV_RESOURCE;
656typedef PVRSRV_RESOURCE PVRSRV_RES_HANDLE;
657
658
659typedef IMG_VOID (*PFN_CMD_COMPLETE) (IMG_HANDLE);
660typedef IMG_VOID (**PPFN_CMD_COMPLETE) (IMG_HANDLE);
661
662typedef IMG_BOOL (*PFN_CMD_PROC) (IMG_HANDLE, IMG_UINT32, IMG_VOID*);
663typedef IMG_BOOL (**PPFN_CMD_PROC) (IMG_HANDLE, IMG_UINT32, IMG_VOID*);
664
665
666typedef struct _IMG_RECT_
667{
668 IMG_INT32 x0;
669 IMG_INT32 y0;
670 IMG_INT32 x1;
671 IMG_INT32 y1;
672}IMG_RECT;
673
674typedef struct _IMG_RECT_16_
675{
676 IMG_INT16 x0;
677 IMG_INT16 y0;
678 IMG_INT16 x1;
679 IMG_INT16 y1;
680}IMG_RECT_16;
681
682
683typedef PVRSRV_ERROR (*PFN_GET_BUFFER_ADDR)(IMG_HANDLE,
684 IMG_HANDLE,
685 IMG_SYS_PHYADDR**,
686 IMG_SIZE_T*,
687 IMG_VOID**,
688 IMG_HANDLE*,
689 IMG_BOOL*,
690 IMG_UINT32*);
691
692
693typedef struct DISPLAY_DIMS_TAG
694{
695 IMG_UINT32 ui32ByteStride;
696 IMG_UINT32 ui32Width;
697 IMG_UINT32 ui32Height;
698} DISPLAY_DIMS;
699
700
701typedef struct DISPLAY_FORMAT_TAG
702{
703
704 PVRSRV_PIXEL_FORMAT pixelformat;
705} DISPLAY_FORMAT;
706
707typedef struct DISPLAY_SURF_ATTRIBUTES_TAG
708{
709
710 PVRSRV_PIXEL_FORMAT pixelformat;
711
712 DISPLAY_DIMS sDims;
713} DISPLAY_SURF_ATTRIBUTES;
714
715
716typedef struct DISPLAY_MODE_INFO_TAG
717{
718
719 PVRSRV_PIXEL_FORMAT pixelformat;
720
721 DISPLAY_DIMS sDims;
722
723 IMG_UINT32 ui32RefreshHZ;
724
725 IMG_UINT32 ui32OEMFlags;
726} DISPLAY_MODE_INFO;
727
728
729
730#define MAX_DISPLAY_NAME_SIZE (50)
731
732typedef struct DISPLAY_INFO_TAG
733{
734
735 IMG_UINT32 ui32MaxSwapChains;
736
737 IMG_UINT32 ui32MaxSwapChainBuffers;
738
739 IMG_UINT32 ui32MinSwapInterval;
740
741 IMG_UINT32 ui32MaxSwapInterval;
742
743 IMG_UINT32 ui32PhysicalWidthmm;
744 IMG_UINT32 ui32PhysicalHeightmm;
745
746 IMG_CHAR szDisplayName[MAX_DISPLAY_NAME_SIZE];
747#if defined(SUPPORT_HW_CURSOR)
748
749 IMG_UINT16 ui32CursorWidth;
750 IMG_UINT16 ui32CursorHeight;
751#endif
752} DISPLAY_INFO;
753
754typedef struct ACCESS_INFO_TAG
755{
756 IMG_UINT32 ui32Size;
757 IMG_UINT32 ui32FBPhysBaseAddress;
758 IMG_UINT32 ui32FBMemAvailable;
759 IMG_UINT32 ui32SysPhysBaseAddress;
760 IMG_UINT32 ui32SysSize;
761 IMG_UINT32 ui32DevIRQ;
762}ACCESS_INFO;
763
764
765typedef struct PVRSRV_CURSOR_SHAPE_TAG
766{
767 IMG_UINT16 ui16Width;
768 IMG_UINT16 ui16Height;
769 IMG_INT16 i16XHot;
770 IMG_INT16 i16YHot;
771
772
773 IMG_VOID* pvMask;
774 IMG_INT16 i16MaskByteStride;
775
776
777 IMG_VOID* pvColour;
778 IMG_INT16 i16ColourByteStride;
779 PVRSRV_PIXEL_FORMAT eColourPixelFormat;
780} PVRSRV_CURSOR_SHAPE;
781
782#define PVRSRV_SET_CURSOR_VISIBILITY (1<<0)
783#define PVRSRV_SET_CURSOR_POSITION (1<<1)
784#define PVRSRV_SET_CURSOR_SHAPE (1<<2)
785#define PVRSRV_SET_CURSOR_ROTATION (1<<3)
786
787typedef struct PVRSRV_CURSOR_INFO_TAG
788{
789
790 IMG_UINT32 ui32Flags;
791
792
793 IMG_BOOL bVisible;
794
795
796 IMG_INT16 i16XPos;
797 IMG_INT16 i16YPos;
798
799
800 PVRSRV_CURSOR_SHAPE sCursorShape;
801
802
803 IMG_UINT32 ui32Rotation;
804
805} PVRSRV_CURSOR_INFO;
806
807
808typedef struct _PVRSRV_REGISTRY_INFO_
809{
810 IMG_UINT32 ui32DevCookie;
811 IMG_PCHAR pszKey;
812 IMG_PCHAR pszValue;
813 IMG_PCHAR pszBuf;
814 IMG_UINT32 ui32BufSize;
815} PVRSRV_REGISTRY_INFO, *PPVRSRV_REGISTRY_INFO;
816
817
818PVRSRV_ERROR IMG_CALLCONV PVRSRVReadRegistryString (PPVRSRV_REGISTRY_INFO psRegInfo);
819PVRSRV_ERROR IMG_CALLCONV PVRSRVWriteRegistryString (PPVRSRV_REGISTRY_INFO psRegInfo);
820
821
822#define PVRSRV_BC_FLAGS_YUVCSC_CONFORMANT_RANGE (0 << 0)
823#define PVRSRV_BC_FLAGS_YUVCSC_FULL_RANGE (1 << 0)
824
825#define PVRSRV_BC_FLAGS_YUVCSC_BT601 (0 << 1)
826#define PVRSRV_BC_FLAGS_YUVCSC_BT709 (1 << 1)
827
828#define MAX_BUFFER_DEVICE_NAME_SIZE (50)
829
830typedef struct BUFFER_INFO_TAG
831{
832 IMG_UINT32 ui32BufferCount;
833 IMG_UINT32 ui32BufferDeviceID;
834 PVRSRV_PIXEL_FORMAT pixelformat;
835 IMG_UINT32 ui32ByteStride;
836 IMG_UINT32 ui32Width;
837 IMG_UINT32 ui32Height;
838 IMG_UINT32 ui32Flags;
839 IMG_CHAR szDeviceName[MAX_BUFFER_DEVICE_NAME_SIZE];
840} BUFFER_INFO;
841
842typedef enum _OVERLAY_DEINTERLACE_MODE_
843{
844 WEAVE=0x0,
845 BOB_ODD,
846 BOB_EVEN,
847 BOB_EVEN_NONINTERLEAVED
848} OVERLAY_DEINTERLACE_MODE;
849
850#endif