1 /**********************************************************************
2 Copyright (c) Imagination Technologies Ltd.
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:
11 The above copyright notice and this permission notice shall be included in
12 all copies or substantial portions of the Software.
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
21 ******************************************************************************/
23 #ifndef __PVR_BRIDGE_H__
24 #define __PVR_BRIDGE_H__
26 #if defined (__cplusplus)
30 #include "servicesint.h"
34 #include <linux/ioctl.h>
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)
44 #error Unknown platform: Cannot define ioctls
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)
51 #define PVRSRV_BRIDGE_BASE PVRSRV_IOC_GID
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)
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)
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)
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)
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)
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)
112 #define PVRSRV_BRIDGE_OVERLAY_CMD_LAST (PVRSRV_BRIDGE_OVERLAY_CMD_FIRST+1)
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)
137 #define PVRSRV_BRIDGE_PDUMP_CMD_LAST PVRSRV_BRIDGE_OVERLAY_CMD_LAST
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
207 #define PVRSRV_BRIDGE_LAST_NON_DEVICE_CMD (PVRSRV_BRIDGE_SYNC_OPS_CMD_LAST+1)
210 #define PVRSRV_KERNEL_MODE_CLIENT 1
212 typedef struct PVRSRV_BRIDGE_RETURN_TAG
217 }PVRSRV_BRIDGE_RETURN;
220 typedef struct PVRSRV_BRIDGE_PACKAGE_TAG
222 IMG_UINT32 ui32BridgeID;
225 IMG_UINT32 ui32InBufferSize;
226 IMG_VOID *pvParamOut;
227 IMG_UINT32 ui32OutBufferSize;
229 IMG_HANDLE hKernelServices;
230 }PVRSRV_BRIDGE_PACKAGE;
236 typedef struct PVRSRV_BRIDGE_IN_ACQUIRE_DEVICEINFO_TAG
238 IMG_UINT32 ui32BridgeFlags;
239 IMG_UINT32 uiDevIndex;
240 PVRSRV_DEVICE_TYPE eDeviceType;
242 } PVRSRV_BRIDGE_IN_ACQUIRE_DEVICEINFO;
245 typedef struct PVRSRV_BRIDGE_IN_ENUMCLASS_TAG
247 IMG_UINT32 ui32BridgeFlags;
248 PVRSRV_DEVICE_CLASS sDeviceClass;
249 } PVRSRV_BRIDGE_IN_ENUMCLASS;
252 typedef struct PVRSRV_BRIDGE_IN_CLOSE_DISPCLASS_DEVICE_TAG
254 IMG_UINT32 ui32BridgeFlags;
255 IMG_HANDLE hDeviceKM;
256 } PVRSRV_BRIDGE_IN_CLOSE_DISPCLASS_DEVICE;
259 typedef struct PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_FORMATS_TAG
261 IMG_UINT32 ui32BridgeFlags;
262 IMG_HANDLE hDeviceKM;
263 } PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_FORMATS;
266 typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_SYSBUFFER_TAG
268 IMG_UINT32 ui32BridgeFlags;
269 IMG_HANDLE hDeviceKM;
270 } PVRSRV_BRIDGE_IN_GET_DISPCLASS_SYSBUFFER;
273 typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_INFO_TAG
275 IMG_UINT32 ui32BridgeFlags;
276 IMG_HANDLE hDeviceKM;
277 } PVRSRV_BRIDGE_IN_GET_DISPCLASS_INFO;
280 typedef struct PVRSRV_BRIDGE_IN_CLOSE_BUFFERCLASS_DEVICE_TAG
282 IMG_UINT32 ui32BridgeFlags;
283 IMG_HANDLE hDeviceKM;
284 } PVRSRV_BRIDGE_IN_CLOSE_BUFFERCLASS_DEVICE;
287 typedef struct PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_INFO_TAG
289 IMG_UINT32 ui32BridgeFlags;
290 IMG_HANDLE hDeviceKM;
291 } PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_INFO;
295 typedef struct PVRSRV_BRIDGE_IN_RELEASE_DEVICEINFO_TAG
297 IMG_UINT32 ui32BridgeFlags;
298 IMG_HANDLE hDevCookie;
300 } PVRSRV_BRIDGE_IN_RELEASE_DEVICEINFO;
304 typedef struct PVRSRV_BRIDGE_IN_FREE_CLASSDEVICEINFO_TAG
306 IMG_UINT32 ui32BridgeFlags;
307 PVRSRV_DEVICE_CLASS DeviceClass;
310 }PVRSRV_BRIDGE_IN_FREE_CLASSDEVICEINFO;
314 typedef struct PVRSRV_BRIDGE_IN_GET_DEVMEM_HEAPINFO_TAG
316 IMG_UINT32 ui32BridgeFlags;
317 IMG_HANDLE hDevCookie;
318 IMG_HANDLE hDevMemContext;
320 }PVRSRV_BRIDGE_IN_GET_DEVMEM_HEAPINFO;
324 typedef struct PVRSRV_BRIDGE_IN_CREATE_DEVMEMCONTEXT_TAG
326 IMG_UINT32 ui32BridgeFlags;
327 IMG_HANDLE hDevCookie;
329 }PVRSRV_BRIDGE_IN_CREATE_DEVMEMCONTEXT;
333 typedef struct PVRSRV_BRIDGE_IN_DESTROY_DEVMEMCONTEXT_TAG
335 IMG_UINT32 ui32BridgeFlags;
336 IMG_HANDLE hDevCookie;
337 IMG_HANDLE hDevMemContext;
339 }PVRSRV_BRIDGE_IN_DESTROY_DEVMEMCONTEXT;
343 typedef struct PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM_TAG
345 IMG_UINT32 ui32BridgeFlags;
346 IMG_HANDLE hDevCookie;
347 IMG_HANDLE hDevMemHeap;
348 IMG_UINT32 ui32Attribs;
350 IMG_SIZE_T ui32Alignment;
352 }PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM;
355 typedef struct PVRSRV_BRIDGE_IN_MAPMEMINFOTOUSER_TAG
357 IMG_UINT32 ui32BridgeFlags;
358 PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
360 }PVRSRV_BRIDGE_IN_MAPMEMINFOTOUSER;
363 typedef struct PVRSRV_BRIDGE_IN_UNMAPMEMINFOFROMUSER_TAG
365 IMG_UINT32 ui32BridgeFlags;
366 PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
368 IMG_HANDLE hMappingInfo;
370 }PVRSRV_BRIDGE_IN_UNMAPMEMINFOFROMUSER;
373 typedef struct PVRSRV_BRIDGE_IN_FREEDEVICEMEM_TAG
375 IMG_UINT32 ui32BridgeFlags;
376 IMG_HANDLE hDevCookie;
377 PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
378 PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
380 }PVRSRV_BRIDGE_IN_FREEDEVICEMEM;
383 typedef struct PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM_TAG
385 IMG_UINT32 ui32BridgeFlags;
386 IMG_HANDLE hDevCookie;
387 PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
389 }PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM;
392 typedef struct PVRSRV_BRIDGE_IN_GETFREEDEVICEMEM_TAG
394 IMG_UINT32 ui32BridgeFlags;
395 IMG_UINT32 ui32Flags;
397 } PVRSRV_BRIDGE_IN_GETFREEDEVICEMEM;
400 typedef struct PVRSRV_BRIDGE_IN_CREATECOMMANDQUEUE_TAG
402 IMG_UINT32 ui32BridgeFlags;
403 IMG_HANDLE hDevCookie;
404 IMG_SIZE_T ui32QueueSize;
406 }PVRSRV_BRIDGE_IN_CREATECOMMANDQUEUE;
410 typedef struct PVRSRV_BRIDGE_IN_DESTROYCOMMANDQUEUE_TAG
412 IMG_UINT32 ui32BridgeFlags;
413 IMG_HANDLE hDevCookie;
414 PVRSRV_QUEUE_INFO *psQueueInfo;
416 }PVRSRV_BRIDGE_IN_DESTROYCOMMANDQUEUE;
420 typedef struct PVRSRV_BRIDGE_IN_MHANDLE_TO_MMAP_DATA_TAG
422 IMG_UINT32 ui32BridgeFlags;
424 } PVRSRV_BRIDGE_IN_MHANDLE_TO_MMAP_DATA;
428 typedef struct PVRSRV_BRIDGE_IN_RELEASE_MMAP_DATA_TAG
430 IMG_UINT32 ui32BridgeFlags;
432 } PVRSRV_BRIDGE_IN_RELEASE_MMAP_DATA;
436 typedef struct PVRSRV_BRIDGE_IN_RESERVE_DEV_VIRTMEM_TAG
438 IMG_UINT32 ui32BridgeFlags;
439 IMG_HANDLE hDevMemHeap;
440 IMG_DEV_VIRTADDR *psDevVAddr;
442 IMG_SIZE_T ui32Alignment;
444 }PVRSRV_BRIDGE_IN_RESERVE_DEV_VIRTMEM;
447 typedef struct PVRSRV_BRIDGE_OUT_CONNECT_SERVICES_TAG
450 IMG_HANDLE hKernelServices;
451 }PVRSRV_BRIDGE_OUT_CONNECT_SERVICES;
454 typedef struct PVRSRV_BRIDGE_OUT_RESERVE_DEV_VIRTMEM_TAG
457 PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
458 PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
459 PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
460 PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
462 }PVRSRV_BRIDGE_OUT_RESERVE_DEV_VIRTMEM;
466 typedef struct PVRSRV_BRIDGE_IN_FREE_DEV_VIRTMEM_TAG
468 IMG_UINT32 ui32BridgeFlags;
469 PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
470 PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
471 PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
473 }PVRSRV_BRIDGE_IN_FREE_DEV_VIRTMEM;
477 typedef struct PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY_TAG
479 IMG_UINT32 ui32BridgeFlags;
480 IMG_HANDLE hKernelMemInfo;
481 IMG_HANDLE hDstDevMemHeap;
483 }PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY;
487 typedef struct PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY_TAG
490 PVRSRV_KERNEL_MEM_INFO *psDstKernelMemInfo;
491 PVRSRV_KERNEL_SYNC_INFO *psDstKernelSyncInfo;
492 PVRSRV_CLIENT_MEM_INFO sDstClientMemInfo;
493 PVRSRV_CLIENT_SYNC_INFO sDstClientSyncInfo;
495 }PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY;
499 typedef struct PVRSRV_BRIDGE_IN_UNMAP_DEV_MEMORY_TAG
501 IMG_UINT32 ui32BridgeFlags;
502 PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
503 PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
504 PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
506 }PVRSRV_BRIDGE_IN_UNMAP_DEV_MEMORY;
510 typedef struct PVRSRV_BRIDGE_IN_MAP_EXT_MEMORY_TAG
512 IMG_UINT32 ui32BridgeFlags;
513 PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
514 IMG_SYS_PHYADDR *psSysPAddr;
515 IMG_UINT32 ui32Flags;
517 }PVRSRV_BRIDGE_IN_MAP_EXT_MEMORY;
520 typedef struct PVRSRV_BRIDGE_IN_UNMAP_EXT_MEMORY_TAG
522 IMG_UINT32 ui32BridgeFlags;
523 PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
524 PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
525 IMG_UINT32 ui32Flags;
527 }PVRSRV_BRIDGE_IN_UNMAP_EXT_MEMORY;
530 typedef struct PVRSRV_BRIDGE_IN_MAP_DEVICECLASS_MEMORY_TAG
532 IMG_UINT32 ui32BridgeFlags;
533 IMG_HANDLE hDeviceClassBuffer;
534 IMG_HANDLE hDevMemContext;
536 }PVRSRV_BRIDGE_IN_MAP_DEVICECLASS_MEMORY;
540 typedef struct PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY_TAG
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;
549 }PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY;
553 typedef struct PVRSRV_BRIDGE_IN_UNMAP_DEVICECLASS_MEMORY_TAG
555 IMG_UINT32 ui32BridgeFlags;
556 PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
557 PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
558 PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
560 }PVRSRV_BRIDGE_IN_UNMAP_DEVICECLASS_MEMORY;
564 typedef struct PVRSRV_BRIDGE_IN_PDUMP_MEMPOL_TAG
566 IMG_UINT32 ui32BridgeFlags;
567 PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
568 IMG_UINT32 ui32Offset;
569 IMG_UINT32 ui32Value;
571 IMG_UINT32 ui32Flags;
573 }PVRSRV_BRIDGE_IN_PDUMP_MEMPOL;
576 typedef struct PVRSRV_BRIDGE_IN_PDUMP_SYNCPOL_TAG
578 IMG_UINT32 ui32BridgeFlags;
579 PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
581 IMG_UINT32 ui32Value;
584 }PVRSRV_BRIDGE_IN_PDUMP_SYNCPOL;
588 typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPMEM_TAG
590 IMG_UINT32 ui32BridgeFlags;
592 IMG_PVOID pvAltLinAddr;
593 PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
594 IMG_UINT32 ui32Offset;
595 IMG_UINT32 ui32Bytes;
596 IMG_UINT32 ui32Flags;
598 }PVRSRV_BRIDGE_IN_PDUMP_DUMPMEM;
602 typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPSYNC_TAG
604 IMG_UINT32 ui32BridgeFlags;
605 IMG_PVOID pvAltLinAddr;
606 PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
607 IMG_UINT32 ui32Offset;
608 IMG_UINT32 ui32Bytes;
610 }PVRSRV_BRIDGE_IN_PDUMP_DUMPSYNC;
614 typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPREG_TAG
616 IMG_UINT32 ui32BridgeFlags;
618 IMG_UINT32 ui32Flags;
620 }PVRSRV_BRIDGE_IN_PDUMP_DUMPREG;
623 typedef struct PVRSRV_BRIDGE_IN_PDUMP_REGPOL_TAG
625 IMG_UINT32 ui32BridgeFlags;
628 IMG_UINT32 ui32Flags;
629 }PVRSRV_BRIDGE_IN_PDUMP_REGPOL;
632 typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPPDREG_TAG
634 IMG_UINT32 ui32BridgeFlags;
636 IMG_UINT32 ui32Flags;
638 }PVRSRV_BRIDGE_IN_PDUMP_DUMPPDREG;
641 typedef struct PVRSRV_BRIDGE_IN_PDUMP_MEMPAGES_TAG
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;
652 }PVRSRV_BRIDGE_IN_PDUMP_MEMPAGES;
655 typedef struct PVRSRV_BRIDGE_IN_PDUMP_COMMENT_TAG
657 IMG_UINT32 ui32BridgeFlags;
658 IMG_CHAR szComment[PVRSRV_PDUMP_MAX_COMMENT_SIZE];
659 IMG_UINT32 ui32Flags;
661 }PVRSRV_BRIDGE_IN_PDUMP_COMMENT;
665 typedef struct PVRSRV_BRIDGE_IN_PDUMP_SETFRAME_TAG
667 IMG_UINT32 ui32BridgeFlags;
668 IMG_UINT32 ui32Frame;
670 }PVRSRV_BRIDGE_IN_PDUMP_SETFRAME;
675 typedef struct PVRSRV_BRIDGE_IN_PDUMP_BITMAP_TAG
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;
685 PDUMP_PIXEL_FORMAT ePixelFormat;
686 PDUMP_MEM_FORMAT eMemFormat;
687 IMG_UINT32 ui32Flags;
689 }PVRSRV_BRIDGE_IN_PDUMP_BITMAP;
693 typedef struct PVRSRV_BRIDGE_IN_PDUMP_READREG_TAG
695 IMG_UINT32 ui32BridgeFlags;
696 IMG_CHAR szFileName[PVRSRV_PDUMP_MAX_FILENAME_SIZE];
697 IMG_UINT32 ui32FileOffset;
698 IMG_UINT32 ui32Address;
700 IMG_UINT32 ui32Flags;
702 }PVRSRV_BRIDGE_IN_PDUMP_READREG;
705 typedef struct PVRSRV_BRIDGE_IN_PDUMP_DRIVERINFO_TAG
707 IMG_UINT32 ui32BridgeFlags;
708 IMG_CHAR szString[PVRSRV_PDUMP_MAX_COMMENT_SIZE];
709 IMG_BOOL bContinuous;
711 }PVRSRV_BRIDGE_IN_PDUMP_DRIVERINFO;
713 typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR_TAG
715 IMG_UINT32 ui32BridgeFlags;
716 IMG_HANDLE hKernelMemInfo;
717 IMG_UINT32 ui32Offset;
718 IMG_DEV_PHYADDR sPDDevPAddr;
719 }PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR;
722 typedef struct PVRSRV_BRIDGE_PDUM_IN_CYCLE_COUNT_REG_READ_TAG
724 IMG_UINT32 ui32BridgeFlags;
725 IMG_UINT32 ui32RegOffset;
727 }PVRSRV_BRIDGE_IN_PDUMP_CYCLE_COUNT_REG_READ;
730 typedef struct PVRSRV_BRIDGE_OUT_ENUMDEVICE_TAG
733 IMG_UINT32 ui32NumDevices;
734 PVRSRV_DEVICE_IDENTIFIER asDeviceIdentifier[PVRSRV_MAX_DEVICES];
736 }PVRSRV_BRIDGE_OUT_ENUMDEVICE;
740 typedef struct PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO_TAG
744 IMG_HANDLE hDevCookie;
746 } PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO;
750 typedef struct PVRSRV_BRIDGE_OUT_ENUMCLASS_TAG
753 IMG_UINT32 ui32NumDevices;
754 IMG_UINT32 ui32DevID[PVRSRV_MAX_DEVICES];
756 }PVRSRV_BRIDGE_OUT_ENUMCLASS;
760 typedef struct PVRSRV_BRIDGE_IN_OPEN_DISPCLASS_DEVICE_TAG
762 IMG_UINT32 ui32BridgeFlags;
763 IMG_UINT32 ui32DeviceID;
764 IMG_HANDLE hDevCookie;
766 }PVRSRV_BRIDGE_IN_OPEN_DISPCLASS_DEVICE;
769 typedef struct PVRSRV_BRIDGE_OUT_OPEN_DISPCLASS_DEVICE_TAG
772 IMG_HANDLE hDeviceKM;
774 }PVRSRV_BRIDGE_OUT_OPEN_DISPCLASS_DEVICE;
778 typedef struct PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY_TAG
780 IMG_UINT32 ui32BridgeFlags;
781 IMG_HANDLE hDevCookie;
782 IMG_HANDLE hDevMemContext;
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;
791 }PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY;
794 typedef struct PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY_TAG
797 PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
798 PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
800 }PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY;
803 typedef struct PVRSRV_BRIDGE_IN_UNWRAP_EXT_MEMORY_TAG
805 IMG_UINT32 ui32BridgeFlags;
806 IMG_HANDLE hKernelMemInfo;
807 PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
808 PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
810 }PVRSRV_BRIDGE_IN_UNWRAP_EXT_MEMORY;
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
819 typedef struct PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_FORMATS_TAG
822 IMG_UINT32 ui32Count;
823 DISPLAY_FORMAT asFormat[PVRSRV_MAX_DC_DISPLAY_FORMATS];
825 }PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_FORMATS;
829 typedef struct PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_DIMS_TAG
831 IMG_UINT32 ui32BridgeFlags;
832 IMG_HANDLE hDeviceKM;
833 DISPLAY_FORMAT sFormat;
835 }PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_DIMS;
839 typedef struct PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_DIMS_TAG
842 IMG_UINT32 ui32Count;
843 DISPLAY_DIMS asDim[PVRSRV_MAX_DC_DISPLAY_DIMENSIONS];
845 }PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_DIMS;
849 typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_INFO_TAG
852 DISPLAY_INFO sDisplayInfo;
854 }PVRSRV_BRIDGE_OUT_GET_DISPCLASS_INFO;
858 typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_SYSBUFFER_TAG
863 }PVRSRV_BRIDGE_OUT_GET_DISPCLASS_SYSBUFFER;
867 typedef struct PVRSRV_BRIDGE_IN_CREATE_DISPCLASS_SWAPCHAIN_TAG
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;
878 } PVRSRV_BRIDGE_IN_CREATE_DISPCLASS_SWAPCHAIN;
882 typedef struct PVRSRV_BRIDGE_OUT_CREATE_DISPCLASS_SWAPCHAIN_TAG
885 IMG_HANDLE hSwapChain;
886 IMG_UINT32 ui32SwapChainID;
888 } PVRSRV_BRIDGE_OUT_CREATE_DISPCLASS_SWAPCHAIN;
892 typedef struct PVRSRV_BRIDGE_IN_DESTROY_DISPCLASS_SWAPCHAIN_TAG
894 IMG_UINT32 ui32BridgeFlags;
895 IMG_HANDLE hDeviceKM;
896 IMG_HANDLE hSwapChain;
898 } PVRSRV_BRIDGE_IN_DESTROY_DISPCLASS_SWAPCHAIN;
902 typedef struct PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT_TAG
904 IMG_UINT32 ui32BridgeFlags;
905 IMG_HANDLE hDeviceKM;
906 IMG_HANDLE hSwapChain;
909 } PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT;
913 typedef struct PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY_TAG
915 IMG_UINT32 ui32BridgeFlags;
916 IMG_HANDLE hDeviceKM;
917 IMG_HANDLE hSwapChain;
918 IMG_UINT32 ui32CKColour;
920 } PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY;
924 typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_BUFFERS_TAG
926 IMG_UINT32 ui32BridgeFlags;
927 IMG_HANDLE hDeviceKM;
928 IMG_HANDLE hSwapChain;
930 } PVRSRV_BRIDGE_IN_GET_DISPCLASS_BUFFERS;
934 typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_BUFFERS_TAG
937 IMG_UINT32 ui32BufferCount;
938 IMG_HANDLE ahBuffer[PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS];
940 } PVRSRV_BRIDGE_OUT_GET_DISPCLASS_BUFFERS;
944 typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER_TAG
946 IMG_UINT32 ui32BridgeFlags;
947 IMG_HANDLE hDeviceKM;
949 IMG_UINT32 ui32SwapInterval;
950 IMG_HANDLE hPrivateTag;
951 IMG_UINT32 ui32ClipRectCount;
952 IMG_RECT sClipRect[PVRSRV_MAX_DC_CLIP_RECTS];
954 } PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER;
958 typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_SYSTEM_TAG
960 IMG_UINT32 ui32BridgeFlags;
961 IMG_HANDLE hDeviceKM;
962 IMG_HANDLE hSwapChain;
964 } PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_SYSTEM;
968 typedef struct PVRSRV_BRIDGE_IN_OPEN_BUFFERCLASS_DEVICE_TAG
970 IMG_UINT32 ui32BridgeFlags;
971 IMG_UINT32 ui32DeviceID;
972 IMG_HANDLE hDevCookie;
974 } PVRSRV_BRIDGE_IN_OPEN_BUFFERCLASS_DEVICE;
978 typedef struct PVRSRV_BRIDGE_OUT_OPEN_BUFFERCLASS_DEVICE_TAG
981 IMG_HANDLE hDeviceKM;
983 } PVRSRV_BRIDGE_OUT_OPEN_BUFFERCLASS_DEVICE;
987 typedef struct PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_INFO_TAG
990 BUFFER_INFO sBufferInfo;
992 } PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_INFO;
996 typedef struct PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_BUFFER_TAG
998 IMG_UINT32 ui32BridgeFlags;
999 IMG_HANDLE hDeviceKM;
1000 IMG_UINT32 ui32BufferIndex;
1002 } PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_BUFFER;
1006 typedef struct PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_BUFFER_TAG
1008 PVRSRV_ERROR eError;
1011 } PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_BUFFER;
1015 typedef struct PVRSRV_BRIDGE_OUT_GET_DEVMEM_HEAPINFO_TAG
1017 PVRSRV_ERROR eError;
1018 IMG_UINT32 ui32ClientHeapCount;
1019 PVRSRV_HEAP_INFO sHeapInfo[PVRSRV_MAX_CLIENT_HEAPS];
1021 } PVRSRV_BRIDGE_OUT_GET_DEVMEM_HEAPINFO;
1025 typedef struct PVRSRV_BRIDGE_OUT_CREATE_DEVMEMCONTEXT_TAG
1027 PVRSRV_ERROR eError;
1028 IMG_HANDLE hDevMemContext;
1029 IMG_UINT32 ui32ClientHeapCount;
1030 PVRSRV_HEAP_INFO sHeapInfo[PVRSRV_MAX_CLIENT_HEAPS];
1032 } PVRSRV_BRIDGE_OUT_CREATE_DEVMEMCONTEXT;
1036 typedef struct PVRSRV_BRIDGE_OUT_CREATE_DEVMEMHEAP_TAG
1038 PVRSRV_ERROR eError;
1039 IMG_HANDLE hDevMemHeap;
1041 } PVRSRV_BRIDGE_OUT_CREATE_DEVMEMHEAP;
1045 typedef struct PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM_TAG
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;
1053 } PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM;
1057 typedef struct PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM_TAG
1059 PVRSRV_ERROR eError;
1060 IMG_HANDLE hMemInfo;
1061 #if defined(SUPPORT_MEMINFO_IDS)
1062 IMG_UINT64 ui64Stamp;
1065 } PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM;
1068 typedef struct PVRSRV_BRIDGE_OUT_MAPMEMINFOTOUSER_TAG
1070 PVRSRV_ERROR eError;
1071 IMG_PVOID pvLinAddr;
1072 IMG_HANDLE hMappingInfo;
1074 }PVRSRV_BRIDGE_OUT_MAPMEMINFOTOUSER;
1078 typedef struct PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM_TAG
1080 PVRSRV_ERROR eError;
1081 IMG_SIZE_T ui32Total;
1082 IMG_SIZE_T ui32Free;
1083 IMG_SIZE_T ui32LargestBlock;
1085 } PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM;
1088 #include "pvrmmap.h"
1089 typedef struct PVRSRV_BRIDGE_OUT_MHANDLE_TO_MMAP_DATA_TAG
1091 PVRSRV_ERROR eError;
1094 IMG_UINT32 ui32MMapOffset;
1097 IMG_UINT32 ui32ByteOffset;
1100 IMG_UINT32 ui32RealByteSize;
1103 IMG_UINT32 ui32UserVAddr;
1105 } PVRSRV_BRIDGE_OUT_MHANDLE_TO_MMAP_DATA;
1107 typedef struct PVRSRV_BRIDGE_OUT_RELEASE_MMAP_DATA_TAG
1109 PVRSRV_ERROR eError;
1115 IMG_UINT32 ui32UserVAddr;
1118 IMG_UINT32 ui32RealByteSize;
1119 } PVRSRV_BRIDGE_OUT_RELEASE_MMAP_DATA;
1121 typedef struct PVRSRV_BRIDGE_IN_GET_MISC_INFO_TAG
1123 IMG_UINT32 ui32BridgeFlags;
1124 PVRSRV_MISC_INFO sMiscInfo;
1126 }PVRSRV_BRIDGE_IN_GET_MISC_INFO;
1130 typedef struct PVRSRV_BRIDGE_OUT_GET_MISC_INFO_TAG
1132 PVRSRV_ERROR eError;
1133 PVRSRV_MISC_INFO sMiscInfo;
1135 }PVRSRV_BRIDGE_OUT_GET_MISC_INFO;
1139 typedef struct PVRSRV_BRIDGE_IN_RELEASE_MISC_INFO_TAG
1141 IMG_UINT32 ui32BridgeFlags;
1142 PVRSRV_MISC_INFO sMiscInfo;
1144 }PVRSRV_BRIDGE_IN_RELEASE_MISC_INFO;
1148 typedef struct PVRSRV_BRIDGE_OUT_RELEASE_MISC_INFO_TAG
1150 PVRSRV_ERROR eError;
1151 PVRSRV_MISC_INFO sMiscInfo;
1153 }PVRSRV_BRIDGE_OUT_RELEASE_MISC_INFO;
1158 typedef struct PVRSRV_BRIDGE_OUT_PDUMP_ISCAPTURING_TAG
1160 PVRSRV_ERROR eError;
1161 IMG_BOOL bIsCapturing;
1163 } PVRSRV_BRIDGE_OUT_PDUMP_ISCAPTURING;
1166 typedef struct PVRSRV_BRIDGE_IN_GET_FB_STATS_TAG
1168 IMG_UINT32 ui32BridgeFlags;
1169 IMG_SIZE_T ui32Total;
1170 IMG_SIZE_T ui32Available;
1172 } PVRSRV_BRIDGE_IN_GET_FB_STATS;
1176 typedef struct PVRSRV_BRIDGE_IN_MAPPHYSTOUSERSPACE_TAG
1178 IMG_UINT32 ui32BridgeFlags;
1179 IMG_HANDLE hDevCookie;
1180 IMG_SYS_PHYADDR sSysPhysAddr;
1181 IMG_UINT32 uiSizeInBytes;
1183 } PVRSRV_BRIDGE_IN_MAPPHYSTOUSERSPACE;
1187 typedef struct PVRSRV_BRIDGE_OUT_MAPPHYSTOUSERSPACE_TAG
1189 IMG_PVOID pvUserAddr;
1190 IMG_UINT32 uiActualSize;
1191 IMG_PVOID pvProcess;
1193 } PVRSRV_BRIDGE_OUT_MAPPHYSTOUSERSPACE;
1197 typedef struct PVRSRV_BRIDGE_IN_UNMAPPHYSTOUSERSPACE_TAG
1199 IMG_UINT32 ui32BridgeFlags;
1200 IMG_HANDLE hDevCookie;
1201 IMG_PVOID pvUserAddr;
1202 IMG_PVOID pvProcess;
1204 } PVRSRV_BRIDGE_IN_UNMAPPHYSTOUSERSPACE;
1208 typedef struct PVRSRV_BRIDGE_OUT_GETPHYSTOUSERSPACEMAP_TAG
1211 IMG_UINT32 uiTblSize;
1213 } PVRSRV_BRIDGE_OUT_GETPHYSTOUSERSPACEMAP;
1217 typedef struct PVRSRV_BRIDGE_IN_REGISTER_SIM_PROCESS_TAG
1219 IMG_UINT32 ui32BridgeFlags;
1220 IMG_HANDLE hDevCookie;
1221 IMG_PVOID pvProcess;
1223 } PVRSRV_BRIDGE_IN_REGISTER_SIM_PROCESS;
1226 typedef struct PVRSRV_BRIDGE_OUT_REGISTER_SIM_PROCESS_TAG
1228 IMG_SYS_PHYADDR sRegsPhysBase;
1229 IMG_VOID *pvRegsBase;
1230 IMG_PVOID pvProcess;
1231 IMG_UINT32 ulNoOfEntries;
1232 IMG_PVOID pvTblLinAddr;
1234 } PVRSRV_BRIDGE_OUT_REGISTER_SIM_PROCESS;
1237 typedef struct PVRSRV_BRIDGE_IN_UNREGISTER_SIM_PROCESS_TAG
1239 IMG_UINT32 ui32BridgeFlags;
1240 IMG_HANDLE hDevCookie;
1241 IMG_PVOID pvProcess;
1242 IMG_VOID *pvRegsBase;
1244 } PVRSRV_BRIDGE_IN_UNREGISTER_SIM_PROCESS;
1246 typedef struct PVRSRV_BRIDGE_IN_PROCESS_SIMISR_EVENT_TAG
1248 IMG_UINT32 ui32BridgeFlags;
1249 IMG_HANDLE hDevCookie;
1250 IMG_UINT32 ui32StatusAndMask;
1251 PVRSRV_ERROR eError;
1253 } PVRSRV_BRIDGE_IN_PROCESS_SIMISR_EVENT;
1255 typedef struct PVRSRV_BRIDGE_IN_INITSRV_DISCONNECT_TAG
1257 IMG_UINT32 ui32BridgeFlags;
1258 IMG_BOOL bInitSuccesful;
1259 } PVRSRV_BRIDGE_IN_INITSRV_DISCONNECT;
1262 typedef struct PVRSRV_BRIDGE_IN_ALLOC_SHARED_SYS_MEM_TAG
1264 IMG_UINT32 ui32BridgeFlags;
1265 IMG_UINT32 ui32Flags;
1266 IMG_SIZE_T ui32Size;
1267 }PVRSRV_BRIDGE_IN_ALLOC_SHARED_SYS_MEM;
1269 typedef struct PVRSRV_BRIDGE_OUT_ALLOC_SHARED_SYS_MEM_TAG
1271 PVRSRV_ERROR eError;
1272 PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
1273 PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
1274 }PVRSRV_BRIDGE_OUT_ALLOC_SHARED_SYS_MEM;
1276 typedef struct PVRSRV_BRIDGE_IN_FREE_SHARED_SYS_MEM_TAG
1278 IMG_UINT32 ui32BridgeFlags;
1279 PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
1280 PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
1281 }PVRSRV_BRIDGE_IN_FREE_SHARED_SYS_MEM;
1283 typedef struct PVRSRV_BRIDGE_OUT_FREE_SHARED_SYS_MEM_TAG
1285 PVRSRV_ERROR eError;
1286 }PVRSRV_BRIDGE_OUT_FREE_SHARED_SYS_MEM;
1288 typedef struct PVRSRV_BRIDGE_IN_MAP_MEMINFO_MEM_TAG
1290 IMG_UINT32 ui32BridgeFlags;
1291 IMG_HANDLE hKernelMemInfo;
1292 }PVRSRV_BRIDGE_IN_MAP_MEMINFO_MEM;
1294 typedef struct PVRSRV_BRIDGE_OUT_MAP_MEMINFO_MEM_TAG
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;
1303 typedef struct PVRSRV_BRIDGE_IN_UNMAP_MEMINFO_MEM_TAG
1305 IMG_UINT32 ui32BridgeFlags;
1306 PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
1307 }PVRSRV_BRIDGE_IN_UNMAP_MEMINFO_MEM;
1309 typedef struct PVRSRV_BRIDGE_OUT_UNMAP_MEMINFO_MEM_TAG
1311 PVRSRV_ERROR eError;
1312 }PVRSRV_BRIDGE_OUT_UNMAP_MEMINFO_MEM;
1314 typedef struct PVRSRV_BRIDGE_IN_GETMMU_PD_DEVPADDR_TAG
1316 IMG_UINT32 ui32BridgeFlags;
1317 IMG_HANDLE hDevMemContext;
1318 }PVRSRV_BRIDGE_IN_GETMMU_PD_DEVPADDR;
1320 typedef struct PVRSRV_BRIDGE_OUT_GETMMU_PD_DEVPADDR_TAG
1322 IMG_DEV_PHYADDR sPDDevPAddr;
1323 PVRSRV_ERROR eError;
1324 }PVRSRV_BRIDGE_OUT_GETMMU_PD_DEVPADDR;
1326 typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_WAI_TAG
1328 IMG_UINT32 ui32BridgeFlags;
1329 IMG_HANDLE hOSEventKM;
1330 } PVRSRV_BRIDGE_IN_EVENT_OBJECT_WAIT;
1332 typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_OPEN_TAG
1334 PVRSRV_EVENTOBJECT sEventObject;
1335 } PVRSRV_BRIDGE_IN_EVENT_OBJECT_OPEN;
1337 typedef struct PVRSRV_BRIDGE_OUT_EVENT_OBJECT_OPEN_TAG
1339 IMG_HANDLE hOSEvent;
1340 PVRSRV_ERROR eError;
1341 } PVRSRV_BRIDGE_OUT_EVENT_OBJECT_OPEN;
1343 typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE_TAG
1345 PVRSRV_EVENTOBJECT sEventObject;
1346 IMG_HANDLE hOSEventKM;
1347 } PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE;
1349 typedef struct PVRSRV_BRIDGE_IN_MODIFY_PENDING_SYNC_OPS_TAG
1351 IMG_UINT32 ui32BridgeFlags;
1352 IMG_HANDLE hKernelSyncInfo;
1353 IMG_UINT32 ui32ModifyFlags;
1355 } PVRSRV_BRIDGE_IN_MODIFY_PENDING_SYNC_OPS;
1357 typedef struct PVRSRV_BRIDGE_IN_MODIFY_COMPLETE_SYNC_OPS_TAG
1359 IMG_UINT32 ui32BridgeFlags;
1360 IMG_HANDLE hKernelSyncInfo;
1361 IMG_UINT32 ui32ModifyFlags;
1363 } PVRSRV_BRIDGE_IN_MODIFY_COMPLETE_SYNC_OPS;
1365 typedef struct PVRSRV_BRIDGE_OUT_MODIFY_PENDING_SYNC_OPS_TAG
1367 PVRSRV_ERROR eError;
1370 IMG_UINT32 ui32ReadOpsPending;
1371 IMG_UINT32 ui32WriteOpsPending;
1373 } PVRSRV_BRIDGE_OUT_MODIFY_PENDING_SYNC_OPS;
1375 #if defined (__cplusplus)