packaging: update the changelog
[profile/ivi/intel-emgd-kmod.git] / pvr / services4 / include / pvr_bridge.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 #ifndef __PVR_BRIDGE_H__
24 #define __PVR_BRIDGE_H__
25
26 #if defined (__cplusplus)
27 extern "C" {
28 #endif
29
30 #include "servicesint.h"
31
32 #ifdef __linux__
33
34                 #include <linux/ioctl.h>
35
36     #define PVRSRV_IOC_GID      'g'
37     #define PVRSRV_IO(INDEX)    _IO(PVRSRV_IOC_GID, INDEX, PVRSRV_BRIDGE_PACKAGE)
38     #define PVRSRV_IOW(INDEX)   _IOW(PVRSRV_IOC_GID, INDEX, PVRSRV_BRIDGE_PACKAGE)
39     #define PVRSRV_IOR(INDEX)   _IOR(PVRSRV_IOC_GID, INDEX, PVRSRV_BRIDGE_PACKAGE)
40     #define PVRSRV_IOWR(INDEX)  _IOWR(PVRSRV_IOC_GID, INDEX, PVRSRV_BRIDGE_PACKAGE)
41
42 #else
43
44                         #error Unknown platform: Cannot define ioctls
45
46         #define PVRSRV_IO(INDEX)    (PVRSRV_IOC_GID + INDEX)
47         #define PVRSRV_IOW(INDEX)   (PVRSRV_IOC_GID + INDEX)
48         #define PVRSRV_IOR(INDEX)   (PVRSRV_IOC_GID + INDEX)
49         #define PVRSRV_IOWR(INDEX)  (PVRSRV_IOC_GID + INDEX)
50
51         #define PVRSRV_BRIDGE_BASE                  PVRSRV_IOC_GID
52 #endif
53
54
55 #define PVRSRV_BRIDGE_CORE_CMD_FIRST                    0UL
56 #define PVRSRV_BRIDGE_ENUM_DEVICES                              PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+0)
57 #define PVRSRV_BRIDGE_ACQUIRE_DEVICEINFO                PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+1)
58 #define PVRSRV_BRIDGE_RELEASE_DEVICEINFO                PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+2)
59 #define PVRSRV_BRIDGE_CREATE_DEVMEMCONTEXT              PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+3)
60 #define PVRSRV_BRIDGE_DESTROY_DEVMEMCONTEXT             PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+4)
61 #define PVRSRV_BRIDGE_GET_DEVMEM_HEAPINFO               PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+5)
62 #define PVRSRV_BRIDGE_ALLOC_DEVICEMEM                   PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+6)
63 #define PVRSRV_BRIDGE_FREE_DEVICEMEM                    PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+7)
64 #define PVRSRV_BRIDGE_GETFREE_DEVICEMEM                 PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+8)
65 #define PVRSRV_BRIDGE_CREATE_COMMANDQUEUE               PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+9)
66 #define PVRSRV_BRIDGE_DESTROY_COMMANDQUEUE              PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+10)
67 #define PVRSRV_BRIDGE_MHANDLE_TO_MMAP_DATA           PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+11)
68 #define PVRSRV_BRIDGE_CONNECT_SERVICES                  PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+12)
69 #define PVRSRV_BRIDGE_DISCONNECT_SERVICES               PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+13)
70 #define PVRSRV_BRIDGE_WRAP_DEVICE_MEM                   PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+14)
71 #define PVRSRV_BRIDGE_GET_DEVICEMEMINFO                 PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+15)
72 #define PVRSRV_BRIDGE_RESERVE_DEV_VIRTMEM               PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+16)
73 #define PVRSRV_BRIDGE_FREE_DEV_VIRTMEM                  PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+17)
74 #define PVRSRV_BRIDGE_MAP_EXT_MEMORY                    PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+18)
75 #define PVRSRV_BRIDGE_UNMAP_EXT_MEMORY                  PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+19)
76 #define PVRSRV_BRIDGE_MAP_DEV_MEMORY                    PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+20)
77 #define PVRSRV_BRIDGE_UNMAP_DEV_MEMORY                  PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+21)
78 #define PVRSRV_BRIDGE_MAP_DEVICECLASS_MEMORY    PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+22)
79 #define PVRSRV_BRIDGE_UNMAP_DEVICECLASS_MEMORY  PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+23)
80 #define PVRSRV_BRIDGE_MAP_MEM_INFO_TO_USER              PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+24)
81 #define PVRSRV_BRIDGE_UNMAP_MEM_INFO_FROM_USER  PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+25)
82 #define PVRSRV_BRIDGE_EXPORT_DEVICEMEM                  PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+26)
83 #define PVRSRV_BRIDGE_RELEASE_MMAP_DATA                 PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+27)
84 #define PVRSRV_BRIDGE_CORE_CMD_LAST                             (PVRSRV_BRIDGE_CORE_CMD_FIRST+27)
85
86 #define PVRSRV_BRIDGE_SIM_CMD_FIRST                             (PVRSRV_BRIDGE_CORE_CMD_LAST+1)
87 #define PVRSRV_BRIDGE_PROCESS_SIMISR_EVENT              PVRSRV_IOWR(PVRSRV_BRIDGE_SIM_CMD_FIRST+0)
88 #define PVRSRV_BRIDGE_REGISTER_SIM_PROCESS              PVRSRV_IOWR(PVRSRV_BRIDGE_SIM_CMD_FIRST+1)
89 #define PVRSRV_BRIDGE_UNREGISTER_SIM_PROCESS    PVRSRV_IOWR(PVRSRV_BRIDGE_SIM_CMD_FIRST+2)
90 #define PVRSRV_BRIDGE_SIM_CMD_LAST                              (PVRSRV_BRIDGE_SIM_CMD_FIRST+2)
91
92 #define PVRSRV_BRIDGE_MAPPING_CMD_FIRST                 (PVRSRV_BRIDGE_SIM_CMD_LAST+1)
93 #define PVRSRV_BRIDGE_MAPPHYSTOUSERSPACE                PVRSRV_IOWR(PVRSRV_BRIDGE_MAPPING_CMD_FIRST+0)
94 #define PVRSRV_BRIDGE_UNMAPPHYSTOUSERSPACE              PVRSRV_IOWR(PVRSRV_BRIDGE_MAPPING_CMD_FIRST+1)
95 #define PVRSRV_BRIDGE_GETPHYSTOUSERSPACEMAP             PVRSRV_IOWR(PVRSRV_BRIDGE_MAPPING_CMD_FIRST+2)
96 #define PVRSRV_BRIDGE_MAPPING_CMD_LAST                  (PVRSRV_BRIDGE_MAPPING_CMD_FIRST+2)
97
98 #define PVRSRV_BRIDGE_STATS_CMD_FIRST                   (PVRSRV_BRIDGE_MAPPING_CMD_LAST+1)
99 #define PVRSRV_BRIDGE_GET_FB_STATS                              PVRSRV_IOWR(PVRSRV_BRIDGE_STATS_CMD_FIRST+0)
100 #define PVRSRV_BRIDGE_STATS_CMD_LAST                    (PVRSRV_BRIDGE_STATS_CMD_FIRST+0)
101
102 #define PVRSRV_BRIDGE_MISC_CMD_FIRST                    (PVRSRV_BRIDGE_STATS_CMD_LAST+1)
103 #define PVRSRV_BRIDGE_GET_MISC_INFO                             PVRSRV_IOWR(PVRSRV_BRIDGE_MISC_CMD_FIRST+0)
104 #define PVRSRV_BRIDGE_RELEASE_MISC_INFO                 PVRSRV_IOWR(PVRSRV_BRIDGE_MISC_CMD_FIRST+1)
105 #define PVRSRV_BRIDGE_MISC_CMD_LAST                             (PVRSRV_BRIDGE_MISC_CMD_FIRST+1)
106
107 #define PVRSRV_BRIDGE_OVERLAY_CMD_FIRST                 (PVRSRV_BRIDGE_MISC_CMD_LAST+1)
108 #if defined (SUPPORT_OVERLAY_ROTATE_BLIT)
109 #define PVRSRV_BRIDGE_INIT_3D_OVL_BLT_RES               PVRSRV_IOWR(PVRSRV_BRIDGE_OVERLAY_CMD_FIRST+0)
110 #define PVRSRV_BRIDGE_DEINIT_3D_OVL_BLT_RES             PVRSRV_IOWR(PVRSRV_BRIDGE_OVERLAY_CMD_FIRST+1)
111 #endif
112 #define PVRSRV_BRIDGE_OVERLAY_CMD_LAST                  (PVRSRV_BRIDGE_OVERLAY_CMD_FIRST+1)
113
114 #if defined(PDUMP)
115 #define PVRSRV_BRIDGE_PDUMP_CMD_FIRST                   (PVRSRV_BRIDGE_OVERLAY_CMD_FIRST+1)
116 #define PVRSRV_BRIDGE_PDUMP_INIT                        PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+0)
117 #define PVRSRV_BRIDGE_PDUMP_MEMPOL                      PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+1)
118 #define PVRSRV_BRIDGE_PDUMP_DUMPMEM                     PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+2)
119 #define PVRSRV_BRIDGE_PDUMP_REG                         PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+3)
120 #define PVRSRV_BRIDGE_PDUMP_REGPOL                      PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+4)
121 #define PVRSRV_BRIDGE_PDUMP_COMMENT                     PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+5)
122 #define PVRSRV_BRIDGE_PDUMP_SETFRAME                    PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+6)
123 #define PVRSRV_BRIDGE_PDUMP_ISCAPTURING                 PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+7)
124 #define PVRSRV_BRIDGE_PDUMP_DUMPBITMAP                  PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+8)
125 #define PVRSRV_BRIDGE_PDUMP_DUMPREADREG                 PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+9)
126 #define PVRSRV_BRIDGE_PDUMP_SYNCPOL                     PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+10)
127 #define PVRSRV_BRIDGE_PDUMP_DUMPSYNC                    PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+11)
128 #define PVRSRV_BRIDGE_PDUMP_MEMPAGES                    PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+12)
129 #define PVRSRV_BRIDGE_PDUMP_DRIVERINFO                  PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+13)
130 #define PVRSRV_BRIDGE_PDUMP_PDREG                       PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+14)
131 #define PVRSRV_BRIDGE_PDUMP_DUMPPDDEVPADDR              PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+15)
132 #define PVRSRV_BRIDGE_PDUMP_CYCLE_COUNT_REG_READ        PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+16)
133 #define PVRSRV_BRIDGE_PDUMP_STARTINITPHASE                      PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+17)
134 #define PVRSRV_BRIDGE_PDUMP_STOPINITPHASE                       PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+18)
135 #define PVRSRV_BRIDGE_PDUMP_CMD_LAST                    (PVRSRV_BRIDGE_PDUMP_CMD_FIRST+18)
136 #else
137 #define PVRSRV_BRIDGE_PDUMP_CMD_LAST                    PVRSRV_BRIDGE_OVERLAY_CMD_LAST
138 #endif
139
140 #define PVRSRV_BRIDGE_OEM_CMD_FIRST                             (PVRSRV_BRIDGE_PDUMP_CMD_LAST+1)
141 #define PVRSRV_BRIDGE_GET_OEMJTABLE                             PVRSRV_IOWR(PVRSRV_BRIDGE_OEM_CMD_FIRST+0)
142 #define PVRSRV_BRIDGE_OEM_CMD_LAST                              (PVRSRV_BRIDGE_OEM_CMD_FIRST+0)
143
144 #define PVRSRV_BRIDGE_DEVCLASS_CMD_FIRST                (PVRSRV_BRIDGE_OEM_CMD_LAST+1)
145 #define PVRSRV_BRIDGE_ENUM_CLASS                                PVRSRV_IOWR(PVRSRV_BRIDGE_DEVCLASS_CMD_FIRST+0)
146 #define PVRSRV_BRIDGE_DEVCLASS_CMD_LAST                 (PVRSRV_BRIDGE_DEVCLASS_CMD_FIRST+0)
147
148 #define PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST               (PVRSRV_BRIDGE_DEVCLASS_CMD_LAST+1)
149 #define PVRSRV_BRIDGE_OPEN_DISPCLASS_DEVICE             PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+0)
150 #define PVRSRV_BRIDGE_CLOSE_DISPCLASS_DEVICE    PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+1)
151 #define PVRSRV_BRIDGE_ENUM_DISPCLASS_FORMATS    PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+2)
152 #define PVRSRV_BRIDGE_ENUM_DISPCLASS_DIMS               PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+3)
153 #define PVRSRV_BRIDGE_GET_DISPCLASS_SYSBUFFER   PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+4)
154 #define PVRSRV_BRIDGE_GET_DISPCLASS_INFO                PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+5)
155 #define PVRSRV_BRIDGE_CREATE_DISPCLASS_SWAPCHAIN                PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+6)
156 #define PVRSRV_BRIDGE_DESTROY_DISPCLASS_SWAPCHAIN               PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+7)
157 #define PVRSRV_BRIDGE_SET_DISPCLASS_DSTRECT             PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+8)
158 #define PVRSRV_BRIDGE_SET_DISPCLASS_SRCRECT             PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+9)
159 #define PVRSRV_BRIDGE_SET_DISPCLASS_DSTCOLOURKEY                PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+10)
160 #define PVRSRV_BRIDGE_SET_DISPCLASS_SRCCOLOURKEY                PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+11)
161 #define PVRSRV_BRIDGE_GET_DISPCLASS_BUFFERS             PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+12)
162 #define PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_BUFFER  PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+13)
163 #define PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_SYSTEM  PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+14)
164 #define PVRSRV_BRIDGE_DISPCLASS_CMD_LAST                (PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+14)
165
166
167 #define PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST                (PVRSRV_BRIDGE_DISPCLASS_CMD_LAST+1)
168 #define PVRSRV_BRIDGE_OPEN_BUFFERCLASS_DEVICE   PVRSRV_IOWR(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+0)
169 #define PVRSRV_BRIDGE_CLOSE_BUFFERCLASS_DEVICE  PVRSRV_IOWR(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+1)
170 #define PVRSRV_BRIDGE_GET_BUFFERCLASS_INFO              PVRSRV_IOWR(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+2)
171 #define PVRSRV_BRIDGE_GET_BUFFERCLASS_BUFFER    PVRSRV_IOWR(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+3)
172 #define PVRSRV_BRIDGE_GET_BUFFERCLASS_BUFFER_ID_FROM_TAG PVRSRV_IOWR(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+4)
173 #define PVRSRV_BRIDGE_BUFCLASS_CMD_LAST                 (PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+4)
174
175 #define PVRSRV_BRIDGE_WRAP_CMD_FIRST                    (PVRSRV_BRIDGE_BUFCLASS_CMD_LAST+1)
176 #define PVRSRV_BRIDGE_WRAP_EXT_MEMORY                   PVRSRV_IOWR(PVRSRV_BRIDGE_WRAP_CMD_FIRST+0)
177 #define PVRSRV_BRIDGE_UNWRAP_EXT_MEMORY                 PVRSRV_IOWR(PVRSRV_BRIDGE_WRAP_CMD_FIRST+1)
178 #define PVRSRV_BRIDGE_WRAP_CMD_LAST                             (PVRSRV_BRIDGE_WRAP_CMD_FIRST+1)
179
180 #define PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST               (PVRSRV_BRIDGE_WRAP_CMD_LAST+1)
181 #define PVRSRV_BRIDGE_ALLOC_SHARED_SYS_MEM              PVRSRV_IOWR(PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+0)
182 #define PVRSRV_BRIDGE_FREE_SHARED_SYS_MEM               PVRSRV_IOWR(PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+1)
183 #define PVRSRV_BRIDGE_MAP_MEMINFO_MEM                   PVRSRV_IOWR(PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+2)
184 #define PVRSRV_BRIDGE_UNMAP_MEMINFO_MEM                 PVRSRV_IOWR(PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+3)
185 #define PVRSRV_BRIDGE_SHAREDMEM_CMD_LAST                (PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+3)
186
187 #define PVRSRV_BRIDGE_SERVICES4_TMP_CMD_FIRST   (PVRSRV_BRIDGE_SHAREDMEM_CMD_LAST+1)
188 #define PVRSRV_BRIDGE_GETMMU_PD_DEVPADDR        PVRSRV_IOWR(PVRSRV_BRIDGE_SERVICES4_TMP_CMD_FIRST+0)
189 #define PVRSRV_BRIDGE_SERVICES4_TMP_CMD_LAST    (PVRSRV_BRIDGE_SERVICES4_TMP_CMD_FIRST+0)
190
191 #define PVRSRV_BRIDGE_INITSRV_CMD_FIRST                 (PVRSRV_BRIDGE_SERVICES4_TMP_CMD_LAST+1)
192 #define PVRSRV_BRIDGE_INITSRV_CONNECT                   PVRSRV_IOWR(PVRSRV_BRIDGE_INITSRV_CMD_FIRST+0)
193 #define PVRSRV_BRIDGE_INITSRV_DISCONNECT                PVRSRV_IOWR(PVRSRV_BRIDGE_INITSRV_CMD_FIRST+1)
194 #define PVRSRV_BRIDGE_INITSRV_CMD_LAST                  (PVRSRV_BRIDGE_INITSRV_CMD_FIRST+1)
195
196 #define PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST    (PVRSRV_BRIDGE_INITSRV_CMD_LAST+1)
197 #define PVRSRV_BRIDGE_EVENT_OBJECT_WAIT                 PVRSRV_IOWR(PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+0)
198 #define PVRSRV_BRIDGE_EVENT_OBJECT_OPEN                 PVRSRV_IOWR(PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+1)
199 #define PVRSRV_BRIDGE_EVENT_OBJECT_CLOSE                PVRSRV_IOWR(PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+2)
200 #define PVRSRV_BRIDGE_EVENT_OBJECT_CMD_LAST             (PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+2)
201
202 #define PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST                (PVRSRV_BRIDGE_EVENT_OBJECT_CMD_LAST+1)
203 #define PVRSRV_BRIDGE_MODIFY_PENDING_SYNC_OPS   PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+0)
204 #define PVRSRV_BRIDGE_MODIFY_COMPLETE_SYNC_OPS  PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+1)
205 #define PVRSRV_BRIDGE_SYNC_OPS_CMD_LAST                 (PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+1)
206
207 #define PVRSRV_BRIDGE_LAST_NON_DEVICE_CMD               (PVRSRV_BRIDGE_SYNC_OPS_CMD_LAST+1)
208
209
210 #define PVRSRV_KERNEL_MODE_CLIENT                               1
211
212 typedef struct PVRSRV_BRIDGE_RETURN_TAG
213 {
214         PVRSRV_ERROR eError;
215         IMG_VOID *pvData;
216
217 }PVRSRV_BRIDGE_RETURN;
218
219
220 typedef struct PVRSRV_BRIDGE_PACKAGE_TAG
221 {
222         IMG_UINT32                              ui32BridgeID;
223         IMG_UINT32                              ui32Size;
224         IMG_VOID                                *pvParamIn;
225         IMG_UINT32                              ui32InBufferSize;
226         IMG_VOID                                *pvParamOut;
227         IMG_UINT32                              ui32OutBufferSize;
228
229         IMG_HANDLE                              hKernelServices;
230 }PVRSRV_BRIDGE_PACKAGE;
231
232
233
234
235
236 typedef struct PVRSRV_BRIDGE_IN_ACQUIRE_DEVICEINFO_TAG
237 {
238         IMG_UINT32                      ui32BridgeFlags;
239         IMG_UINT32                      uiDevIndex;
240         PVRSRV_DEVICE_TYPE      eDeviceType;
241
242 } PVRSRV_BRIDGE_IN_ACQUIRE_DEVICEINFO;
243
244
245 typedef struct PVRSRV_BRIDGE_IN_ENUMCLASS_TAG
246 {
247         IMG_UINT32                      ui32BridgeFlags;
248         PVRSRV_DEVICE_CLASS sDeviceClass;
249 } PVRSRV_BRIDGE_IN_ENUMCLASS;
250
251
252 typedef struct PVRSRV_BRIDGE_IN_CLOSE_DISPCLASS_DEVICE_TAG
253 {
254         IMG_UINT32                      ui32BridgeFlags;
255         IMG_HANDLE                      hDeviceKM;
256 } PVRSRV_BRIDGE_IN_CLOSE_DISPCLASS_DEVICE;
257
258
259 typedef struct PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_FORMATS_TAG
260 {
261         IMG_UINT32                      ui32BridgeFlags;
262         IMG_HANDLE                      hDeviceKM;
263 } PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_FORMATS;
264
265
266 typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_SYSBUFFER_TAG
267 {
268         IMG_UINT32                      ui32BridgeFlags;
269         IMG_HANDLE                      hDeviceKM;
270 } PVRSRV_BRIDGE_IN_GET_DISPCLASS_SYSBUFFER;
271
272
273 typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_INFO_TAG
274 {
275         IMG_UINT32                      ui32BridgeFlags;
276         IMG_HANDLE                      hDeviceKM;
277 } PVRSRV_BRIDGE_IN_GET_DISPCLASS_INFO;
278
279
280 typedef struct PVRSRV_BRIDGE_IN_CLOSE_BUFFERCLASS_DEVICE_TAG
281 {
282         IMG_UINT32                      ui32BridgeFlags;
283         IMG_HANDLE                      hDeviceKM;
284 } PVRSRV_BRIDGE_IN_CLOSE_BUFFERCLASS_DEVICE;
285
286
287 typedef struct PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_INFO_TAG
288 {
289         IMG_UINT32                      ui32BridgeFlags;
290         IMG_HANDLE                      hDeviceKM;
291 } PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_INFO;
292
293
294
295 typedef struct PVRSRV_BRIDGE_IN_RELEASE_DEVICEINFO_TAG
296 {
297         IMG_UINT32                      ui32BridgeFlags;
298         IMG_HANDLE                      hDevCookie;
299
300 } PVRSRV_BRIDGE_IN_RELEASE_DEVICEINFO;
301
302
303
304 typedef struct PVRSRV_BRIDGE_IN_FREE_CLASSDEVICEINFO_TAG
305 {
306         IMG_UINT32                      ui32BridgeFlags;
307         PVRSRV_DEVICE_CLASS DeviceClass;
308         IMG_VOID*                       pvDevInfo;
309
310 }PVRSRV_BRIDGE_IN_FREE_CLASSDEVICEINFO;
311
312
313
314 typedef struct PVRSRV_BRIDGE_IN_GET_DEVMEM_HEAPINFO_TAG
315 {
316         IMG_UINT32                      ui32BridgeFlags;
317         IMG_HANDLE                      hDevCookie;
318         IMG_HANDLE                      hDevMemContext;
319
320 }PVRSRV_BRIDGE_IN_GET_DEVMEM_HEAPINFO;
321
322
323
324 typedef struct PVRSRV_BRIDGE_IN_CREATE_DEVMEMCONTEXT_TAG
325 {
326         IMG_UINT32                      ui32BridgeFlags;
327         IMG_HANDLE                      hDevCookie;
328
329 }PVRSRV_BRIDGE_IN_CREATE_DEVMEMCONTEXT;
330
331
332
333 typedef struct PVRSRV_BRIDGE_IN_DESTROY_DEVMEMCONTEXT_TAG
334 {
335         IMG_UINT32                      ui32BridgeFlags;
336         IMG_HANDLE                      hDevCookie;
337         IMG_HANDLE                      hDevMemContext;
338
339 }PVRSRV_BRIDGE_IN_DESTROY_DEVMEMCONTEXT;
340
341
342
343 typedef struct PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM_TAG
344 {
345         IMG_UINT32                      ui32BridgeFlags;
346         IMG_HANDLE                      hDevCookie;
347         IMG_HANDLE                      hDevMemHeap;
348         IMG_UINT32                      ui32Attribs;
349         IMG_SIZE_T                      ui32Size;
350         IMG_SIZE_T                      ui32Alignment;
351
352 }PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM;
353
354
355 typedef struct PVRSRV_BRIDGE_IN_MAPMEMINFOTOUSER_TAG
356 {
357         IMG_UINT32                              ui32BridgeFlags;
358         PVRSRV_KERNEL_MEM_INFO  *psKernelMemInfo;
359
360 }PVRSRV_BRIDGE_IN_MAPMEMINFOTOUSER;
361
362
363 typedef struct PVRSRV_BRIDGE_IN_UNMAPMEMINFOFROMUSER_TAG
364 {
365         IMG_UINT32                              ui32BridgeFlags;
366         PVRSRV_KERNEL_MEM_INFO  *psKernelMemInfo;
367         IMG_PVOID                                pvLinAddr;
368         IMG_HANDLE                               hMappingInfo;
369
370 }PVRSRV_BRIDGE_IN_UNMAPMEMINFOFROMUSER;
371
372
373 typedef struct PVRSRV_BRIDGE_IN_FREEDEVICEMEM_TAG
374 {
375         IMG_UINT32                              ui32BridgeFlags;
376         IMG_HANDLE                              hDevCookie;
377         PVRSRV_KERNEL_MEM_INFO  *psKernelMemInfo;
378         PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
379
380 }PVRSRV_BRIDGE_IN_FREEDEVICEMEM;
381
382
383 typedef struct PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM_TAG
384 {
385         IMG_UINT32                              ui32BridgeFlags;
386         IMG_HANDLE                              hDevCookie;
387         PVRSRV_KERNEL_MEM_INFO  *psKernelMemInfo;
388
389 }PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM;
390
391
392 typedef struct PVRSRV_BRIDGE_IN_GETFREEDEVICEMEM_TAG
393 {
394         IMG_UINT32                      ui32BridgeFlags;
395         IMG_UINT32                      ui32Flags;
396
397 } PVRSRV_BRIDGE_IN_GETFREEDEVICEMEM;
398
399
400 typedef struct PVRSRV_BRIDGE_IN_CREATECOMMANDQUEUE_TAG
401 {
402         IMG_UINT32                      ui32BridgeFlags;
403         IMG_HANDLE                      hDevCookie;
404         IMG_SIZE_T                      ui32QueueSize;
405
406 }PVRSRV_BRIDGE_IN_CREATECOMMANDQUEUE;
407
408
409
410 typedef struct PVRSRV_BRIDGE_IN_DESTROYCOMMANDQUEUE_TAG
411 {
412         IMG_UINT32                      ui32BridgeFlags;
413         IMG_HANDLE                      hDevCookie;
414         PVRSRV_QUEUE_INFO       *psQueueInfo;
415
416 }PVRSRV_BRIDGE_IN_DESTROYCOMMANDQUEUE;
417
418
419
420 typedef struct PVRSRV_BRIDGE_IN_MHANDLE_TO_MMAP_DATA_TAG
421 {
422         IMG_UINT32                      ui32BridgeFlags;
423         IMG_HANDLE                      hMHandle;
424 } PVRSRV_BRIDGE_IN_MHANDLE_TO_MMAP_DATA;
425
426
427
428 typedef struct PVRSRV_BRIDGE_IN_RELEASE_MMAP_DATA_TAG
429 {
430         IMG_UINT32                      ui32BridgeFlags;
431         IMG_HANDLE                      hMHandle;
432 } PVRSRV_BRIDGE_IN_RELEASE_MMAP_DATA;
433
434
435
436 typedef struct PVRSRV_BRIDGE_IN_RESERVE_DEV_VIRTMEM_TAG
437 {
438         IMG_UINT32                      ui32BridgeFlags;
439         IMG_HANDLE                      hDevMemHeap;
440         IMG_DEV_VIRTADDR        *psDevVAddr;
441         IMG_SIZE_T                      ui32Size;
442         IMG_SIZE_T                      ui32Alignment;
443
444 }PVRSRV_BRIDGE_IN_RESERVE_DEV_VIRTMEM;
445
446
447 typedef struct PVRSRV_BRIDGE_OUT_CONNECT_SERVICES_TAG
448 {
449         PVRSRV_ERROR                    eError;
450         IMG_HANDLE              hKernelServices;
451 }PVRSRV_BRIDGE_OUT_CONNECT_SERVICES;
452
453
454 typedef struct PVRSRV_BRIDGE_OUT_RESERVE_DEV_VIRTMEM_TAG
455 {
456         PVRSRV_ERROR                    eError;
457         PVRSRV_KERNEL_MEM_INFO  *psKernelMemInfo;
458         PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
459         PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
460         PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
461
462 }PVRSRV_BRIDGE_OUT_RESERVE_DEV_VIRTMEM;
463
464
465
466 typedef struct PVRSRV_BRIDGE_IN_FREE_DEV_VIRTMEM_TAG
467 {
468         IMG_UINT32                              ui32BridgeFlags;
469         PVRSRV_KERNEL_MEM_INFO  *psKernelMemInfo;
470         PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
471         PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
472
473 }PVRSRV_BRIDGE_IN_FREE_DEV_VIRTMEM;
474
475
476
477 typedef struct PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY_TAG
478 {
479         IMG_UINT32                              ui32BridgeFlags;
480         IMG_HANDLE                              hKernelMemInfo;
481         IMG_HANDLE                              hDstDevMemHeap;
482
483 }PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY;
484
485
486
487 typedef struct PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY_TAG
488 {
489         PVRSRV_ERROR                    eError;
490         PVRSRV_KERNEL_MEM_INFO  *psDstKernelMemInfo;
491         PVRSRV_KERNEL_SYNC_INFO *psDstKernelSyncInfo;
492         PVRSRV_CLIENT_MEM_INFO  sDstClientMemInfo;
493         PVRSRV_CLIENT_SYNC_INFO sDstClientSyncInfo;
494
495 }PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY;
496
497
498
499 typedef struct PVRSRV_BRIDGE_IN_UNMAP_DEV_MEMORY_TAG
500 {
501         IMG_UINT32                                      ui32BridgeFlags;
502         PVRSRV_KERNEL_MEM_INFO          *psKernelMemInfo;
503         PVRSRV_CLIENT_MEM_INFO          sClientMemInfo;
504         PVRSRV_CLIENT_SYNC_INFO         sClientSyncInfo;
505
506 }PVRSRV_BRIDGE_IN_UNMAP_DEV_MEMORY;
507
508
509
510 typedef struct PVRSRV_BRIDGE_IN_MAP_EXT_MEMORY_TAG
511 {
512         IMG_UINT32                              ui32BridgeFlags;
513         PVRSRV_KERNEL_MEM_INFO  *psKernelMemInfo;
514         IMG_SYS_PHYADDR                 *psSysPAddr;
515         IMG_UINT32                              ui32Flags;
516
517 }PVRSRV_BRIDGE_IN_MAP_EXT_MEMORY;
518
519
520 typedef struct PVRSRV_BRIDGE_IN_UNMAP_EXT_MEMORY_TAG
521 {
522         IMG_UINT32                                      ui32BridgeFlags;
523         PVRSRV_CLIENT_MEM_INFO          sClientMemInfo;
524         PVRSRV_CLIENT_SYNC_INFO         sClientSyncInfo;
525         IMG_UINT32                                      ui32Flags;
526
527 }PVRSRV_BRIDGE_IN_UNMAP_EXT_MEMORY;
528
529
530 typedef struct PVRSRV_BRIDGE_IN_MAP_DEVICECLASS_MEMORY_TAG
531 {
532         IMG_UINT32                                      ui32BridgeFlags;
533         IMG_HANDLE              hDeviceClassBuffer;
534         IMG_HANDLE              hDevMemContext;
535
536 }PVRSRV_BRIDGE_IN_MAP_DEVICECLASS_MEMORY;
537
538
539
540 typedef struct PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY_TAG
541 {
542         PVRSRV_ERROR                    eError;
543         PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
544         PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
545         PVRSRV_KERNEL_MEM_INFO  *psKernelMemInfo;
546         PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
547         IMG_HANDLE                              hMappingInfo;
548
549 }PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY;
550
551
552
553 typedef struct PVRSRV_BRIDGE_IN_UNMAP_DEVICECLASS_MEMORY_TAG
554 {
555         IMG_UINT32                              ui32BridgeFlags;
556         PVRSRV_KERNEL_MEM_INFO  *psKernelMemInfo;
557         PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
558         PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
559
560 }PVRSRV_BRIDGE_IN_UNMAP_DEVICECLASS_MEMORY;
561
562
563
564 typedef struct PVRSRV_BRIDGE_IN_PDUMP_MEMPOL_TAG
565 {
566         IMG_UINT32 ui32BridgeFlags;
567         PVRSRV_KERNEL_MEM_INFO  *psKernelMemInfo;
568         IMG_UINT32 ui32Offset;
569         IMG_UINT32 ui32Value;
570         IMG_UINT32 ui32Mask;
571         IMG_UINT32 ui32Flags;
572
573 }PVRSRV_BRIDGE_IN_PDUMP_MEMPOL;
574
575
576 typedef struct PVRSRV_BRIDGE_IN_PDUMP_SYNCPOL_TAG
577 {
578         IMG_UINT32 ui32BridgeFlags;
579         PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
580         IMG_BOOL bIsRead;
581         IMG_UINT32 ui32Value;
582         IMG_UINT32 ui32Mask;
583
584 }PVRSRV_BRIDGE_IN_PDUMP_SYNCPOL;
585
586
587
588 typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPMEM_TAG
589 {
590         IMG_UINT32 ui32BridgeFlags;
591         IMG_PVOID pvLinAddr;
592         IMG_PVOID pvAltLinAddr;
593         PVRSRV_KERNEL_MEM_INFO  *psKernelMemInfo;
594         IMG_UINT32 ui32Offset;
595         IMG_UINT32 ui32Bytes;
596         IMG_UINT32 ui32Flags;
597
598 }PVRSRV_BRIDGE_IN_PDUMP_DUMPMEM;
599
600
601
602 typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPSYNC_TAG
603 {
604         IMG_UINT32 ui32BridgeFlags;
605         IMG_PVOID pvAltLinAddr;
606         PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
607         IMG_UINT32 ui32Offset;
608         IMG_UINT32 ui32Bytes;
609
610 }PVRSRV_BRIDGE_IN_PDUMP_DUMPSYNC;
611
612
613
614 typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPREG_TAG
615 {
616         IMG_UINT32 ui32BridgeFlags;
617         PVRSRV_HWREG sHWReg;
618         IMG_UINT32 ui32Flags;
619
620 }PVRSRV_BRIDGE_IN_PDUMP_DUMPREG;
621
622
623 typedef struct PVRSRV_BRIDGE_IN_PDUMP_REGPOL_TAG
624 {
625         IMG_UINT32 ui32BridgeFlags;
626         PVRSRV_HWREG sHWReg;
627         IMG_UINT32 ui32Mask;
628         IMG_UINT32 ui32Flags;
629 }PVRSRV_BRIDGE_IN_PDUMP_REGPOL;
630
631
632 typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPPDREG_TAG
633 {
634         IMG_UINT32 ui32BridgeFlags;
635         PVRSRV_HWREG sHWReg;
636         IMG_UINT32 ui32Flags;
637
638 }PVRSRV_BRIDGE_IN_PDUMP_DUMPPDREG;
639
640
641 typedef struct PVRSRV_BRIDGE_IN_PDUMP_MEMPAGES_TAG
642 {
643         IMG_UINT32                      ui32BridgeFlags;
644         IMG_HANDLE                      hKernelMemInfo;
645         IMG_DEV_PHYADDR         *pPages;
646         IMG_UINT32                      ui32NumPages;
647         IMG_DEV_VIRTADDR        sDevAddr;
648         IMG_UINT32                      ui32Start;
649         IMG_UINT32                      ui32Length;
650         IMG_BOOL                        bContinuous;
651
652 }PVRSRV_BRIDGE_IN_PDUMP_MEMPAGES;
653
654
655 typedef struct PVRSRV_BRIDGE_IN_PDUMP_COMMENT_TAG
656 {
657         IMG_UINT32 ui32BridgeFlags;
658         IMG_CHAR szComment[PVRSRV_PDUMP_MAX_COMMENT_SIZE];
659         IMG_UINT32 ui32Flags;
660
661 }PVRSRV_BRIDGE_IN_PDUMP_COMMENT;
662
663
664
665 typedef struct PVRSRV_BRIDGE_IN_PDUMP_SETFRAME_TAG
666 {
667         IMG_UINT32 ui32BridgeFlags;
668         IMG_UINT32 ui32Frame;
669
670 }PVRSRV_BRIDGE_IN_PDUMP_SETFRAME;
671
672
673
674
675 typedef struct PVRSRV_BRIDGE_IN_PDUMP_BITMAP_TAG
676 {
677         IMG_UINT32 ui32BridgeFlags;
678         IMG_CHAR szFileName[PVRSRV_PDUMP_MAX_FILENAME_SIZE];
679         IMG_UINT32 ui32FileOffset;
680         IMG_UINT32 ui32Width;
681         IMG_UINT32 ui32Height;
682         IMG_UINT32 ui32StrideInBytes;
683         IMG_DEV_VIRTADDR sDevBaseAddr;
684         IMG_UINT32 ui32Size;
685         PDUMP_PIXEL_FORMAT ePixelFormat;
686         PDUMP_MEM_FORMAT eMemFormat;
687         IMG_UINT32 ui32Flags;
688
689 }PVRSRV_BRIDGE_IN_PDUMP_BITMAP;
690
691
692
693 typedef struct PVRSRV_BRIDGE_IN_PDUMP_READREG_TAG
694 {
695         IMG_UINT32 ui32BridgeFlags;
696         IMG_CHAR szFileName[PVRSRV_PDUMP_MAX_FILENAME_SIZE];
697         IMG_UINT32 ui32FileOffset;
698         IMG_UINT32 ui32Address;
699         IMG_UINT32 ui32Size;
700         IMG_UINT32 ui32Flags;
701
702 }PVRSRV_BRIDGE_IN_PDUMP_READREG;
703
704
705 typedef struct PVRSRV_BRIDGE_IN_PDUMP_DRIVERINFO_TAG
706 {
707         IMG_UINT32 ui32BridgeFlags;
708         IMG_CHAR szString[PVRSRV_PDUMP_MAX_COMMENT_SIZE];
709         IMG_BOOL bContinuous;
710
711 }PVRSRV_BRIDGE_IN_PDUMP_DRIVERINFO;
712
713 typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR_TAG
714 {
715         IMG_UINT32 ui32BridgeFlags;
716         IMG_HANDLE hKernelMemInfo;
717         IMG_UINT32 ui32Offset;
718         IMG_DEV_PHYADDR sPDDevPAddr;
719 }PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR;
720
721
722 typedef struct PVRSRV_BRIDGE_PDUM_IN_CYCLE_COUNT_REG_READ_TAG
723 {
724         IMG_UINT32 ui32BridgeFlags;
725         IMG_UINT32 ui32RegOffset;
726         IMG_BOOL bLastFrame;
727 }PVRSRV_BRIDGE_IN_PDUMP_CYCLE_COUNT_REG_READ;
728
729
730 typedef struct PVRSRV_BRIDGE_OUT_ENUMDEVICE_TAG
731 {
732         PVRSRV_ERROR eError;
733         IMG_UINT32 ui32NumDevices;
734         PVRSRV_DEVICE_IDENTIFIER asDeviceIdentifier[PVRSRV_MAX_DEVICES];
735
736 }PVRSRV_BRIDGE_OUT_ENUMDEVICE;
737
738
739
740 typedef struct PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO_TAG
741 {
742
743         PVRSRV_ERROR            eError;
744         IMG_HANDLE                      hDevCookie;
745
746 } PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO;
747
748
749
750 typedef struct PVRSRV_BRIDGE_OUT_ENUMCLASS_TAG
751 {
752         PVRSRV_ERROR eError;
753         IMG_UINT32 ui32NumDevices;
754         IMG_UINT32 ui32DevID[PVRSRV_MAX_DEVICES];
755
756 }PVRSRV_BRIDGE_OUT_ENUMCLASS;
757
758
759
760 typedef struct PVRSRV_BRIDGE_IN_OPEN_DISPCLASS_DEVICE_TAG
761 {
762         IMG_UINT32              ui32BridgeFlags;
763         IMG_UINT32              ui32DeviceID;
764         IMG_HANDLE              hDevCookie;
765
766 }PVRSRV_BRIDGE_IN_OPEN_DISPCLASS_DEVICE;
767
768
769 typedef struct PVRSRV_BRIDGE_OUT_OPEN_DISPCLASS_DEVICE_TAG
770 {
771         PVRSRV_ERROR    eError;
772         IMG_HANDLE              hDeviceKM;
773
774 }PVRSRV_BRIDGE_OUT_OPEN_DISPCLASS_DEVICE;
775
776
777
778 typedef struct PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY_TAG
779 {
780         IMG_UINT32                              ui32BridgeFlags;
781         IMG_HANDLE              hDevCookie;
782         IMG_HANDLE                              hDevMemContext;
783         IMG_VOID                                *pvLinAddr;
784         IMG_SIZE_T              ui32ByteSize;
785         IMG_SIZE_T              ui32PageOffset;
786         IMG_BOOL                bPhysContig;
787         IMG_UINT32                              ui32NumPageTableEntries;
788         IMG_SYS_PHYADDR         *psSysPAddr;
789         IMG_UINT32                              ui32Flags;
790
791 }PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY;
792
793
794 typedef struct PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY_TAG
795 {
796         PVRSRV_ERROR    eError;
797         PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
798         PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
799
800 }PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY;
801
802
803 typedef struct PVRSRV_BRIDGE_IN_UNWRAP_EXT_MEMORY_TAG
804 {
805         IMG_UINT32 ui32BridgeFlags;
806         IMG_HANDLE hKernelMemInfo;
807         PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
808         PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
809
810 }PVRSRV_BRIDGE_IN_UNWRAP_EXT_MEMORY;
811
812
813 #define PVRSRV_MAX_DC_DISPLAY_FORMATS                   10
814 #define PVRSRV_MAX_DC_DISPLAY_DIMENSIONS                10
815 #define PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS                 4
816 #define PVRSRV_MAX_DC_CLIP_RECTS                                32
817
818
819 typedef struct PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_FORMATS_TAG
820 {
821         PVRSRV_ERROR    eError;
822         IMG_UINT32              ui32Count;
823         DISPLAY_FORMAT  asFormat[PVRSRV_MAX_DC_DISPLAY_FORMATS];
824
825 }PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_FORMATS;
826
827
828
829 typedef struct PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_DIMS_TAG
830 {
831         IMG_UINT32              ui32BridgeFlags;
832         IMG_HANDLE              hDeviceKM;
833         DISPLAY_FORMAT  sFormat;
834
835 }PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_DIMS;
836
837
838
839 typedef struct PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_DIMS_TAG
840 {
841         PVRSRV_ERROR    eError;
842         IMG_UINT32              ui32Count;
843         DISPLAY_DIMS    asDim[PVRSRV_MAX_DC_DISPLAY_DIMENSIONS];
844
845 }PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_DIMS;
846
847
848
849 typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_INFO_TAG
850 {
851         PVRSRV_ERROR    eError;
852         DISPLAY_INFO    sDisplayInfo;
853
854 }PVRSRV_BRIDGE_OUT_GET_DISPCLASS_INFO;
855
856
857
858 typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_SYSBUFFER_TAG
859 {
860         PVRSRV_ERROR    eError;
861         IMG_HANDLE              hBuffer;
862
863 }PVRSRV_BRIDGE_OUT_GET_DISPCLASS_SYSBUFFER;
864
865
866
867 typedef struct PVRSRV_BRIDGE_IN_CREATE_DISPCLASS_SWAPCHAIN_TAG
868 {
869         IMG_UINT32                              ui32BridgeFlags;
870         IMG_HANDLE                              hDeviceKM;
871         IMG_UINT32                              ui32Flags;
872         DISPLAY_SURF_ATTRIBUTES sDstSurfAttrib;
873         DISPLAY_SURF_ATTRIBUTES sSrcSurfAttrib;
874         IMG_UINT32                              ui32BufferCount;
875         IMG_UINT32                              ui32OEMFlags;
876         IMG_UINT32                              ui32SwapChainID;
877
878 } PVRSRV_BRIDGE_IN_CREATE_DISPCLASS_SWAPCHAIN;
879
880
881
882 typedef struct PVRSRV_BRIDGE_OUT_CREATE_DISPCLASS_SWAPCHAIN_TAG
883 {
884         PVRSRV_ERROR            eError;
885         IMG_HANDLE                      hSwapChain;
886         IMG_UINT32                      ui32SwapChainID;
887
888 } PVRSRV_BRIDGE_OUT_CREATE_DISPCLASS_SWAPCHAIN;
889
890
891
892 typedef struct PVRSRV_BRIDGE_IN_DESTROY_DISPCLASS_SWAPCHAIN_TAG
893 {
894         IMG_UINT32                      ui32BridgeFlags;
895         IMG_HANDLE                      hDeviceKM;
896         IMG_HANDLE                      hSwapChain;
897
898 } PVRSRV_BRIDGE_IN_DESTROY_DISPCLASS_SWAPCHAIN;
899
900
901
902 typedef struct PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT_TAG
903 {
904         IMG_UINT32                      ui32BridgeFlags;
905         IMG_HANDLE                      hDeviceKM;
906         IMG_HANDLE                      hSwapChain;
907         IMG_RECT                        sRect;
908
909 } PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT;
910
911
912
913 typedef struct PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY_TAG
914 {
915         IMG_UINT32                      ui32BridgeFlags;
916         IMG_HANDLE                      hDeviceKM;
917         IMG_HANDLE                      hSwapChain;
918         IMG_UINT32                      ui32CKColour;
919
920 } PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY;
921
922
923
924 typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_BUFFERS_TAG
925 {
926         IMG_UINT32                      ui32BridgeFlags;
927         IMG_HANDLE                      hDeviceKM;
928         IMG_HANDLE                      hSwapChain;
929
930 } PVRSRV_BRIDGE_IN_GET_DISPCLASS_BUFFERS;
931
932
933
934 typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_BUFFERS_TAG
935 {
936         PVRSRV_ERROR            eError;
937         IMG_UINT32                      ui32BufferCount;
938         IMG_HANDLE                      ahBuffer[PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS];
939
940 } PVRSRV_BRIDGE_OUT_GET_DISPCLASS_BUFFERS;
941
942
943
944 typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER_TAG
945 {
946         IMG_UINT32                      ui32BridgeFlags;
947         IMG_HANDLE                      hDeviceKM;
948         IMG_HANDLE                      hBuffer;
949         IMG_UINT32                      ui32SwapInterval;
950         IMG_HANDLE                      hPrivateTag;
951         IMG_UINT32                      ui32ClipRectCount;
952         IMG_RECT                        sClipRect[PVRSRV_MAX_DC_CLIP_RECTS];
953
954 } PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER;
955
956
957
958 typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_SYSTEM_TAG
959 {
960         IMG_UINT32                      ui32BridgeFlags;
961         IMG_HANDLE                      hDeviceKM;
962         IMG_HANDLE                      hSwapChain;
963
964 } PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_SYSTEM;
965
966
967
968 typedef struct PVRSRV_BRIDGE_IN_OPEN_BUFFERCLASS_DEVICE_TAG
969 {
970         IMG_UINT32                      ui32BridgeFlags;
971         IMG_UINT32                      ui32DeviceID;
972         IMG_HANDLE                      hDevCookie;
973
974 } PVRSRV_BRIDGE_IN_OPEN_BUFFERCLASS_DEVICE;
975
976
977
978 typedef struct PVRSRV_BRIDGE_OUT_OPEN_BUFFERCLASS_DEVICE_TAG
979 {
980         PVRSRV_ERROR            eError;
981         IMG_HANDLE                      hDeviceKM;
982
983 } PVRSRV_BRIDGE_OUT_OPEN_BUFFERCLASS_DEVICE;
984
985
986
987 typedef struct PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_INFO_TAG
988 {
989         PVRSRV_ERROR            eError;
990         BUFFER_INFO                     sBufferInfo;
991
992 } PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_INFO;
993
994
995
996 typedef struct PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_BUFFER_TAG
997 {
998         IMG_UINT32                      ui32BridgeFlags;
999         IMG_HANDLE                      hDeviceKM;
1000         IMG_UINT32                      ui32BufferIndex;
1001
1002 } PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_BUFFER;
1003
1004
1005
1006 typedef struct PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_BUFFER_TAG
1007 {
1008         PVRSRV_ERROR            eError;
1009         IMG_HANDLE                      hBuffer;
1010
1011 } PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_BUFFER;
1012
1013
1014
1015 typedef struct PVRSRV_BRIDGE_OUT_GET_DEVMEM_HEAPINFO_TAG
1016 {
1017         PVRSRV_ERROR            eError;
1018         IMG_UINT32                      ui32ClientHeapCount;
1019         PVRSRV_HEAP_INFO        sHeapInfo[PVRSRV_MAX_CLIENT_HEAPS];
1020
1021 } PVRSRV_BRIDGE_OUT_GET_DEVMEM_HEAPINFO;
1022
1023
1024
1025 typedef struct PVRSRV_BRIDGE_OUT_CREATE_DEVMEMCONTEXT_TAG
1026 {
1027         PVRSRV_ERROR            eError;
1028         IMG_HANDLE                      hDevMemContext;
1029         IMG_UINT32                      ui32ClientHeapCount;
1030         PVRSRV_HEAP_INFO        sHeapInfo[PVRSRV_MAX_CLIENT_HEAPS];
1031
1032 } PVRSRV_BRIDGE_OUT_CREATE_DEVMEMCONTEXT;
1033
1034
1035
1036 typedef struct PVRSRV_BRIDGE_OUT_CREATE_DEVMEMHEAP_TAG
1037 {
1038         PVRSRV_ERROR            eError;
1039         IMG_HANDLE                      hDevMemHeap;
1040
1041 } PVRSRV_BRIDGE_OUT_CREATE_DEVMEMHEAP;
1042
1043
1044
1045 typedef struct PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM_TAG
1046 {
1047         PVRSRV_ERROR                    eError;
1048         PVRSRV_KERNEL_MEM_INFO  *psKernelMemInfo;
1049         PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
1050         PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
1051         PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
1052
1053 } PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM;
1054
1055
1056
1057 typedef struct PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM_TAG
1058 {
1059         PVRSRV_ERROR                    eError;
1060         IMG_HANDLE                              hMemInfo;
1061 #if defined(SUPPORT_MEMINFO_IDS)
1062         IMG_UINT64                              ui64Stamp;
1063 #endif
1064
1065 } PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM;
1066
1067
1068 typedef struct PVRSRV_BRIDGE_OUT_MAPMEMINFOTOUSER_TAG
1069 {
1070         PVRSRV_ERROR                    eError;
1071         IMG_PVOID                               pvLinAddr;
1072         IMG_HANDLE                              hMappingInfo;
1073
1074 }PVRSRV_BRIDGE_OUT_MAPMEMINFOTOUSER;
1075
1076
1077
1078 typedef struct PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM_TAG
1079 {
1080         PVRSRV_ERROR eError;
1081         IMG_SIZE_T ui32Total;
1082         IMG_SIZE_T ui32Free;
1083         IMG_SIZE_T ui32LargestBlock;
1084
1085 } PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM;
1086
1087
1088 #include "pvrmmap.h"
1089 typedef struct PVRSRV_BRIDGE_OUT_MHANDLE_TO_MMAP_DATA_TAG
1090 {
1091     PVRSRV_ERROR                eError;
1092
1093
1094      IMG_UINT32                 ui32MMapOffset;
1095
1096
1097     IMG_UINT32                  ui32ByteOffset;
1098
1099
1100     IMG_UINT32                  ui32RealByteSize;
1101
1102
1103     IMG_UINT32                  ui32UserVAddr;
1104
1105 } PVRSRV_BRIDGE_OUT_MHANDLE_TO_MMAP_DATA;
1106
1107 typedef struct PVRSRV_BRIDGE_OUT_RELEASE_MMAP_DATA_TAG
1108 {
1109     PVRSRV_ERROR                eError;
1110
1111
1112     IMG_BOOL                    bMUnmap;
1113
1114
1115     IMG_UINT32                  ui32UserVAddr;
1116
1117
1118     IMG_UINT32                  ui32RealByteSize;
1119 } PVRSRV_BRIDGE_OUT_RELEASE_MMAP_DATA;
1120
1121 typedef struct PVRSRV_BRIDGE_IN_GET_MISC_INFO_TAG
1122 {
1123         IMG_UINT32                      ui32BridgeFlags;
1124         PVRSRV_MISC_INFO        sMiscInfo;
1125
1126 }PVRSRV_BRIDGE_IN_GET_MISC_INFO;
1127
1128
1129
1130 typedef struct PVRSRV_BRIDGE_OUT_GET_MISC_INFO_TAG
1131 {
1132         PVRSRV_ERROR            eError;
1133         PVRSRV_MISC_INFO        sMiscInfo;
1134
1135 }PVRSRV_BRIDGE_OUT_GET_MISC_INFO;
1136
1137
1138
1139 typedef struct PVRSRV_BRIDGE_IN_RELEASE_MISC_INFO_TAG
1140 {
1141         IMG_UINT32                      ui32BridgeFlags;
1142         PVRSRV_MISC_INFO        sMiscInfo;
1143
1144 }PVRSRV_BRIDGE_IN_RELEASE_MISC_INFO;
1145
1146
1147
1148 typedef struct PVRSRV_BRIDGE_OUT_RELEASE_MISC_INFO_TAG
1149 {
1150         PVRSRV_ERROR            eError;
1151         PVRSRV_MISC_INFO        sMiscInfo;
1152
1153 }PVRSRV_BRIDGE_OUT_RELEASE_MISC_INFO;
1154
1155
1156
1157
1158 typedef struct PVRSRV_BRIDGE_OUT_PDUMP_ISCAPTURING_TAG
1159 {
1160         PVRSRV_ERROR eError;
1161         IMG_BOOL bIsCapturing;
1162
1163 } PVRSRV_BRIDGE_OUT_PDUMP_ISCAPTURING;
1164
1165
1166 typedef struct PVRSRV_BRIDGE_IN_GET_FB_STATS_TAG
1167 {
1168         IMG_UINT32 ui32BridgeFlags;
1169         IMG_SIZE_T ui32Total;
1170         IMG_SIZE_T ui32Available;
1171
1172 } PVRSRV_BRIDGE_IN_GET_FB_STATS;
1173
1174
1175
1176 typedef struct PVRSRV_BRIDGE_IN_MAPPHYSTOUSERSPACE_TAG
1177 {
1178         IMG_UINT32                      ui32BridgeFlags;
1179         IMG_HANDLE                      hDevCookie;
1180         IMG_SYS_PHYADDR         sSysPhysAddr;
1181         IMG_UINT32                      uiSizeInBytes;
1182
1183 } PVRSRV_BRIDGE_IN_MAPPHYSTOUSERSPACE;
1184
1185
1186
1187 typedef struct PVRSRV_BRIDGE_OUT_MAPPHYSTOUSERSPACE_TAG
1188 {
1189         IMG_PVOID                       pvUserAddr;
1190         IMG_UINT32                      uiActualSize;
1191         IMG_PVOID                       pvProcess;
1192
1193 } PVRSRV_BRIDGE_OUT_MAPPHYSTOUSERSPACE;
1194
1195
1196
1197 typedef struct PVRSRV_BRIDGE_IN_UNMAPPHYSTOUSERSPACE_TAG
1198 {
1199         IMG_UINT32                      ui32BridgeFlags;
1200         IMG_HANDLE                      hDevCookie;
1201         IMG_PVOID                       pvUserAddr;
1202         IMG_PVOID                       pvProcess;
1203
1204 } PVRSRV_BRIDGE_IN_UNMAPPHYSTOUSERSPACE;
1205
1206
1207
1208 typedef struct PVRSRV_BRIDGE_OUT_GETPHYSTOUSERSPACEMAP_TAG
1209 {
1210         IMG_PVOID                       *ppvTbl;
1211         IMG_UINT32                      uiTblSize;
1212
1213 } PVRSRV_BRIDGE_OUT_GETPHYSTOUSERSPACEMAP;
1214
1215
1216
1217 typedef struct PVRSRV_BRIDGE_IN_REGISTER_SIM_PROCESS_TAG
1218 {
1219         IMG_UINT32                      ui32BridgeFlags;
1220         IMG_HANDLE                      hDevCookie;
1221         IMG_PVOID                       pvProcess;
1222
1223 } PVRSRV_BRIDGE_IN_REGISTER_SIM_PROCESS;
1224
1225
1226 typedef struct PVRSRV_BRIDGE_OUT_REGISTER_SIM_PROCESS_TAG
1227 {
1228         IMG_SYS_PHYADDR         sRegsPhysBase;
1229         IMG_VOID                        *pvRegsBase;
1230         IMG_PVOID                       pvProcess;
1231         IMG_UINT32                      ulNoOfEntries;
1232         IMG_PVOID                       pvTblLinAddr;
1233
1234 } PVRSRV_BRIDGE_OUT_REGISTER_SIM_PROCESS;
1235
1236
1237 typedef struct PVRSRV_BRIDGE_IN_UNREGISTER_SIM_PROCESS_TAG
1238 {
1239         IMG_UINT32                      ui32BridgeFlags;
1240         IMG_HANDLE                      hDevCookie;
1241         IMG_PVOID                       pvProcess;
1242         IMG_VOID                        *pvRegsBase;
1243
1244 } PVRSRV_BRIDGE_IN_UNREGISTER_SIM_PROCESS;
1245
1246 typedef struct PVRSRV_BRIDGE_IN_PROCESS_SIMISR_EVENT_TAG
1247 {
1248         IMG_UINT32                      ui32BridgeFlags;
1249         IMG_HANDLE                      hDevCookie;
1250         IMG_UINT32                      ui32StatusAndMask;
1251         PVRSRV_ERROR            eError;
1252
1253 } PVRSRV_BRIDGE_IN_PROCESS_SIMISR_EVENT;
1254
1255 typedef struct PVRSRV_BRIDGE_IN_INITSRV_DISCONNECT_TAG
1256 {
1257         IMG_UINT32                      ui32BridgeFlags;
1258         IMG_BOOL                        bInitSuccesful;
1259 } PVRSRV_BRIDGE_IN_INITSRV_DISCONNECT;
1260
1261
1262 typedef struct PVRSRV_BRIDGE_IN_ALLOC_SHARED_SYS_MEM_TAG
1263 {
1264         IMG_UINT32 ui32BridgeFlags;
1265     IMG_UINT32 ui32Flags;
1266     IMG_SIZE_T ui32Size;
1267 }PVRSRV_BRIDGE_IN_ALLOC_SHARED_SYS_MEM;
1268
1269 typedef struct PVRSRV_BRIDGE_OUT_ALLOC_SHARED_SYS_MEM_TAG
1270 {
1271         PVRSRV_ERROR                    eError;
1272         PVRSRV_KERNEL_MEM_INFO  *psKernelMemInfo;
1273         PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
1274 }PVRSRV_BRIDGE_OUT_ALLOC_SHARED_SYS_MEM;
1275
1276 typedef struct PVRSRV_BRIDGE_IN_FREE_SHARED_SYS_MEM_TAG
1277 {
1278         IMG_UINT32                              ui32BridgeFlags;
1279         PVRSRV_KERNEL_MEM_INFO  *psKernelMemInfo;
1280         PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
1281 }PVRSRV_BRIDGE_IN_FREE_SHARED_SYS_MEM;
1282
1283 typedef struct PVRSRV_BRIDGE_OUT_FREE_SHARED_SYS_MEM_TAG
1284 {
1285         PVRSRV_ERROR eError;
1286 }PVRSRV_BRIDGE_OUT_FREE_SHARED_SYS_MEM;
1287
1288 typedef struct PVRSRV_BRIDGE_IN_MAP_MEMINFO_MEM_TAG
1289 {
1290         IMG_UINT32 ui32BridgeFlags;
1291         IMG_HANDLE hKernelMemInfo;
1292 }PVRSRV_BRIDGE_IN_MAP_MEMINFO_MEM;
1293
1294 typedef struct PVRSRV_BRIDGE_OUT_MAP_MEMINFO_MEM_TAG
1295 {
1296         PVRSRV_CLIENT_MEM_INFO  sClientMemInfo;
1297         PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
1298         PVRSRV_KERNEL_MEM_INFO  *psKernelMemInfo;
1299         PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
1300         PVRSRV_ERROR eError;
1301 }PVRSRV_BRIDGE_OUT_MAP_MEMINFO_MEM;
1302
1303 typedef struct PVRSRV_BRIDGE_IN_UNMAP_MEMINFO_MEM_TAG
1304 {
1305         IMG_UINT32 ui32BridgeFlags;
1306         PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
1307 }PVRSRV_BRIDGE_IN_UNMAP_MEMINFO_MEM;
1308
1309 typedef struct PVRSRV_BRIDGE_OUT_UNMAP_MEMINFO_MEM_TAG
1310 {
1311         PVRSRV_ERROR eError;
1312 }PVRSRV_BRIDGE_OUT_UNMAP_MEMINFO_MEM;
1313
1314 typedef struct PVRSRV_BRIDGE_IN_GETMMU_PD_DEVPADDR_TAG
1315 {
1316         IMG_UINT32 ui32BridgeFlags;
1317     IMG_HANDLE hDevMemContext;
1318 }PVRSRV_BRIDGE_IN_GETMMU_PD_DEVPADDR;
1319
1320 typedef struct PVRSRV_BRIDGE_OUT_GETMMU_PD_DEVPADDR_TAG
1321 {
1322     IMG_DEV_PHYADDR sPDDevPAddr;
1323         PVRSRV_ERROR eError;
1324 }PVRSRV_BRIDGE_OUT_GETMMU_PD_DEVPADDR;
1325
1326 typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_WAI_TAG
1327 {
1328         IMG_UINT32 ui32BridgeFlags;
1329         IMG_HANDLE      hOSEventKM;
1330 } PVRSRV_BRIDGE_IN_EVENT_OBJECT_WAIT;
1331
1332 typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_OPEN_TAG
1333 {
1334         PVRSRV_EVENTOBJECT sEventObject;
1335 } PVRSRV_BRIDGE_IN_EVENT_OBJECT_OPEN;
1336
1337 typedef struct  PVRSRV_BRIDGE_OUT_EVENT_OBJECT_OPEN_TAG
1338 {
1339         IMG_HANDLE hOSEvent;
1340         PVRSRV_ERROR eError;
1341 } PVRSRV_BRIDGE_OUT_EVENT_OBJECT_OPEN;
1342
1343 typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE_TAG
1344 {
1345         PVRSRV_EVENTOBJECT sEventObject;
1346         IMG_HANDLE hOSEventKM;
1347 } PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE;
1348
1349 typedef struct PVRSRV_BRIDGE_IN_MODIFY_PENDING_SYNC_OPS_TAG
1350 {
1351         IMG_UINT32 ui32BridgeFlags;
1352         IMG_HANDLE hKernelSyncInfo;
1353         IMG_UINT32 ui32ModifyFlags;
1354
1355 } PVRSRV_BRIDGE_IN_MODIFY_PENDING_SYNC_OPS;
1356
1357 typedef struct PVRSRV_BRIDGE_IN_MODIFY_COMPLETE_SYNC_OPS_TAG
1358 {
1359         IMG_UINT32 ui32BridgeFlags;
1360         IMG_HANDLE hKernelSyncInfo;
1361         IMG_UINT32 ui32ModifyFlags;
1362
1363 } PVRSRV_BRIDGE_IN_MODIFY_COMPLETE_SYNC_OPS;
1364
1365 typedef struct PVRSRV_BRIDGE_OUT_MODIFY_PENDING_SYNC_OPS_TAG
1366 {
1367         PVRSRV_ERROR eError;
1368
1369
1370         IMG_UINT32 ui32ReadOpsPending;
1371         IMG_UINT32 ui32WriteOpsPending;
1372
1373 } PVRSRV_BRIDGE_OUT_MODIFY_PENDING_SYNC_OPS;
1374
1375 #if defined (__cplusplus)
1376 }
1377 #endif
1378
1379 #endif
1380