1
/**********************************************************************
3
* Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
5
* This program is free software; you can redistribute it and/or modify it
6
* under the terms and conditions of the GNU General Public License,
7
* version 2, as published by the Free Software Foundation.
9
* This program is distributed in the hope it will be useful but, except
10
* as otherwise stated in writing, without any warranty; without even the
11
* implied warranty of merchantability or fitness for a particular purpose.
12
* See the GNU General Public License for more details.
14
* You should have received a copy of the GNU General Public License along with
15
* this program; if not, write to the Free Software Foundation, Inc.,
16
* 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
18
* The full GNU General Public License is included in this distribution in
19
* the file called "COPYING".
21
* Contact Information:
22
* Imagination Technologies Ltd. <gpl-support@imgtec.com>
23
* Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK
25
******************************************************************************/
27
#ifndef __PVR_BRIDGE_H__
28
#define __PVR_BRIDGE_H__
30
#if defined (__cplusplus)
34
#include "servicesint.h"
38
#include <linux/ioctl.h>
40
#define PVRSRV_IOC_GID 'g'
41
#define PVRSRV_IO(INDEX) _IO(PVRSRV_IOC_GID, INDEX, PVRSRV_BRIDGE_PACKAGE)
42
#define PVRSRV_IOW(INDEX) _IOW(PVRSRV_IOC_GID, INDEX, PVRSRV_BRIDGE_PACKAGE)
43
#define PVRSRV_IOR(INDEX) _IOR(PVRSRV_IOC_GID, INDEX, PVRSRV_BRIDGE_PACKAGE)
44
#define PVRSRV_IOWR(INDEX) _IOWR(PVRSRV_IOC_GID, INDEX, PVRSRV_BRIDGE_PACKAGE)
48
#error Unknown platform: Cannot define ioctls
50
#define PVRSRV_IO(INDEX) (PVRSRV_IOC_GID + INDEX)
51
#define PVRSRV_IOW(INDEX) (PVRSRV_IOC_GID + INDEX)
52
#define PVRSRV_IOR(INDEX) (PVRSRV_IOC_GID + INDEX)
53
#define PVRSRV_IOWR(INDEX) (PVRSRV_IOC_GID + INDEX)
55
#define PVRSRV_BRIDGE_BASE PVRSRV_IOC_GID
59
#define PVRSRV_BRIDGE_CORE_CMD_FIRST 0UL
60
#define PVRSRV_BRIDGE_ENUM_DEVICES PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+0)
61
#define PVRSRV_BRIDGE_ACQUIRE_DEVICEINFO PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+1)
62
#define PVRSRV_BRIDGE_RELEASE_DEVICEINFO PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+2)
63
#define PVRSRV_BRIDGE_CREATE_DEVMEMCONTEXT PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+3)
64
#define PVRSRV_BRIDGE_DESTROY_DEVMEMCONTEXT PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+4)
65
#define PVRSRV_BRIDGE_GET_DEVMEM_HEAPINFO PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+5)
66
#define PVRSRV_BRIDGE_ALLOC_DEVICEMEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+6)
67
#define PVRSRV_BRIDGE_FREE_DEVICEMEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+7)
68
#define PVRSRV_BRIDGE_GETFREE_DEVICEMEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+8)
69
#define PVRSRV_BRIDGE_CREATE_COMMANDQUEUE PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+9)
70
#define PVRSRV_BRIDGE_DESTROY_COMMANDQUEUE PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+10)
71
#define PVRSRV_BRIDGE_MHANDLE_TO_MMAP_DATA PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+11)
72
#define PVRSRV_BRIDGE_CONNECT_SERVICES PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+12)
73
#define PVRSRV_BRIDGE_DISCONNECT_SERVICES PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+13)
74
#define PVRSRV_BRIDGE_WRAP_DEVICE_MEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+14)
75
#define PVRSRV_BRIDGE_GET_DEVICEMEMINFO PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+15)
76
#define PVRSRV_BRIDGE_RESERVE_DEV_VIRTMEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+16)
77
#define PVRSRV_BRIDGE_FREE_DEV_VIRTMEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+17)
78
#define PVRSRV_BRIDGE_MAP_EXT_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+18)
79
#define PVRSRV_BRIDGE_UNMAP_EXT_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+19)
80
#define PVRSRV_BRIDGE_MAP_DEV_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+20)
81
#define PVRSRV_BRIDGE_UNMAP_DEV_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+21)
82
#define PVRSRV_BRIDGE_MAP_DEVICECLASS_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+22)
83
#define PVRSRV_BRIDGE_UNMAP_DEVICECLASS_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+23)
84
#define PVRSRV_BRIDGE_MAP_MEM_INFO_TO_USER PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+24)
85
#define PVRSRV_BRIDGE_UNMAP_MEM_INFO_FROM_USER PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+25)
86
#define PVRSRV_BRIDGE_EXPORT_DEVICEMEM PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+26)
87
#define PVRSRV_BRIDGE_RELEASE_MMAP_DATA PVRSRV_IOWR(PVRSRV_BRIDGE_CORE_CMD_FIRST+27)
88
#define PVRSRV_BRIDGE_CORE_CMD_LAST (PVRSRV_BRIDGE_CORE_CMD_FIRST+27)
90
#define PVRSRV_BRIDGE_SIM_CMD_FIRST (PVRSRV_BRIDGE_CORE_CMD_LAST+1)
91
#define PVRSRV_BRIDGE_PROCESS_SIMISR_EVENT PVRSRV_IOWR(PVRSRV_BRIDGE_SIM_CMD_FIRST+0)
92
#define PVRSRV_BRIDGE_REGISTER_SIM_PROCESS PVRSRV_IOWR(PVRSRV_BRIDGE_SIM_CMD_FIRST+1)
93
#define PVRSRV_BRIDGE_UNREGISTER_SIM_PROCESS PVRSRV_IOWR(PVRSRV_BRIDGE_SIM_CMD_FIRST+2)
94
#define PVRSRV_BRIDGE_SIM_CMD_LAST (PVRSRV_BRIDGE_SIM_CMD_FIRST+2)
96
#define PVRSRV_BRIDGE_MAPPING_CMD_FIRST (PVRSRV_BRIDGE_SIM_CMD_LAST+1)
97
#define PVRSRV_BRIDGE_MAPPHYSTOUSERSPACE PVRSRV_IOWR(PVRSRV_BRIDGE_MAPPING_CMD_FIRST+0)
98
#define PVRSRV_BRIDGE_UNMAPPHYSTOUSERSPACE PVRSRV_IOWR(PVRSRV_BRIDGE_MAPPING_CMD_FIRST+1)
99
#define PVRSRV_BRIDGE_GETPHYSTOUSERSPACEMAP PVRSRV_IOWR(PVRSRV_BRIDGE_MAPPING_CMD_FIRST+2)
100
#define PVRSRV_BRIDGE_MAPPING_CMD_LAST (PVRSRV_BRIDGE_MAPPING_CMD_FIRST+2)
102
#define PVRSRV_BRIDGE_STATS_CMD_FIRST (PVRSRV_BRIDGE_MAPPING_CMD_LAST+1)
103
#define PVRSRV_BRIDGE_GET_FB_STATS PVRSRV_IOWR(PVRSRV_BRIDGE_STATS_CMD_FIRST+0)
104
#define PVRSRV_BRIDGE_STATS_CMD_LAST (PVRSRV_BRIDGE_STATS_CMD_FIRST+0)
106
#define PVRSRV_BRIDGE_MISC_CMD_FIRST (PVRSRV_BRIDGE_STATS_CMD_LAST+1)
107
#define PVRSRV_BRIDGE_GET_MISC_INFO PVRSRV_IOWR(PVRSRV_BRIDGE_MISC_CMD_FIRST+0)
108
#define PVRSRV_BRIDGE_RELEASE_MISC_INFO PVRSRV_IOWR(PVRSRV_BRIDGE_MISC_CMD_FIRST+1)
109
#define PVRSRV_BRIDGE_MISC_CMD_LAST (PVRSRV_BRIDGE_MISC_CMD_FIRST+1)
111
#define PVRSRV_BRIDGE_OVERLAY_CMD_FIRST (PVRSRV_BRIDGE_MISC_CMD_LAST+1)
112
#if defined (SUPPORT_OVERLAY_ROTATE_BLIT)
113
#define PVRSRV_BRIDGE_INIT_3D_OVL_BLT_RES PVRSRV_IOWR(PVRSRV_BRIDGE_OVERLAY_CMD_FIRST+0)
114
#define PVRSRV_BRIDGE_DEINIT_3D_OVL_BLT_RES PVRSRV_IOWR(PVRSRV_BRIDGE_OVERLAY_CMD_FIRST+1)
116
#define PVRSRV_BRIDGE_OVERLAY_CMD_LAST (PVRSRV_BRIDGE_OVERLAY_CMD_FIRST+1)
119
#define PVRSRV_BRIDGE_PDUMP_CMD_FIRST (PVRSRV_BRIDGE_OVERLAY_CMD_FIRST+1)
120
#define PVRSRV_BRIDGE_PDUMP_INIT PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+0)
121
#define PVRSRV_BRIDGE_PDUMP_MEMPOL PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+1)
122
#define PVRSRV_BRIDGE_PDUMP_DUMPMEM PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+2)
123
#define PVRSRV_BRIDGE_PDUMP_REG PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+3)
124
#define PVRSRV_BRIDGE_PDUMP_REGPOL PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+4)
125
#define PVRSRV_BRIDGE_PDUMP_COMMENT PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+5)
126
#define PVRSRV_BRIDGE_PDUMP_SETFRAME PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+6)
127
#define PVRSRV_BRIDGE_PDUMP_ISCAPTURING PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+7)
128
#define PVRSRV_BRIDGE_PDUMP_DUMPBITMAP PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+8)
129
#define PVRSRV_BRIDGE_PDUMP_DUMPREADREG PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+9)
130
#define PVRSRV_BRIDGE_PDUMP_SYNCPOL PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+10)
131
#define PVRSRV_BRIDGE_PDUMP_DUMPSYNC PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+11)
132
#define PVRSRV_BRIDGE_PDUMP_MEMPAGES PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+12)
133
#define PVRSRV_BRIDGE_PDUMP_DRIVERINFO PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+13)
134
#define PVRSRV_BRIDGE_PDUMP_PDREG PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+14)
135
#define PVRSRV_BRIDGE_PDUMP_DUMPPDDEVPADDR PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+15)
136
#define PVRSRV_BRIDGE_PDUMP_CYCLE_COUNT_REG_READ PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+16)
137
#define PVRSRV_BRIDGE_PDUMP_STARTINITPHASE PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+17)
138
#define PVRSRV_BRIDGE_PDUMP_STOPINITPHASE PVRSRV_IOWR(PVRSRV_BRIDGE_PDUMP_CMD_FIRST+18)
139
#define PVRSRV_BRIDGE_PDUMP_CMD_LAST (PVRSRV_BRIDGE_PDUMP_CMD_FIRST+18)
141
#define PVRSRV_BRIDGE_PDUMP_CMD_LAST PVRSRV_BRIDGE_OVERLAY_CMD_LAST
144
#define PVRSRV_BRIDGE_OEM_CMD_FIRST (PVRSRV_BRIDGE_PDUMP_CMD_LAST+1)
145
#define PVRSRV_BRIDGE_GET_OEMJTABLE PVRSRV_IOWR(PVRSRV_BRIDGE_OEM_CMD_FIRST+0)
146
#define PVRSRV_BRIDGE_OEM_CMD_LAST (PVRSRV_BRIDGE_OEM_CMD_FIRST+0)
148
#define PVRSRV_BRIDGE_DEVCLASS_CMD_FIRST (PVRSRV_BRIDGE_OEM_CMD_LAST+1)
149
#define PVRSRV_BRIDGE_ENUM_CLASS PVRSRV_IOWR(PVRSRV_BRIDGE_DEVCLASS_CMD_FIRST+0)
150
#define PVRSRV_BRIDGE_DEVCLASS_CMD_LAST (PVRSRV_BRIDGE_DEVCLASS_CMD_FIRST+0)
152
#define PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST (PVRSRV_BRIDGE_DEVCLASS_CMD_LAST+1)
153
#define PVRSRV_BRIDGE_OPEN_DISPCLASS_DEVICE PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+0)
154
#define PVRSRV_BRIDGE_CLOSE_DISPCLASS_DEVICE PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+1)
155
#define PVRSRV_BRIDGE_ENUM_DISPCLASS_FORMATS PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+2)
156
#define PVRSRV_BRIDGE_ENUM_DISPCLASS_DIMS PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+3)
157
#define PVRSRV_BRIDGE_GET_DISPCLASS_SYSBUFFER PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+4)
158
#define PVRSRV_BRIDGE_GET_DISPCLASS_INFO PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+5)
159
#define PVRSRV_BRIDGE_CREATE_DISPCLASS_SWAPCHAIN PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+6)
160
#define PVRSRV_BRIDGE_DESTROY_DISPCLASS_SWAPCHAIN PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+7)
161
#define PVRSRV_BRIDGE_SET_DISPCLASS_DSTRECT PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+8)
162
#define PVRSRV_BRIDGE_SET_DISPCLASS_SRCRECT PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+9)
163
#define PVRSRV_BRIDGE_SET_DISPCLASS_DSTCOLOURKEY PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+10)
164
#define PVRSRV_BRIDGE_SET_DISPCLASS_SRCCOLOURKEY PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+11)
165
#define PVRSRV_BRIDGE_GET_DISPCLASS_BUFFERS PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+12)
166
#define PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_BUFFER PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+13)
167
#define PVRSRV_BRIDGE_SWAP_DISPCLASS_TO_SYSTEM PVRSRV_IOWR(PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+14)
168
#define PVRSRV_BRIDGE_DISPCLASS_CMD_LAST (PVRSRV_BRIDGE_DISPCLASS_CMD_FIRST+14)
171
#define PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST (PVRSRV_BRIDGE_DISPCLASS_CMD_LAST+1)
172
#define PVRSRV_BRIDGE_OPEN_BUFFERCLASS_DEVICE PVRSRV_IOWR(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+0)
173
#define PVRSRV_BRIDGE_CLOSE_BUFFERCLASS_DEVICE PVRSRV_IOWR(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+1)
174
#define PVRSRV_BRIDGE_GET_BUFFERCLASS_INFO PVRSRV_IOWR(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+2)
175
#define PVRSRV_BRIDGE_GET_BUFFERCLASS_BUFFER PVRSRV_IOWR(PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+3)
176
#define PVRSRV_BRIDGE_BUFCLASS_CMD_LAST (PVRSRV_BRIDGE_BUFCLASS_CMD_FIRST+3)
178
#define PVRSRV_BRIDGE_WRAP_CMD_FIRST (PVRSRV_BRIDGE_BUFCLASS_CMD_LAST+1)
179
#define PVRSRV_BRIDGE_WRAP_EXT_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_WRAP_CMD_FIRST+0)
180
#define PVRSRV_BRIDGE_UNWRAP_EXT_MEMORY PVRSRV_IOWR(PVRSRV_BRIDGE_WRAP_CMD_FIRST+1)
181
#define PVRSRV_BRIDGE_WRAP_CMD_LAST (PVRSRV_BRIDGE_WRAP_CMD_FIRST+1)
183
#define PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST (PVRSRV_BRIDGE_WRAP_CMD_LAST+1)
184
#define PVRSRV_BRIDGE_ALLOC_SHARED_SYS_MEM PVRSRV_IOWR(PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+0)
185
#define PVRSRV_BRIDGE_FREE_SHARED_SYS_MEM PVRSRV_IOWR(PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+1)
186
#define PVRSRV_BRIDGE_MAP_MEMINFO_MEM PVRSRV_IOWR(PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+2)
187
#define PVRSRV_BRIDGE_UNMAP_MEMINFO_MEM PVRSRV_IOWR(PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+3)
188
#define PVRSRV_BRIDGE_SHAREDMEM_CMD_LAST (PVRSRV_BRIDGE_SHAREDMEM_CMD_FIRST+3)
190
#define PVRSRV_BRIDGE_SERVICES4_TMP_CMD_FIRST (PVRSRV_BRIDGE_SHAREDMEM_CMD_LAST+1)
191
#define PVRSRV_BRIDGE_GETMMU_PD_DEVPADDR PVRSRV_IOWR(PVRSRV_BRIDGE_SERVICES4_TMP_CMD_FIRST+0)
192
#define PVRSRV_BRIDGE_SERVICES4_TMP_CMD_LAST (PVRSRV_BRIDGE_SERVICES4_TMP_CMD_FIRST+0)
194
#define PVRSRV_BRIDGE_INITSRV_CMD_FIRST (PVRSRV_BRIDGE_SERVICES4_TMP_CMD_LAST+1)
195
#define PVRSRV_BRIDGE_INITSRV_CONNECT PVRSRV_IOWR(PVRSRV_BRIDGE_INITSRV_CMD_FIRST+0)
196
#define PVRSRV_BRIDGE_INITSRV_DISCONNECT PVRSRV_IOWR(PVRSRV_BRIDGE_INITSRV_CMD_FIRST+1)
197
#define PVRSRV_BRIDGE_INITSRV_CMD_LAST (PVRSRV_BRIDGE_INITSRV_CMD_FIRST+1)
199
#define PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST (PVRSRV_BRIDGE_INITSRV_CMD_LAST+1)
200
#define PVRSRV_BRIDGE_EVENT_OBJECT_WAIT PVRSRV_IOWR(PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+0)
201
#define PVRSRV_BRIDGE_EVENT_OBJECT_OPEN PVRSRV_IOWR(PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+1)
202
#define PVRSRV_BRIDGE_EVENT_OBJECT_CLOSE PVRSRV_IOWR(PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+2)
203
#define PVRSRV_BRIDGE_EVENT_OBJECT_CMD_LAST (PVRSRV_BRIDGE_EVENT_OBJECT_CMD_FIRST+2)
205
#define PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST (PVRSRV_BRIDGE_EVENT_OBJECT_CMD_LAST+1)
206
#define PVRSRV_BRIDGE_MODIFY_PENDING_SYNC_OPS PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+0)
207
#define PVRSRV_BRIDGE_MODIFY_COMPLETE_SYNC_OPS PVRSRV_IOWR(PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+1)
208
#define PVRSRV_BRIDGE_SYNC_OPS_CMD_LAST (PVRSRV_BRIDGE_SYNC_OPS_CMD_FIRST+1)
210
#define PVRSRV_BRIDGE_LAST_NON_DEVICE_CMD (PVRSRV_BRIDGE_SYNC_OPS_CMD_LAST+1)
213
#define PVRSRV_KERNEL_MODE_CLIENT 1
215
typedef struct PVRSRV_BRIDGE_RETURN_TAG
220
}PVRSRV_BRIDGE_RETURN;
223
typedef struct PVRSRV_BRIDGE_PACKAGE_TAG
225
IMG_UINT32 ui32BridgeID;
228
IMG_UINT32 ui32InBufferSize;
229
IMG_VOID *pvParamOut;
230
IMG_UINT32 ui32OutBufferSize;
232
IMG_HANDLE hKernelServices;
233
}PVRSRV_BRIDGE_PACKAGE;
239
typedef struct PVRSRV_BRIDGE_IN_ACQUIRE_DEVICEINFO_TAG
241
IMG_UINT32 ui32BridgeFlags;
242
IMG_UINT32 uiDevIndex;
243
PVRSRV_DEVICE_TYPE eDeviceType;
245
} PVRSRV_BRIDGE_IN_ACQUIRE_DEVICEINFO;
248
typedef struct PVRSRV_BRIDGE_IN_ENUMCLASS_TAG
250
IMG_UINT32 ui32BridgeFlags;
251
PVRSRV_DEVICE_CLASS sDeviceClass;
252
} PVRSRV_BRIDGE_IN_ENUMCLASS;
255
typedef struct PVRSRV_BRIDGE_IN_CLOSE_DISPCLASS_DEVICE_TAG
257
IMG_UINT32 ui32BridgeFlags;
258
IMG_HANDLE hDeviceKM;
259
} PVRSRV_BRIDGE_IN_CLOSE_DISPCLASS_DEVICE;
262
typedef struct PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_FORMATS_TAG
264
IMG_UINT32 ui32BridgeFlags;
265
IMG_HANDLE hDeviceKM;
266
} PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_FORMATS;
269
typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_SYSBUFFER_TAG
271
IMG_UINT32 ui32BridgeFlags;
272
IMG_HANDLE hDeviceKM;
273
} PVRSRV_BRIDGE_IN_GET_DISPCLASS_SYSBUFFER;
276
typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_INFO_TAG
278
IMG_UINT32 ui32BridgeFlags;
279
IMG_HANDLE hDeviceKM;
280
} PVRSRV_BRIDGE_IN_GET_DISPCLASS_INFO;
283
typedef struct PVRSRV_BRIDGE_IN_CLOSE_BUFFERCLASS_DEVICE_TAG
285
IMG_UINT32 ui32BridgeFlags;
286
IMG_HANDLE hDeviceKM;
287
} PVRSRV_BRIDGE_IN_CLOSE_BUFFERCLASS_DEVICE;
290
typedef struct PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_INFO_TAG
292
IMG_UINT32 ui32BridgeFlags;
293
IMG_HANDLE hDeviceKM;
294
} PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_INFO;
298
typedef struct PVRSRV_BRIDGE_IN_RELEASE_DEVICEINFO_TAG
300
IMG_UINT32 ui32BridgeFlags;
301
IMG_HANDLE hDevCookie;
303
} PVRSRV_BRIDGE_IN_RELEASE_DEVICEINFO;
307
typedef struct PVRSRV_BRIDGE_IN_FREE_CLASSDEVICEINFO_TAG
309
IMG_UINT32 ui32BridgeFlags;
310
PVRSRV_DEVICE_CLASS DeviceClass;
313
}PVRSRV_BRIDGE_IN_FREE_CLASSDEVICEINFO;
317
typedef struct PVRSRV_BRIDGE_IN_GET_DEVMEM_HEAPINFO_TAG
319
IMG_UINT32 ui32BridgeFlags;
320
IMG_HANDLE hDevCookie;
321
IMG_HANDLE hDevMemContext;
323
}PVRSRV_BRIDGE_IN_GET_DEVMEM_HEAPINFO;
327
typedef struct PVRSRV_BRIDGE_IN_CREATE_DEVMEMCONTEXT_TAG
329
IMG_UINT32 ui32BridgeFlags;
330
IMG_HANDLE hDevCookie;
332
}PVRSRV_BRIDGE_IN_CREATE_DEVMEMCONTEXT;
336
typedef struct PVRSRV_BRIDGE_IN_DESTROY_DEVMEMCONTEXT_TAG
338
IMG_UINT32 ui32BridgeFlags;
339
IMG_HANDLE hDevCookie;
340
IMG_HANDLE hDevMemContext;
342
}PVRSRV_BRIDGE_IN_DESTROY_DEVMEMCONTEXT;
346
typedef struct PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM_TAG
348
IMG_UINT32 ui32BridgeFlags;
349
IMG_HANDLE hDevCookie;
350
IMG_HANDLE hDevMemHeap;
351
IMG_UINT32 ui32Attribs;
353
IMG_SIZE_T ui32Alignment;
355
}PVRSRV_BRIDGE_IN_ALLOCDEVICEMEM;
358
typedef struct PVRSRV_BRIDGE_IN_MAPMEMINFOTOUSER_TAG
360
IMG_UINT32 ui32BridgeFlags;
361
PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
363
}PVRSRV_BRIDGE_IN_MAPMEMINFOTOUSER;
366
typedef struct PVRSRV_BRIDGE_IN_UNMAPMEMINFOFROMUSER_TAG
368
IMG_UINT32 ui32BridgeFlags;
369
PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
371
IMG_HANDLE hMappingInfo;
373
}PVRSRV_BRIDGE_IN_UNMAPMEMINFOFROMUSER;
376
typedef struct PVRSRV_BRIDGE_IN_FREEDEVICEMEM_TAG
378
IMG_UINT32 ui32BridgeFlags;
379
IMG_HANDLE hDevCookie;
380
PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
381
PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
383
}PVRSRV_BRIDGE_IN_FREEDEVICEMEM;
386
typedef struct PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM_TAG
388
IMG_UINT32 ui32BridgeFlags;
389
IMG_HANDLE hDevCookie;
390
PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
392
}PVRSRV_BRIDGE_IN_EXPORTDEVICEMEM;
395
typedef struct PVRSRV_BRIDGE_IN_GETFREEDEVICEMEM_TAG
397
IMG_UINT32 ui32BridgeFlags;
398
IMG_UINT32 ui32Flags;
400
} PVRSRV_BRIDGE_IN_GETFREEDEVICEMEM;
403
typedef struct PVRSRV_BRIDGE_IN_CREATECOMMANDQUEUE_TAG
405
IMG_UINT32 ui32BridgeFlags;
406
IMG_HANDLE hDevCookie;
407
IMG_SIZE_T ui32QueueSize;
409
}PVRSRV_BRIDGE_IN_CREATECOMMANDQUEUE;
413
typedef struct PVRSRV_BRIDGE_IN_DESTROYCOMMANDQUEUE_TAG
415
IMG_UINT32 ui32BridgeFlags;
416
IMG_HANDLE hDevCookie;
417
PVRSRV_QUEUE_INFO *psQueueInfo;
419
}PVRSRV_BRIDGE_IN_DESTROYCOMMANDQUEUE;
423
typedef struct PVRSRV_BRIDGE_IN_MHANDLE_TO_MMAP_DATA_TAG
425
IMG_UINT32 ui32BridgeFlags;
427
} PVRSRV_BRIDGE_IN_MHANDLE_TO_MMAP_DATA;
431
typedef struct PVRSRV_BRIDGE_IN_RELEASE_MMAP_DATA_TAG
433
IMG_UINT32 ui32BridgeFlags;
435
} PVRSRV_BRIDGE_IN_RELEASE_MMAP_DATA;
439
typedef struct PVRSRV_BRIDGE_IN_RESERVE_DEV_VIRTMEM_TAG
441
IMG_UINT32 ui32BridgeFlags;
442
IMG_HANDLE hDevMemHeap;
443
IMG_DEV_VIRTADDR *psDevVAddr;
445
IMG_SIZE_T ui32Alignment;
447
}PVRSRV_BRIDGE_IN_RESERVE_DEV_VIRTMEM;
450
typedef struct PVRSRV_BRIDGE_OUT_CONNECT_SERVICES_TAG
453
IMG_HANDLE hKernelServices;
454
}PVRSRV_BRIDGE_OUT_CONNECT_SERVICES;
457
typedef struct PVRSRV_BRIDGE_OUT_RESERVE_DEV_VIRTMEM_TAG
460
PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
461
PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
462
PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
463
PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
465
}PVRSRV_BRIDGE_OUT_RESERVE_DEV_VIRTMEM;
469
typedef struct PVRSRV_BRIDGE_IN_FREE_DEV_VIRTMEM_TAG
471
IMG_UINT32 ui32BridgeFlags;
472
PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
473
PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
474
PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
476
}PVRSRV_BRIDGE_IN_FREE_DEV_VIRTMEM;
480
typedef struct PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY_TAG
482
IMG_UINT32 ui32BridgeFlags;
483
IMG_HANDLE hKernelMemInfo;
484
IMG_HANDLE hDstDevMemHeap;
486
}PVRSRV_BRIDGE_IN_MAP_DEV_MEMORY;
490
typedef struct PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY_TAG
493
PVRSRV_KERNEL_MEM_INFO *psDstKernelMemInfo;
494
PVRSRV_KERNEL_SYNC_INFO *psDstKernelSyncInfo;
495
PVRSRV_CLIENT_MEM_INFO sDstClientMemInfo;
496
PVRSRV_CLIENT_SYNC_INFO sDstClientSyncInfo;
498
}PVRSRV_BRIDGE_OUT_MAP_DEV_MEMORY;
502
typedef struct PVRSRV_BRIDGE_IN_UNMAP_DEV_MEMORY_TAG
504
IMG_UINT32 ui32BridgeFlags;
505
PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
506
PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
507
PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
509
}PVRSRV_BRIDGE_IN_UNMAP_DEV_MEMORY;
513
typedef struct PVRSRV_BRIDGE_IN_MAP_EXT_MEMORY_TAG
515
IMG_UINT32 ui32BridgeFlags;
516
PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
517
IMG_SYS_PHYADDR *psSysPAddr;
518
IMG_UINT32 ui32Flags;
520
}PVRSRV_BRIDGE_IN_MAP_EXT_MEMORY;
523
typedef struct PVRSRV_BRIDGE_IN_UNMAP_EXT_MEMORY_TAG
525
IMG_UINT32 ui32BridgeFlags;
526
PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
527
PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
528
IMG_UINT32 ui32Flags;
530
}PVRSRV_BRIDGE_IN_UNMAP_EXT_MEMORY;
533
typedef struct PVRSRV_BRIDGE_IN_MAP_DEVICECLASS_MEMORY_TAG
535
IMG_UINT32 ui32BridgeFlags;
536
IMG_HANDLE hDeviceClassBuffer;
537
IMG_HANDLE hDevMemContext;
539
}PVRSRV_BRIDGE_IN_MAP_DEVICECLASS_MEMORY;
543
typedef struct PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY_TAG
546
PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
547
PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
548
PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
549
PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
550
IMG_HANDLE hMappingInfo;
552
}PVRSRV_BRIDGE_OUT_MAP_DEVICECLASS_MEMORY;
556
typedef struct PVRSRV_BRIDGE_IN_UNMAP_DEVICECLASS_MEMORY_TAG
558
IMG_UINT32 ui32BridgeFlags;
559
PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
560
PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
561
PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
563
}PVRSRV_BRIDGE_IN_UNMAP_DEVICECLASS_MEMORY;
567
typedef struct PVRSRV_BRIDGE_IN_PDUMP_MEMPOL_TAG
569
IMG_UINT32 ui32BridgeFlags;
570
PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
571
IMG_UINT32 ui32Offset;
572
IMG_UINT32 ui32Value;
574
IMG_UINT32 ui32Flags;
576
}PVRSRV_BRIDGE_IN_PDUMP_MEMPOL;
579
typedef struct PVRSRV_BRIDGE_IN_PDUMP_SYNCPOL_TAG
581
IMG_UINT32 ui32BridgeFlags;
582
PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
584
IMG_UINT32 ui32Value;
587
}PVRSRV_BRIDGE_IN_PDUMP_SYNCPOL;
591
typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPMEM_TAG
593
IMG_UINT32 ui32BridgeFlags;
595
IMG_PVOID pvAltLinAddr;
596
PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
597
IMG_UINT32 ui32Offset;
598
IMG_UINT32 ui32Bytes;
599
IMG_UINT32 ui32Flags;
601
}PVRSRV_BRIDGE_IN_PDUMP_DUMPMEM;
605
typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPSYNC_TAG
607
IMG_UINT32 ui32BridgeFlags;
608
IMG_PVOID pvAltLinAddr;
609
PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
610
IMG_UINT32 ui32Offset;
611
IMG_UINT32 ui32Bytes;
613
}PVRSRV_BRIDGE_IN_PDUMP_DUMPSYNC;
617
typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPREG_TAG
619
IMG_UINT32 ui32BridgeFlags;
621
IMG_UINT32 ui32Flags;
623
}PVRSRV_BRIDGE_IN_PDUMP_DUMPREG;
626
typedef struct PVRSRV_BRIDGE_IN_PDUMP_REGPOL_TAG
628
IMG_UINT32 ui32BridgeFlags;
631
IMG_UINT32 ui32Flags;
632
}PVRSRV_BRIDGE_IN_PDUMP_REGPOL;
635
typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPPDREG_TAG
637
IMG_UINT32 ui32BridgeFlags;
639
IMG_UINT32 ui32Flags;
641
}PVRSRV_BRIDGE_IN_PDUMP_DUMPPDREG;
644
typedef struct PVRSRV_BRIDGE_IN_PDUMP_MEMPAGES_TAG
646
IMG_UINT32 ui32BridgeFlags;
647
IMG_HANDLE hKernelMemInfo;
648
IMG_DEV_PHYADDR *pPages;
649
IMG_UINT32 ui32NumPages;
650
IMG_DEV_VIRTADDR sDevAddr;
651
IMG_UINT32 ui32Start;
652
IMG_UINT32 ui32Length;
653
IMG_BOOL bContinuous;
655
}PVRSRV_BRIDGE_IN_PDUMP_MEMPAGES;
658
typedef struct PVRSRV_BRIDGE_IN_PDUMP_COMMENT_TAG
660
IMG_UINT32 ui32BridgeFlags;
661
IMG_CHAR szComment[PVRSRV_PDUMP_MAX_COMMENT_SIZE];
662
IMG_UINT32 ui32Flags;
664
}PVRSRV_BRIDGE_IN_PDUMP_COMMENT;
668
typedef struct PVRSRV_BRIDGE_IN_PDUMP_SETFRAME_TAG
670
IMG_UINT32 ui32BridgeFlags;
671
IMG_UINT32 ui32Frame;
673
}PVRSRV_BRIDGE_IN_PDUMP_SETFRAME;
678
typedef struct PVRSRV_BRIDGE_IN_PDUMP_BITMAP_TAG
680
IMG_UINT32 ui32BridgeFlags;
681
IMG_CHAR szFileName[PVRSRV_PDUMP_MAX_FILENAME_SIZE];
682
IMG_UINT32 ui32FileOffset;
683
IMG_UINT32 ui32Width;
684
IMG_UINT32 ui32Height;
685
IMG_UINT32 ui32StrideInBytes;
686
IMG_DEV_VIRTADDR sDevBaseAddr;
688
PDUMP_PIXEL_FORMAT ePixelFormat;
689
PDUMP_MEM_FORMAT eMemFormat;
690
IMG_UINT32 ui32Flags;
692
}PVRSRV_BRIDGE_IN_PDUMP_BITMAP;
696
typedef struct PVRSRV_BRIDGE_IN_PDUMP_READREG_TAG
698
IMG_UINT32 ui32BridgeFlags;
699
IMG_CHAR szFileName[PVRSRV_PDUMP_MAX_FILENAME_SIZE];
700
IMG_UINT32 ui32FileOffset;
701
IMG_UINT32 ui32Address;
703
IMG_UINT32 ui32Flags;
705
}PVRSRV_BRIDGE_IN_PDUMP_READREG;
708
typedef struct PVRSRV_BRIDGE_IN_PDUMP_DRIVERINFO_TAG
710
IMG_UINT32 ui32BridgeFlags;
711
IMG_CHAR szString[PVRSRV_PDUMP_MAX_COMMENT_SIZE];
712
IMG_BOOL bContinuous;
714
}PVRSRV_BRIDGE_IN_PDUMP_DRIVERINFO;
716
typedef struct PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR_TAG
718
IMG_UINT32 ui32BridgeFlags;
719
IMG_HANDLE hKernelMemInfo;
720
IMG_UINT32 ui32Offset;
721
IMG_DEV_PHYADDR sPDDevPAddr;
722
}PVRSRV_BRIDGE_IN_PDUMP_DUMPPDDEVPADDR;
725
typedef struct PVRSRV_BRIDGE_PDUM_IN_CYCLE_COUNT_REG_READ_TAG
727
IMG_UINT32 ui32BridgeFlags;
728
IMG_UINT32 ui32RegOffset;
730
}PVRSRV_BRIDGE_IN_PDUMP_CYCLE_COUNT_REG_READ;
733
typedef struct PVRSRV_BRIDGE_OUT_ENUMDEVICE_TAG
736
IMG_UINT32 ui32NumDevices;
737
PVRSRV_DEVICE_IDENTIFIER asDeviceIdentifier[PVRSRV_MAX_DEVICES];
739
}PVRSRV_BRIDGE_OUT_ENUMDEVICE;
743
typedef struct PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO_TAG
747
IMG_HANDLE hDevCookie;
749
} PVRSRV_BRIDGE_OUT_ACQUIRE_DEVICEINFO;
753
typedef struct PVRSRV_BRIDGE_OUT_ENUMCLASS_TAG
756
IMG_UINT32 ui32NumDevices;
757
IMG_UINT32 ui32DevID[PVRSRV_MAX_DEVICES];
759
}PVRSRV_BRIDGE_OUT_ENUMCLASS;
763
typedef struct PVRSRV_BRIDGE_IN_OPEN_DISPCLASS_DEVICE_TAG
765
IMG_UINT32 ui32BridgeFlags;
766
IMG_UINT32 ui32DeviceID;
767
IMG_HANDLE hDevCookie;
769
}PVRSRV_BRIDGE_IN_OPEN_DISPCLASS_DEVICE;
772
typedef struct PVRSRV_BRIDGE_OUT_OPEN_DISPCLASS_DEVICE_TAG
775
IMG_HANDLE hDeviceKM;
777
}PVRSRV_BRIDGE_OUT_OPEN_DISPCLASS_DEVICE;
781
typedef struct PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY_TAG
783
IMG_UINT32 ui32BridgeFlags;
784
IMG_HANDLE hDevCookie;
785
IMG_HANDLE hDevMemContext;
787
IMG_SIZE_T ui32ByteSize;
788
IMG_SIZE_T ui32PageOffset;
789
IMG_BOOL bPhysContig;
790
IMG_UINT32 ui32NumPageTableEntries;
791
IMG_SYS_PHYADDR *psSysPAddr;
792
IMG_UINT32 ui32Flags;
794
}PVRSRV_BRIDGE_IN_WRAP_EXT_MEMORY;
797
typedef struct PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY_TAG
800
PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
801
PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
803
}PVRSRV_BRIDGE_OUT_WRAP_EXT_MEMORY;
806
typedef struct PVRSRV_BRIDGE_IN_UNWRAP_EXT_MEMORY_TAG
808
IMG_UINT32 ui32BridgeFlags;
809
IMG_HANDLE hKernelMemInfo;
810
PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
811
PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
813
}PVRSRV_BRIDGE_IN_UNWRAP_EXT_MEMORY;
816
#define PVRSRV_MAX_DC_DISPLAY_FORMATS 10
817
#define PVRSRV_MAX_DC_DISPLAY_DIMENSIONS 10
818
#define PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS 4
819
#define PVRSRV_MAX_DC_CLIP_RECTS 32
822
typedef struct PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_FORMATS_TAG
825
IMG_UINT32 ui32Count;
826
DISPLAY_FORMAT asFormat[PVRSRV_MAX_DC_DISPLAY_FORMATS];
828
}PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_FORMATS;
832
typedef struct PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_DIMS_TAG
834
IMG_UINT32 ui32BridgeFlags;
835
IMG_HANDLE hDeviceKM;
836
DISPLAY_FORMAT sFormat;
838
}PVRSRV_BRIDGE_IN_ENUM_DISPCLASS_DIMS;
842
typedef struct PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_DIMS_TAG
845
IMG_UINT32 ui32Count;
846
DISPLAY_DIMS asDim[PVRSRV_MAX_DC_DISPLAY_DIMENSIONS];
848
}PVRSRV_BRIDGE_OUT_ENUM_DISPCLASS_DIMS;
852
typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_INFO_TAG
855
DISPLAY_INFO sDisplayInfo;
857
}PVRSRV_BRIDGE_OUT_GET_DISPCLASS_INFO;
861
typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_SYSBUFFER_TAG
866
}PVRSRV_BRIDGE_OUT_GET_DISPCLASS_SYSBUFFER;
870
typedef struct PVRSRV_BRIDGE_IN_CREATE_DISPCLASS_SWAPCHAIN_TAG
872
IMG_UINT32 ui32BridgeFlags;
873
IMG_HANDLE hDeviceKM;
874
IMG_UINT32 ui32Flags;
875
DISPLAY_SURF_ATTRIBUTES sDstSurfAttrib;
876
DISPLAY_SURF_ATTRIBUTES sSrcSurfAttrib;
877
IMG_UINT32 ui32BufferCount;
878
IMG_UINT32 ui32OEMFlags;
879
IMG_UINT32 ui32SwapChainID;
881
} PVRSRV_BRIDGE_IN_CREATE_DISPCLASS_SWAPCHAIN;
885
typedef struct PVRSRV_BRIDGE_OUT_CREATE_DISPCLASS_SWAPCHAIN_TAG
888
IMG_HANDLE hSwapChain;
889
IMG_UINT32 ui32SwapChainID;
891
} PVRSRV_BRIDGE_OUT_CREATE_DISPCLASS_SWAPCHAIN;
895
typedef struct PVRSRV_BRIDGE_IN_DESTROY_DISPCLASS_SWAPCHAIN_TAG
897
IMG_UINT32 ui32BridgeFlags;
898
IMG_HANDLE hDeviceKM;
899
IMG_HANDLE hSwapChain;
901
} PVRSRV_BRIDGE_IN_DESTROY_DISPCLASS_SWAPCHAIN;
905
typedef struct PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT_TAG
907
IMG_UINT32 ui32BridgeFlags;
908
IMG_HANDLE hDeviceKM;
909
IMG_HANDLE hSwapChain;
912
} PVRSRV_BRIDGE_IN_SET_DISPCLASS_RECT;
916
typedef struct PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY_TAG
918
IMG_UINT32 ui32BridgeFlags;
919
IMG_HANDLE hDeviceKM;
920
IMG_HANDLE hSwapChain;
921
IMG_UINT32 ui32CKColour;
923
} PVRSRV_BRIDGE_IN_SET_DISPCLASS_COLOURKEY;
927
typedef struct PVRSRV_BRIDGE_IN_GET_DISPCLASS_BUFFERS_TAG
929
IMG_UINT32 ui32BridgeFlags;
930
IMG_HANDLE hDeviceKM;
931
IMG_HANDLE hSwapChain;
933
} PVRSRV_BRIDGE_IN_GET_DISPCLASS_BUFFERS;
937
typedef struct PVRSRV_BRIDGE_OUT_GET_DISPCLASS_BUFFERS_TAG
940
IMG_UINT32 ui32BufferCount;
941
IMG_HANDLE ahBuffer[PVRSRV_MAX_DC_SWAPCHAIN_BUFFERS];
943
} PVRSRV_BRIDGE_OUT_GET_DISPCLASS_BUFFERS;
947
typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER_TAG
949
IMG_UINT32 ui32BridgeFlags;
950
IMG_HANDLE hDeviceKM;
952
IMG_UINT32 ui32SwapInterval;
953
IMG_HANDLE hPrivateTag;
954
IMG_UINT32 ui32ClipRectCount;
955
IMG_RECT sClipRect[PVRSRV_MAX_DC_CLIP_RECTS];
957
} PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_BUFFER;
961
typedef struct PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_SYSTEM_TAG
963
IMG_UINT32 ui32BridgeFlags;
964
IMG_HANDLE hDeviceKM;
965
IMG_HANDLE hSwapChain;
967
} PVRSRV_BRIDGE_IN_SWAP_DISPCLASS_TO_SYSTEM;
971
typedef struct PVRSRV_BRIDGE_IN_OPEN_BUFFERCLASS_DEVICE_TAG
973
IMG_UINT32 ui32BridgeFlags;
974
IMG_UINT32 ui32DeviceID;
975
IMG_HANDLE hDevCookie;
977
} PVRSRV_BRIDGE_IN_OPEN_BUFFERCLASS_DEVICE;
981
typedef struct PVRSRV_BRIDGE_OUT_OPEN_BUFFERCLASS_DEVICE_TAG
984
IMG_HANDLE hDeviceKM;
986
} PVRSRV_BRIDGE_OUT_OPEN_BUFFERCLASS_DEVICE;
990
typedef struct PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_INFO_TAG
993
BUFFER_INFO sBufferInfo;
995
} PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_INFO;
999
typedef struct PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_BUFFER_TAG
1001
IMG_UINT32 ui32BridgeFlags;
1002
IMG_HANDLE hDeviceKM;
1003
IMG_UINT32 ui32BufferIndex;
1005
} PVRSRV_BRIDGE_IN_GET_BUFFERCLASS_BUFFER;
1009
typedef struct PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_BUFFER_TAG
1011
PVRSRV_ERROR eError;
1014
} PVRSRV_BRIDGE_OUT_GET_BUFFERCLASS_BUFFER;
1018
typedef struct PVRSRV_BRIDGE_OUT_GET_DEVMEM_HEAPINFO_TAG
1020
PVRSRV_ERROR eError;
1021
IMG_UINT32 ui32ClientHeapCount;
1022
PVRSRV_HEAP_INFO sHeapInfo[PVRSRV_MAX_CLIENT_HEAPS];
1024
} PVRSRV_BRIDGE_OUT_GET_DEVMEM_HEAPINFO;
1028
typedef struct PVRSRV_BRIDGE_OUT_CREATE_DEVMEMCONTEXT_TAG
1030
PVRSRV_ERROR eError;
1031
IMG_HANDLE hDevMemContext;
1032
IMG_UINT32 ui32ClientHeapCount;
1033
PVRSRV_HEAP_INFO sHeapInfo[PVRSRV_MAX_CLIENT_HEAPS];
1035
} PVRSRV_BRIDGE_OUT_CREATE_DEVMEMCONTEXT;
1039
typedef struct PVRSRV_BRIDGE_OUT_CREATE_DEVMEMHEAP_TAG
1041
PVRSRV_ERROR eError;
1042
IMG_HANDLE hDevMemHeap;
1044
} PVRSRV_BRIDGE_OUT_CREATE_DEVMEMHEAP;
1048
typedef struct PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM_TAG
1050
PVRSRV_ERROR eError;
1051
PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
1052
PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
1053
PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
1054
PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
1056
} PVRSRV_BRIDGE_OUT_ALLOCDEVICEMEM;
1060
typedef struct PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM_TAG
1062
PVRSRV_ERROR eError;
1063
IMG_HANDLE hMemInfo;
1064
#if defined(SUPPORT_MEMINFO_IDS)
1065
IMG_UINT64 ui64Stamp;
1068
} PVRSRV_BRIDGE_OUT_EXPORTDEVICEMEM;
1071
typedef struct PVRSRV_BRIDGE_OUT_MAPMEMINFOTOUSER_TAG
1073
PVRSRV_ERROR eError;
1074
IMG_PVOID pvLinAddr;
1075
IMG_HANDLE hMappingInfo;
1077
}PVRSRV_BRIDGE_OUT_MAPMEMINFOTOUSER;
1081
typedef struct PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM_TAG
1083
PVRSRV_ERROR eError;
1084
IMG_SIZE_T ui32Total;
1085
IMG_SIZE_T ui32Free;
1086
IMG_SIZE_T ui32LargestBlock;
1088
} PVRSRV_BRIDGE_OUT_GETFREEDEVICEMEM;
1091
#include "pvrmmap.h"
1092
typedef struct PVRSRV_BRIDGE_OUT_MHANDLE_TO_MMAP_DATA_TAG
1094
PVRSRV_ERROR eError;
1097
IMG_UINT32 ui32MMapOffset;
1100
IMG_UINT32 ui32ByteOffset;
1103
IMG_UINT32 ui32RealByteSize;
1106
IMG_UINT32 ui32UserVAddr;
1108
} PVRSRV_BRIDGE_OUT_MHANDLE_TO_MMAP_DATA;
1110
typedef struct PVRSRV_BRIDGE_OUT_RELEASE_MMAP_DATA_TAG
1112
PVRSRV_ERROR eError;
1118
IMG_UINT32 ui32UserVAddr;
1121
IMG_UINT32 ui32RealByteSize;
1122
} PVRSRV_BRIDGE_OUT_RELEASE_MMAP_DATA;
1124
typedef struct PVRSRV_BRIDGE_IN_GET_MISC_INFO_TAG
1126
IMG_UINT32 ui32BridgeFlags;
1127
PVRSRV_MISC_INFO sMiscInfo;
1129
}PVRSRV_BRIDGE_IN_GET_MISC_INFO;
1133
typedef struct PVRSRV_BRIDGE_OUT_GET_MISC_INFO_TAG
1135
PVRSRV_ERROR eError;
1136
PVRSRV_MISC_INFO sMiscInfo;
1138
}PVRSRV_BRIDGE_OUT_GET_MISC_INFO;
1142
typedef struct PVRSRV_BRIDGE_IN_RELEASE_MISC_INFO_TAG
1144
IMG_UINT32 ui32BridgeFlags;
1145
PVRSRV_MISC_INFO sMiscInfo;
1147
}PVRSRV_BRIDGE_IN_RELEASE_MISC_INFO;
1151
typedef struct PVRSRV_BRIDGE_OUT_RELEASE_MISC_INFO_TAG
1153
PVRSRV_ERROR eError;
1154
PVRSRV_MISC_INFO sMiscInfo;
1156
}PVRSRV_BRIDGE_OUT_RELEASE_MISC_INFO;
1161
typedef struct PVRSRV_BRIDGE_OUT_PDUMP_ISCAPTURING_TAG
1163
PVRSRV_ERROR eError;
1164
IMG_BOOL bIsCapturing;
1166
} PVRSRV_BRIDGE_OUT_PDUMP_ISCAPTURING;
1169
typedef struct PVRSRV_BRIDGE_IN_GET_FB_STATS_TAG
1171
IMG_UINT32 ui32BridgeFlags;
1172
IMG_SIZE_T ui32Total;
1173
IMG_SIZE_T ui32Available;
1175
} PVRSRV_BRIDGE_IN_GET_FB_STATS;
1179
typedef struct PVRSRV_BRIDGE_IN_MAPPHYSTOUSERSPACE_TAG
1181
IMG_UINT32 ui32BridgeFlags;
1182
IMG_HANDLE hDevCookie;
1183
IMG_SYS_PHYADDR sSysPhysAddr;
1184
IMG_UINT32 uiSizeInBytes;
1186
} PVRSRV_BRIDGE_IN_MAPPHYSTOUSERSPACE;
1190
typedef struct PVRSRV_BRIDGE_OUT_MAPPHYSTOUSERSPACE_TAG
1192
IMG_PVOID pvUserAddr;
1193
IMG_UINT32 uiActualSize;
1194
IMG_PVOID pvProcess;
1196
} PVRSRV_BRIDGE_OUT_MAPPHYSTOUSERSPACE;
1200
typedef struct PVRSRV_BRIDGE_IN_UNMAPPHYSTOUSERSPACE_TAG
1202
IMG_UINT32 ui32BridgeFlags;
1203
IMG_HANDLE hDevCookie;
1204
IMG_PVOID pvUserAddr;
1205
IMG_PVOID pvProcess;
1207
} PVRSRV_BRIDGE_IN_UNMAPPHYSTOUSERSPACE;
1211
typedef struct PVRSRV_BRIDGE_OUT_GETPHYSTOUSERSPACEMAP_TAG
1214
IMG_UINT32 uiTblSize;
1216
} PVRSRV_BRIDGE_OUT_GETPHYSTOUSERSPACEMAP;
1220
typedef struct PVRSRV_BRIDGE_IN_REGISTER_SIM_PROCESS_TAG
1222
IMG_UINT32 ui32BridgeFlags;
1223
IMG_HANDLE hDevCookie;
1224
IMG_PVOID pvProcess;
1226
} PVRSRV_BRIDGE_IN_REGISTER_SIM_PROCESS;
1229
typedef struct PVRSRV_BRIDGE_OUT_REGISTER_SIM_PROCESS_TAG
1231
IMG_SYS_PHYADDR sRegsPhysBase;
1232
IMG_VOID *pvRegsBase;
1233
IMG_PVOID pvProcess;
1234
IMG_UINT32 ulNoOfEntries;
1235
IMG_PVOID pvTblLinAddr;
1237
} PVRSRV_BRIDGE_OUT_REGISTER_SIM_PROCESS;
1240
typedef struct PVRSRV_BRIDGE_IN_UNREGISTER_SIM_PROCESS_TAG
1242
IMG_UINT32 ui32BridgeFlags;
1243
IMG_HANDLE hDevCookie;
1244
IMG_PVOID pvProcess;
1245
IMG_VOID *pvRegsBase;
1247
} PVRSRV_BRIDGE_IN_UNREGISTER_SIM_PROCESS;
1249
typedef struct PVRSRV_BRIDGE_IN_PROCESS_SIMISR_EVENT_TAG
1251
IMG_UINT32 ui32BridgeFlags;
1252
IMG_HANDLE hDevCookie;
1253
IMG_UINT32 ui32StatusAndMask;
1254
PVRSRV_ERROR eError;
1256
} PVRSRV_BRIDGE_IN_PROCESS_SIMISR_EVENT;
1258
typedef struct PVRSRV_BRIDGE_IN_INITSRV_DISCONNECT_TAG
1260
IMG_UINT32 ui32BridgeFlags;
1261
IMG_BOOL bInitSuccesful;
1262
} PVRSRV_BRIDGE_IN_INITSRV_DISCONNECT;
1265
typedef struct PVRSRV_BRIDGE_IN_ALLOC_SHARED_SYS_MEM_TAG
1267
IMG_UINT32 ui32BridgeFlags;
1268
IMG_UINT32 ui32Flags;
1269
IMG_SIZE_T ui32Size;
1270
}PVRSRV_BRIDGE_IN_ALLOC_SHARED_SYS_MEM;
1272
typedef struct PVRSRV_BRIDGE_OUT_ALLOC_SHARED_SYS_MEM_TAG
1274
PVRSRV_ERROR eError;
1275
PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
1276
PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
1277
}PVRSRV_BRIDGE_OUT_ALLOC_SHARED_SYS_MEM;
1279
typedef struct PVRSRV_BRIDGE_IN_FREE_SHARED_SYS_MEM_TAG
1281
IMG_UINT32 ui32BridgeFlags;
1282
PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
1283
PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
1284
}PVRSRV_BRIDGE_IN_FREE_SHARED_SYS_MEM;
1286
typedef struct PVRSRV_BRIDGE_OUT_FREE_SHARED_SYS_MEM_TAG
1288
PVRSRV_ERROR eError;
1289
}PVRSRV_BRIDGE_OUT_FREE_SHARED_SYS_MEM;
1291
typedef struct PVRSRV_BRIDGE_IN_MAP_MEMINFO_MEM_TAG
1293
IMG_UINT32 ui32BridgeFlags;
1294
IMG_HANDLE hKernelMemInfo;
1295
}PVRSRV_BRIDGE_IN_MAP_MEMINFO_MEM;
1297
typedef struct PVRSRV_BRIDGE_OUT_MAP_MEMINFO_MEM_TAG
1299
PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
1300
PVRSRV_CLIENT_SYNC_INFO sClientSyncInfo;
1301
PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo;
1302
PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo;
1303
PVRSRV_ERROR eError;
1304
}PVRSRV_BRIDGE_OUT_MAP_MEMINFO_MEM;
1306
typedef struct PVRSRV_BRIDGE_IN_UNMAP_MEMINFO_MEM_TAG
1308
IMG_UINT32 ui32BridgeFlags;
1309
PVRSRV_CLIENT_MEM_INFO sClientMemInfo;
1310
}PVRSRV_BRIDGE_IN_UNMAP_MEMINFO_MEM;
1312
typedef struct PVRSRV_BRIDGE_OUT_UNMAP_MEMINFO_MEM_TAG
1314
PVRSRV_ERROR eError;
1315
}PVRSRV_BRIDGE_OUT_UNMAP_MEMINFO_MEM;
1317
typedef struct PVRSRV_BRIDGE_IN_GETMMU_PD_DEVPADDR_TAG
1319
IMG_UINT32 ui32BridgeFlags;
1320
IMG_HANDLE hDevMemContext;
1321
}PVRSRV_BRIDGE_IN_GETMMU_PD_DEVPADDR;
1323
typedef struct PVRSRV_BRIDGE_OUT_GETMMU_PD_DEVPADDR_TAG
1325
IMG_DEV_PHYADDR sPDDevPAddr;
1326
PVRSRV_ERROR eError;
1327
}PVRSRV_BRIDGE_OUT_GETMMU_PD_DEVPADDR;
1329
typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_WAI_TAG
1331
IMG_UINT32 ui32BridgeFlags;
1332
IMG_HANDLE hOSEventKM;
1333
} PVRSRV_BRIDGE_IN_EVENT_OBJECT_WAIT;
1335
typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_OPEN_TAG
1337
PVRSRV_EVENTOBJECT sEventObject;
1338
} PVRSRV_BRIDGE_IN_EVENT_OBJECT_OPEN;
1340
typedef struct PVRSRV_BRIDGE_OUT_EVENT_OBJECT_OPEN_TAG
1342
IMG_HANDLE hOSEvent;
1343
PVRSRV_ERROR eError;
1344
} PVRSRV_BRIDGE_OUT_EVENT_OBJECT_OPEN;
1346
typedef struct PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE_TAG
1348
PVRSRV_EVENTOBJECT sEventObject;
1349
IMG_HANDLE hOSEventKM;
1350
} PVRSRV_BRIDGE_IN_EVENT_OBJECT_CLOSE;
1352
typedef struct PVRSRV_BRIDGE_IN_MODIFY_PENDING_SYNC_OPS_TAG
1354
IMG_UINT32 ui32BridgeFlags;
1355
IMG_HANDLE hKernelSyncInfo;
1356
IMG_UINT32 ui32ModifyFlags;
1358
} PVRSRV_BRIDGE_IN_MODIFY_PENDING_SYNC_OPS;
1360
typedef struct PVRSRV_BRIDGE_IN_MODIFY_COMPLETE_SYNC_OPS_TAG
1362
IMG_UINT32 ui32BridgeFlags;
1363
IMG_HANDLE hKernelSyncInfo;
1364
IMG_UINT32 ui32ModifyFlags;
1366
} PVRSRV_BRIDGE_IN_MODIFY_COMPLETE_SYNC_OPS;
1368
typedef struct PVRSRV_BRIDGE_OUT_MODIFY_PENDING_SYNC_OPS_TAG
1370
PVRSRV_ERROR eError;
1373
IMG_UINT32 ui32ReadOpsPending;
1374
IMG_UINT32 ui32WriteOpsPending;
1376
} PVRSRV_BRIDGE_OUT_MODIFY_PENDING_SYNC_OPS;
1378
#if defined (__cplusplus)