staging: emgd: experimental build 2667
[profile/ivi/intel-emgd-kmod.git] / pvr / include4 / servicesext.h
1 /**********************************************************************
2  Copyright (c) Imagination Technologies Ltd.
3
4  Permission is hereby granted, free of charge, to any person obtaining a copy
5  of this software and associated documentation files (the "Software"), to deal
6  in the Software without restriction, including without limitation the rights
7  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8  copies of the Software, and to permit persons to whom the Software is
9  furnished to do so, subject to the following conditions:
10
11  The above copyright notice and this permission notice shall be included in
12  all copies or substantial portions of the Software.
13
14  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20  THE SOFTWARE.
21  ******************************************************************************/
22
23 #if !defined (__SERVICESEXT_H__)
24 #define __SERVICESEXT_H__
25
26 #define PVRSRV_LOCKFLG_READONLY         (1)
27
28 typedef enum _PVRSRV_ERROR_
29 {
30         PVRSRV_OK                                                               =  0,
31         PVRSRV_ERROR_GENERIC                                    =  1,
32         PVRSRV_ERROR_OUT_OF_MEMORY                              =  2,
33         PVRSRV_ERROR_TOO_FEW_BUFFERS                    =  3,
34         PVRSRV_ERROR_SYMBOL_NOT_FOUND                   =  4,
35         PVRSRV_ERROR_OUT_OF_HSPACE                              =  5,
36         PVRSRV_ERROR_INVALID_PARAMS                             =  6,
37         PVRSRV_ERROR_TILE_MAP_FAILED                    =  7,
38         PVRSRV_ERROR_INIT_FAILURE                               =  8,
39         PVRSRV_ERROR_CANT_REGISTER_CALLBACK     =  9,
40         PVRSRV_ERROR_INVALID_DEVICE                             = 10,
41         PVRSRV_ERROR_NOT_OWNER                                  = 11,
42         PVRSRV_ERROR_BAD_MAPPING                                = 12,
43         PVRSRV_ERROR_TIMEOUT                                    = 13,
44         PVRSRV_ERROR_NO_PRIMARY                                 = 14,
45         PVRSRV_ERROR_FLIP_CHAIN_EXISTS                  = 15,
46         PVRSRV_ERROR_CANNOT_ACQUIRE_SYSDATA     = 16,
47         PVRSRV_ERROR_SCENE_INVALID                              = 17,
48         PVRSRV_ERROR_STREAM_ERROR                               = 18,
49         PVRSRV_ERROR_INVALID_INTERRUPT          = 19,
50         PVRSRV_ERROR_FAILED_DEPENDENCIES                = 20,
51         PVRSRV_ERROR_CMD_NOT_PROCESSED                  = 21,
52         PVRSRV_ERROR_CMD_TOO_BIG                                = 22,
53         PVRSRV_ERROR_DEVICE_REGISTER_FAILED     = 23,
54         PVRSRV_ERROR_FIFO_SPACE                                 = 24,
55         PVRSRV_ERROR_TA_RECOVERY                                = 25,
56         PVRSRV_ERROR_INDOSORLOWPOWER                    = 26,
57         PVRSRV_ERROR_TOOMANYBUFFERS                             = 27,
58         PVRSRV_ERROR_NOT_SUPPORTED                              = 28,
59         PVRSRV_ERROR_PROCESSING_BLOCKED                 = 29,
60
61
62         PVRSRV_ERROR_CANNOT_FLUSH_QUEUE                 = 31,
63         PVRSRV_ERROR_CANNOT_GET_QUEUE_SPACE             = 32,
64         PVRSRV_ERROR_CANNOT_GET_RENDERDETAILS   = 33,
65         PVRSRV_ERROR_RETRY                                              = 34,
66
67         PVRSRV_ERROR_DDK_VERSION_MISMATCH               = 35,
68         PVRSRV_ERROR_BUILD_MISMATCH                             = 36,
69         PVRSRV_ERROR_PDUMP_BUF_OVERFLOW,
70
71         PVRSRV_ERROR_FORCE_I32 = 0x7fffffff
72
73 } PVRSRV_ERROR;
74
75
76 typedef enum _PVRSRV_DEVICE_CLASS_
77 {
78         PVRSRV_DEVICE_CLASS_3D                          = 0 ,
79         PVRSRV_DEVICE_CLASS_DISPLAY                     = 1 ,
80         PVRSRV_DEVICE_CLASS_BUFFER                      = 2 ,
81         PVRSRV_DEVICE_CLASS_VIDEO                       = 3 ,
82
83         PVRSRV_DEVICE_CLASS_FORCE_I32           = 0x7fffffff
84
85 } PVRSRV_DEVICE_CLASS;
86
87
88
89 typedef enum _PVRSRV_SYS_POWER_STATE_
90 {
91         PVRSRV_SYS_POWER_STATE_Unspecified              = -1,
92         PVRSRV_SYS_POWER_STATE_D0                               = 0,
93         PVRSRV_SYS_POWER_STATE_D1                               = 1,
94         PVRSRV_SYS_POWER_STATE_D2                               = 2,
95         PVRSRV_SYS_POWER_STATE_D3                               = 3,
96         PVRSRV_SYS_POWER_STATE_D4                               = 4,
97
98         PVRSRV_SYS_POWER_STATE_FORCE_I32 = 0x7fffffff
99
100 } PVRSRV_SYS_POWER_STATE, *PPVRSRV_SYS_POWER_STATE;
101
102
103 typedef enum _PVRSRV_DEV_POWER_STATE_
104 {
105         PVRSRV_DEV_POWER_STATE_DEFAULT  = -1,
106         PVRSRV_DEV_POWER_STATE_ON               = 0,
107         PVRSRV_DEV_POWER_STATE_IDLE             = 1,
108         PVRSRV_DEV_POWER_STATE_OFF              = 2,
109
110         PVRSRV_DEV_POWER_STATE_FORCE_I32 = 0x7fffffff
111
112 } PVRSRV_DEV_POWER_STATE, *PPVRSRV_DEV_POWER_STATE;
113
114
115 typedef PVRSRV_ERROR (*PFN_PRE_POWER) (IMG_HANDLE                               hDevHandle,
116                                                                            PVRSRV_DEV_POWER_STATE       eNewPowerState,
117                                                                            PVRSRV_DEV_POWER_STATE       eCurrentPowerState);
118 typedef PVRSRV_ERROR (*PFN_POST_POWER) (IMG_HANDLE                              hDevHandle,
119                                                                                 PVRSRV_DEV_POWER_STATE  eNewPowerState,
120                                                                                 PVRSRV_DEV_POWER_STATE  eCurrentPowerState);
121
122 typedef PVRSRV_ERROR (*PFN_PRE_CLOCKSPEED_CHANGE) (IMG_HANDLE                           hDevHandle,
123                                                                                                    IMG_BOOL                                     bIdleDevice,
124                                                                                                    PVRSRV_DEV_POWER_STATE       eCurrentPowerState);
125 typedef PVRSRV_ERROR (*PFN_POST_CLOCKSPEED_CHANGE) (IMG_HANDLE                          hDevHandle,
126                                                                                                         IMG_BOOL                                bIdleDevice,
127                                                                                                         PVRSRV_DEV_POWER_STATE  eCurrentPowerState);
128
129
130 typedef enum _PVRSRV_PIXEL_FORMAT_ {
131
132         PVRSRV_PIXEL_FORMAT_UNKNOWN                     =  0,
133         PVRSRV_PIXEL_FORMAT_RGB565                      =  1,
134         PVRSRV_PIXEL_FORMAT_RGB555                      =  2,
135         PVRSRV_PIXEL_FORMAT_RGB888                      =  3,
136         PVRSRV_PIXEL_FORMAT_BGR888                      =  4,
137         PVRSRV_PIXEL_FORMAT_GREY_SCALE          =  8,
138         PVRSRV_PIXEL_FORMAT_PAL12                       = 13,
139         PVRSRV_PIXEL_FORMAT_PAL8                        = 14,
140         PVRSRV_PIXEL_FORMAT_PAL4                        = 15,
141         PVRSRV_PIXEL_FORMAT_PAL2                        = 16,
142         PVRSRV_PIXEL_FORMAT_PAL1                        = 17,
143         PVRSRV_PIXEL_FORMAT_ARGB1555            = 18,
144         PVRSRV_PIXEL_FORMAT_ARGB4444            = 19,
145         PVRSRV_PIXEL_FORMAT_ARGB8888            = 20,
146         PVRSRV_PIXEL_FORMAT_ABGR8888            = 21,
147         PVRSRV_PIXEL_FORMAT_YV12                        = 22,
148         PVRSRV_PIXEL_FORMAT_I420                        = 23,
149     PVRSRV_PIXEL_FORMAT_IMC2            = 25,
150         PVRSRV_PIXEL_FORMAT_XRGB8888        = 26,
151         PVRSRV_PIXEL_FORMAT_XBGR8888,
152         PVRSRV_PIXEL_FORMAT_BGRA8888,
153         PVRSRV_PIXEL_FORMAT_XRGB4444,
154         PVRSRV_PIXEL_FORMAT_ARGB8332,
155         PVRSRV_PIXEL_FORMAT_A2RGB10,
156         PVRSRV_PIXEL_FORMAT_A2BGR10,
157         PVRSRV_PIXEL_FORMAT_P8,
158         PVRSRV_PIXEL_FORMAT_L8,
159         PVRSRV_PIXEL_FORMAT_A8L8,
160         PVRSRV_PIXEL_FORMAT_A4L4,
161         PVRSRV_PIXEL_FORMAT_L16,
162         PVRSRV_PIXEL_FORMAT_L6V5U5,
163         PVRSRV_PIXEL_FORMAT_V8U8,
164         PVRSRV_PIXEL_FORMAT_V16U16,
165         PVRSRV_PIXEL_FORMAT_QWVU8888,
166         PVRSRV_PIXEL_FORMAT_XLVU8888,
167         PVRSRV_PIXEL_FORMAT_QWVU16,
168         PVRSRV_PIXEL_FORMAT_D16,
169         PVRSRV_PIXEL_FORMAT_D24S8,
170         PVRSRV_PIXEL_FORMAT_D24X8,
171
172
173         PVRSRV_PIXEL_FORMAT_ABGR16,
174         PVRSRV_PIXEL_FORMAT_ABGR16F,
175         PVRSRV_PIXEL_FORMAT_ABGR32,
176         PVRSRV_PIXEL_FORMAT_ABGR32F,
177         PVRSRV_PIXEL_FORMAT_B10GR11,
178         PVRSRV_PIXEL_FORMAT_GR88,
179         PVRSRV_PIXEL_FORMAT_BGR32,
180         PVRSRV_PIXEL_FORMAT_GR32,
181         PVRSRV_PIXEL_FORMAT_E5BGR9,
182
183
184         PVRSRV_PIXEL_FORMAT_DUMMY1,
185         PVRSRV_PIXEL_FORMAT_DUMMY2,
186         PVRSRV_PIXEL_FORMAT_DUMMY3,
187         PVRSRV_PIXEL_FORMAT_DUMMY4,
188         PVRSRV_PIXEL_FORMAT_DUMMY5,
189
190
191         PVRSRV_PIXEL_FORMAT_R8G8_B8G8,
192         PVRSRV_PIXEL_FORMAT_G8R8_G8B8,
193
194
195         PVRSRV_PIXEL_FORMAT_NV11,
196         PVRSRV_PIXEL_FORMAT_NV12,
197
198
199         PVRSRV_PIXEL_FORMAT_YUY2,
200         PVRSRV_PIXEL_FORMAT_YUV420,
201         PVRSRV_PIXEL_FORMAT_YUV444,
202         PVRSRV_PIXEL_FORMAT_VUY444,
203         PVRSRV_PIXEL_FORMAT_YUYV,
204         PVRSRV_PIXEL_FORMAT_YVYU,
205         PVRSRV_PIXEL_FORMAT_UYVY,
206         PVRSRV_PIXEL_FORMAT_VYUY,
207
208         PVRSRV_PIXEL_FORMAT_FOURCC_ORG_UYVY,
209         PVRSRV_PIXEL_FORMAT_FOURCC_ORG_YUYV,
210         PVRSRV_PIXEL_FORMAT_FOURCC_ORG_YVYU,
211         PVRSRV_PIXEL_FORMAT_FOURCC_ORG_VYUY,
212         PVRSRV_PIXEL_FORMAT_FOURCC_ORG_AYUV,
213
214
215         PVRSRV_PIXEL_FORMAT_A32B32G32R32,
216         PVRSRV_PIXEL_FORMAT_A32B32G32R32F,
217         PVRSRV_PIXEL_FORMAT_A32B32G32R32_UINT,
218         PVRSRV_PIXEL_FORMAT_A32B32G32R32_SINT,
219
220
221         PVRSRV_PIXEL_FORMAT_B32G32R32,
222         PVRSRV_PIXEL_FORMAT_B32G32R32F,
223         PVRSRV_PIXEL_FORMAT_B32G32R32_UINT,
224         PVRSRV_PIXEL_FORMAT_B32G32R32_SINT,
225
226
227         PVRSRV_PIXEL_FORMAT_G32R32,
228         PVRSRV_PIXEL_FORMAT_G32R32F,
229         PVRSRV_PIXEL_FORMAT_G32R32_UINT,
230         PVRSRV_PIXEL_FORMAT_G32R32_SINT,
231
232
233         PVRSRV_PIXEL_FORMAT_D32F,
234         PVRSRV_PIXEL_FORMAT_R32,
235         PVRSRV_PIXEL_FORMAT_R32F,
236         PVRSRV_PIXEL_FORMAT_R32_UINT,
237         PVRSRV_PIXEL_FORMAT_R32_SINT,
238
239
240         PVRSRV_PIXEL_FORMAT_A16B16G16R16,
241         PVRSRV_PIXEL_FORMAT_A16B16G16R16F,
242         PVRSRV_PIXEL_FORMAT_A16B16G16R16_SINT,
243         PVRSRV_PIXEL_FORMAT_A16B16G16R16_SNORM,
244         PVRSRV_PIXEL_FORMAT_A16B16G16R16_UINT,
245         PVRSRV_PIXEL_FORMAT_A16B16G16R16_UNORM,
246
247
248         PVRSRV_PIXEL_FORMAT_G16R16,
249         PVRSRV_PIXEL_FORMAT_G16R16F,
250         PVRSRV_PIXEL_FORMAT_G16R16_UINT,
251         PVRSRV_PIXEL_FORMAT_G16R16_UNORM,
252         PVRSRV_PIXEL_FORMAT_G16R16_SINT,
253         PVRSRV_PIXEL_FORMAT_G16R16_SNORM,
254
255
256         PVRSRV_PIXEL_FORMAT_R16,
257         PVRSRV_PIXEL_FORMAT_R16F,
258         PVRSRV_PIXEL_FORMAT_R16_UINT,
259         PVRSRV_PIXEL_FORMAT_R16_UNORM,
260         PVRSRV_PIXEL_FORMAT_R16_SINT,
261         PVRSRV_PIXEL_FORMAT_R16_SNORM,
262
263
264         PVRSRV_PIXEL_FORMAT_X8R8G8B8,
265         PVRSRV_PIXEL_FORMAT_X8R8G8B8_UNORM,
266         PVRSRV_PIXEL_FORMAT_X8R8G8B8_UNORM_SRGB,
267
268         PVRSRV_PIXEL_FORMAT_A8R8G8B8,
269         PVRSRV_PIXEL_FORMAT_A8R8G8B8_UNORM,
270         PVRSRV_PIXEL_FORMAT_A8R8G8B8_UNORM_SRGB,
271
272         PVRSRV_PIXEL_FORMAT_A8B8G8R8,
273         PVRSRV_PIXEL_FORMAT_A8B8G8R8_UINT,
274         PVRSRV_PIXEL_FORMAT_A8B8G8R8_UNORM,
275         PVRSRV_PIXEL_FORMAT_A8B8G8R8_UNORM_SRGB,
276         PVRSRV_PIXEL_FORMAT_A8B8G8R8_SINT,
277         PVRSRV_PIXEL_FORMAT_A8B8G8R8_SNORM,
278
279
280         PVRSRV_PIXEL_FORMAT_G8R8,
281         PVRSRV_PIXEL_FORMAT_G8R8_UINT,
282         PVRSRV_PIXEL_FORMAT_G8R8_UNORM,
283         PVRSRV_PIXEL_FORMAT_G8R8_SINT,
284         PVRSRV_PIXEL_FORMAT_G8R8_SNORM,
285
286
287         PVRSRV_PIXEL_FORMAT_A8,
288         PVRSRV_PIXEL_FORMAT_R8,
289         PVRSRV_PIXEL_FORMAT_R8_UINT,
290         PVRSRV_PIXEL_FORMAT_R8_UNORM,
291         PVRSRV_PIXEL_FORMAT_R8_SINT,
292         PVRSRV_PIXEL_FORMAT_R8_SNORM,
293
294
295         PVRSRV_PIXEL_FORMAT_A2B10G10R10,
296         PVRSRV_PIXEL_FORMAT_A2B10G10R10_UNORM,
297         PVRSRV_PIXEL_FORMAT_A2B10G10R10_UINT,
298
299
300         PVRSRV_PIXEL_FORMAT_B10G11R11,
301         PVRSRV_PIXEL_FORMAT_B10G11R11F,
302
303
304         PVRSRV_PIXEL_FORMAT_X24G8R32,
305         PVRSRV_PIXEL_FORMAT_G8R24,
306         PVRSRV_PIXEL_FORMAT_X8R24,
307         PVRSRV_PIXEL_FORMAT_E5B9G9R9,
308         PVRSRV_PIXEL_FORMAT_R1,
309
310         PVRSRV_PIXEL_FORMAT_DUMMY6,
311         PVRSRV_PIXEL_FORMAT_DUMMY7,
312         PVRSRV_PIXEL_FORMAT_DUMMY8,
313         PVRSRV_PIXEL_FORMAT_DUMMY9,
314         PVRSRV_PIXEL_FORMAT_DUMMY10,
315         PVRSRV_PIXEL_FORMAT_DUMMY11,
316         PVRSRV_PIXEL_FORMAT_DUMMY12,
317         PVRSRV_PIXEL_FORMAT_DUMMY13,
318         PVRSRV_PIXEL_FORMAT_DUMMY14,
319         PVRSRV_PIXEL_FORMAT_DUMMY15,
320         PVRSRV_PIXEL_FORMAT_DUMMY16,
321         PVRSRV_PIXEL_FORMAT_DUMMY17,
322         PVRSRV_PIXEL_FORMAT_DUMMY18,
323         PVRSRV_PIXEL_FORMAT_DUMMY19,
324         PVRSRV_PIXEL_FORMAT_DUMMY20,
325
326
327         PVRSRV_PIXEL_FORMAT_L_F16,
328         PVRSRV_PIXEL_FORMAT_L_F16_REP,
329         PVRSRV_PIXEL_FORMAT_L_F16_A_F16,
330         PVRSRV_PIXEL_FORMAT_A_F16,
331         PVRSRV_PIXEL_FORMAT_B16G16R16F,
332
333         PVRSRV_PIXEL_FORMAT_L_F32,
334         PVRSRV_PIXEL_FORMAT_A_F32,
335         PVRSRV_PIXEL_FORMAT_L_F32_A_F32,
336
337
338         PVRSRV_PIXEL_FORMAT_PVRTC2,
339         PVRSRV_PIXEL_FORMAT_PVRTC4,
340         PVRSRV_PIXEL_FORMAT_PVRTCII2,
341         PVRSRV_PIXEL_FORMAT_PVRTCII4,
342         PVRSRV_PIXEL_FORMAT_PVRTCIII,
343         PVRSRV_PIXEL_FORMAT_PVRO8,
344         PVRSRV_PIXEL_FORMAT_PVRO88,
345         PVRSRV_PIXEL_FORMAT_PT1,
346         PVRSRV_PIXEL_FORMAT_PT2,
347         PVRSRV_PIXEL_FORMAT_PT4,
348         PVRSRV_PIXEL_FORMAT_PT8,
349         PVRSRV_PIXEL_FORMAT_PTW,
350         PVRSRV_PIXEL_FORMAT_PTB,
351         PVRSRV_PIXEL_FORMAT_MONO8,
352         PVRSRV_PIXEL_FORMAT_MONO16,
353
354
355         PVRSRV_PIXEL_FORMAT_C0_YUYV,
356         PVRSRV_PIXEL_FORMAT_C0_UYVY,
357         PVRSRV_PIXEL_FORMAT_C0_YVYU,
358         PVRSRV_PIXEL_FORMAT_C0_VYUY,
359         PVRSRV_PIXEL_FORMAT_C1_YUYV,
360         PVRSRV_PIXEL_FORMAT_C1_UYVY,
361         PVRSRV_PIXEL_FORMAT_C1_YVYU,
362         PVRSRV_PIXEL_FORMAT_C1_VYUY,
363
364
365         PVRSRV_PIXEL_FORMAT_C0_YUV420_2P_UV,
366         PVRSRV_PIXEL_FORMAT_C0_YUV420_2P_VU,
367         PVRSRV_PIXEL_FORMAT_C0_YUV420_3P,
368         PVRSRV_PIXEL_FORMAT_C1_YUV420_2P_UV,
369         PVRSRV_PIXEL_FORMAT_C1_YUV420_2P_VU,
370         PVRSRV_PIXEL_FORMAT_C1_YUV420_3P,
371
372         PVRSRV_PIXEL_FORMAT_A2B10G10R10F,
373         PVRSRV_PIXEL_FORMAT_B8G8R8_SINT,
374         PVRSRV_PIXEL_FORMAT_PVRF32SIGNMASK,
375
376         PVRSRV_PIXEL_FORMAT_FORCE_I32 = 0x7fffffff,
377 } PVRSRV_PIXEL_FORMAT;
378
379 typedef enum _PVRSRV_ALPHA_FORMAT_ {
380         PVRSRV_ALPHA_FORMAT_UNKNOWN             =  0x00000000,
381         PVRSRV_ALPHA_FORMAT_PRE                 =  0x00000001,
382         PVRSRV_ALPHA_FORMAT_NONPRE              =  0x00000002,
383         PVRSRV_ALPHA_FORMAT_MASK                =  0x0000000F,
384 } PVRSRV_ALPHA_FORMAT;
385
386 typedef enum _PVRSRV_COLOURSPACE_FORMAT_ {
387         PVRSRV_COLOURSPACE_FORMAT_UNKNOWN               =  0x00000000,
388         PVRSRV_COLOURSPACE_FORMAT_LINEAR                =  0x00010000,
389         PVRSRV_COLOURSPACE_FORMAT_NONLINEAR             =  0x00020000,
390         PVRSRV_COLOURSPACE_FORMAT_MASK                  =  0x000F0000,
391 } PVRSRV_COLOURSPACE_FORMAT;
392
393
394 typedef enum _PVRSRV_ROTATION_ {
395         PVRSRV_ROTATE_0         =       0,
396         PVRSRV_ROTATE_90        =       1,
397         PVRSRV_ROTATE_180       =       2,
398         PVRSRV_ROTATE_270       =       3,
399         PVRSRV_FLIP_Y
400
401 } PVRSRV_ROTATION;
402
403 #define PVRSRV_CREATE_SWAPCHAIN_SHARED          (1<<0)
404 #define PVRSRV_CREATE_SWAPCHAIN_QUERY           (1<<1)
405 #define PVRSRV_CREATE_SWAPCHAIN_OEMOVERLAY      (1<<2)
406
407 typedef struct _PVRSRV_SYNC_DATA_
408 {
409
410         IMG_UINT32                                      ui32WriteOpsPending;
411         volatile IMG_UINT32                     ui32WriteOpsComplete;
412
413
414         IMG_UINT32                                      ui32ReadOpsPending;
415         volatile IMG_UINT32                     ui32ReadOpsComplete;
416
417
418         IMG_UINT32                                      ui32LastOpDumpVal;
419         IMG_UINT32                                      ui32LastReadOpDumpVal;
420
421 } PVRSRV_SYNC_DATA;
422
423 typedef struct _PVRSRV_CLIENT_SYNC_INFO_
424 {
425
426         PVRSRV_SYNC_DATA                        *psSyncData;
427
428
429
430
431
432         IMG_DEV_VIRTADDR                sWriteOpsCompleteDevVAddr;
433
434
435         IMG_DEV_VIRTADDR                sReadOpsCompleteDevVAddr;
436
437
438         IMG_HANDLE                                      hMappingInfo;
439
440
441         IMG_HANDLE                                      hKernelSyncInfo;
442
443 } PVRSRV_CLIENT_SYNC_INFO, *PPVRSRV_CLIENT_SYNC_INFO;
444
445
446 typedef struct PVRSRV_RESOURCE_TAG
447 {
448         volatile IMG_UINT32 ui32Lock;
449         IMG_UINT32                      ui32ID;
450 }PVRSRV_RESOURCE;
451 typedef PVRSRV_RESOURCE PVRSRV_RES_HANDLE;
452
453
454 typedef IMG_VOID (*PFN_CMD_COMPLETE) (IMG_HANDLE);
455 typedef IMG_VOID (**PPFN_CMD_COMPLETE) (IMG_HANDLE);
456
457 typedef IMG_BOOL (*PFN_CMD_PROC) (IMG_HANDLE, IMG_UINT32, IMG_VOID*);
458 typedef IMG_BOOL (**PPFN_CMD_PROC) (IMG_HANDLE, IMG_UINT32, IMG_VOID*);
459
460
461 typedef struct _IMG_RECT_
462 {
463         IMG_INT32       x0;
464         IMG_INT32       y0;
465         IMG_INT32       x1;
466         IMG_INT32       y1;
467 }IMG_RECT;
468
469 typedef struct _IMG_RECT_16_
470 {
471         IMG_INT16       x0;
472         IMG_INT16       y0;
473         IMG_INT16       x1;
474         IMG_INT16       y1;
475 }IMG_RECT_16;
476
477
478 typedef PVRSRV_ERROR (*PFN_GET_BUFFER_ADDR)(IMG_HANDLE,
479                                                                                         IMG_HANDLE,
480                                                                                         IMG_SYS_PHYADDR**,
481                                                                                         IMG_SIZE_T*,
482                                                                                         IMG_VOID**,
483                                                                                         IMG_HANDLE*,
484                                                                                         IMG_BOOL*,
485                                                                                         IMG_BOOL*);
486
487 typedef PVRSRV_ERROR (*PFN_GET_BUFFER_ID_FROM_TAG)(IMG_HANDLE, IMG_UINT32, IMG_HANDLE);
488
489 typedef struct DISPLAY_DIMS_TAG
490 {
491         IMG_UINT32      ui32ByteStride;
492         IMG_UINT32      ui32Width;
493         IMG_UINT32      ui32Height;
494 } DISPLAY_DIMS;
495
496
497 typedef struct DISPLAY_FORMAT_TAG
498 {
499
500         PVRSRV_PIXEL_FORMAT             pixelformat;
501 } DISPLAY_FORMAT;
502
503 typedef struct DISPLAY_SURF_ATTRIBUTES_TAG
504 {
505
506         PVRSRV_PIXEL_FORMAT             pixelformat;
507
508         DISPLAY_DIMS                    sDims;
509         IMG_UINT32                      ui32Reseved;
510 } DISPLAY_SURF_ATTRIBUTES;
511
512
513 typedef struct DISPLAY_MODE_INFO_TAG
514 {
515
516         PVRSRV_PIXEL_FORMAT             pixelformat;
517
518         DISPLAY_DIMS                    sDims;
519
520         IMG_UINT32                              ui32RefreshHZ;
521
522         IMG_UINT32                              ui32OEMFlags;
523 } DISPLAY_MODE_INFO;
524
525
526
527 #define MAX_DISPLAY_NAME_SIZE   (50)
528
529 typedef struct DISPLAY_INFO_TAG
530 {
531
532         IMG_UINT32 ui32MaxSwapChains;
533
534         IMG_UINT32 ui32MaxSwapChainBuffers;
535
536         IMG_UINT32 ui32MinSwapInterval;
537
538         IMG_UINT32 ui32MaxSwapInterval;
539
540         IMG_UINT32 ui32PhysicalWidthmm;
541         IMG_UINT32 ui32PhysicalHeightmm;
542
543         IMG_CHAR        szDisplayName[MAX_DISPLAY_NAME_SIZE];
544 #if defined(SUPPORT_HW_CURSOR)
545
546         IMG_UINT16      ui32CursorWidth;
547         IMG_UINT16      ui32CursorHeight;
548 #endif
549 } DISPLAY_INFO;
550
551 typedef struct ACCESS_INFO_TAG
552 {
553         IMG_UINT32              ui32Size;
554         IMG_UINT32      ui32FBPhysBaseAddress;
555         IMG_UINT32              ui32FBMemAvailable;
556         IMG_UINT32      ui32SysPhysBaseAddress;
557         IMG_UINT32              ui32SysSize;
558         IMG_UINT32              ui32DevIRQ;
559 }ACCESS_INFO;
560
561
562 typedef struct PVRSRV_CURSOR_SHAPE_TAG
563 {
564         IMG_UINT16                      ui16Width;
565         IMG_UINT16                      ui16Height;
566         IMG_INT16                       i16XHot;
567         IMG_INT16                       i16YHot;
568
569
570         IMG_VOID*               pvMask;
571         IMG_INT16                       i16MaskByteStride;
572
573
574         IMG_VOID*                       pvColour;
575         IMG_INT16                       i16ColourByteStride;
576         PVRSRV_PIXEL_FORMAT     eColourPixelFormat;
577 } PVRSRV_CURSOR_SHAPE;
578
579 #define PVRSRV_SET_CURSOR_VISIBILITY    (1<<0)
580 #define PVRSRV_SET_CURSOR_POSITION              (1<<1)
581 #define PVRSRV_SET_CURSOR_SHAPE                 (1<<2)
582 #define PVRSRV_SET_CURSOR_ROTATION              (1<<3)
583
584 typedef struct PVRSRV_CURSOR_INFO_TAG
585 {
586
587         IMG_UINT32 ui32Flags;
588
589
590         IMG_BOOL bVisible;
591
592
593         IMG_INT16 i16XPos;
594         IMG_INT16 i16YPos;
595
596
597         PVRSRV_CURSOR_SHAPE sCursorShape;
598
599
600         IMG_UINT32 ui32Rotation;
601
602 } PVRSRV_CURSOR_INFO;
603
604
605 typedef struct _PVRSRV_REGISTRY_INFO_
606 {
607     IMG_UINT32          ui32DevCookie;
608     IMG_PCHAR           pszKey;
609     IMG_PCHAR           pszValue;
610     IMG_PCHAR           pszBuf;
611     IMG_UINT32          ui32BufSize;
612 } PVRSRV_REGISTRY_INFO, *PPVRSRV_REGISTRY_INFO;
613
614
615 PVRSRV_ERROR IMG_CALLCONV PVRSRVReadRegistryString (PPVRSRV_REGISTRY_INFO psRegInfo);
616 PVRSRV_ERROR IMG_CALLCONV PVRSRVWriteRegistryString (PPVRSRV_REGISTRY_INFO psRegInfo);
617
618
619 #define PVRSRV_BC_FLAGS_YUVCSC_CONFORMANT_RANGE (0 << 0)
620 #define PVRSRV_BC_FLAGS_YUVCSC_FULL_RANGE               (1 << 0)
621
622 #define PVRSRV_BC_FLAGS_YUVCSC_BT601                    (0 << 1)
623 #define PVRSRV_BC_FLAGS_YUVCSC_BT709                    (1 << 1)
624
625 #define MAX_BUFFER_DEVICE_NAME_SIZE     (50)
626
627 typedef struct BUFFER_INFO_TAG
628 {
629         IMG_UINT32                      ui32BufferCount;
630         IMG_UINT32                      ui32BufferDeviceID;
631         PVRSRV_PIXEL_FORMAT     pixelformat;
632         IMG_UINT32                      ui32ByteStride;
633         IMG_UINT32                      ui32Width;
634         IMG_UINT32                      ui32Height;
635         IMG_UINT32                      ui32Flags;
636         IMG_CHAR                        szDeviceName[MAX_BUFFER_DEVICE_NAME_SIZE];
637 } BUFFER_INFO;
638
639 typedef enum _OVERLAY_DEINTERLACE_MODE_
640 {
641         WEAVE=0x0,
642         BOB_ODD,
643         BOB_EVEN,
644         BOB_EVEN_NONINTERLEAVED
645 } OVERLAY_DEINTERLACE_MODE;
646
647 #endif