diff options
Diffstat (limited to 'drivers/gpu/pvr/services.h')
-rw-r--r-- | drivers/gpu/pvr/services.h | 991 |
1 files changed, 991 insertions, 0 deletions
diff --git a/drivers/gpu/pvr/services.h b/drivers/gpu/pvr/services.h new file mode 100644 index 00000000000..71fb4efb7fc --- /dev/null +++ b/drivers/gpu/pvr/services.h | |||
@@ -0,0 +1,991 @@ | |||
1 | /********************************************************************** | ||
2 | * | ||
3 | * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved. | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it | ||
6 | * under the terms and conditions of the GNU General Public License, | ||
7 | * version 2, as published by the Free Software Foundation. | ||
8 | * | ||
9 | * This program is distributed in the hope it will be useful but, except | ||
10 | * as otherwise stated in writing, without any warranty; without even the | ||
11 | * implied warranty of merchantability or fitness for a particular purpose. | ||
12 | * See the GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License along with | ||
15 | * this program; if not, write to the Free Software Foundation, Inc., | ||
16 | * 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. | ||
17 | * | ||
18 | * The full GNU General Public License is included in this distribution in | ||
19 | * the file called "COPYING". | ||
20 | * | ||
21 | * Contact Information: | ||
22 | * Imagination Technologies Ltd. <gpl-support@imgtec.com> | ||
23 | * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK | ||
24 | * | ||
25 | ******************************************************************************/ | ||
26 | |||
27 | #ifndef __SERVICES_H__ | ||
28 | #define __SERVICES_H__ | ||
29 | |||
30 | #if defined (__cplusplus) | ||
31 | extern "C" { | ||
32 | #endif | ||
33 | |||
34 | #include "img_defs.h" | ||
35 | #include "servicesext.h" | ||
36 | #include "pdumpdefs.h" | ||
37 | |||
38 | |||
39 | #define PVRSRV_4K_PAGE_SIZE 4096UL | ||
40 | |||
41 | #define PVRSRV_MAX_CMD_SIZE 1024 | ||
42 | |||
43 | #define PVRSRV_MAX_DEVICES 16 | ||
44 | |||
45 | #define EVENTOBJNAME_MAXLENGTH (50) | ||
46 | |||
47 | #define PVRSRV_MEM_READ (1U<<0) | ||
48 | #define PVRSRV_MEM_WRITE (1U<<1) | ||
49 | #define PVRSRV_MEM_CACHE_CONSISTENT (1U<<2) | ||
50 | #define PVRSRV_MEM_NO_SYNCOBJ (1U<<3) | ||
51 | #define PVRSRV_MEM_INTERLEAVED (1U<<4) | ||
52 | #define PVRSRV_MEM_DUMMY (1U<<5) | ||
53 | #define PVRSRV_MEM_EDM_PROTECT (1U<<6) | ||
54 | #define PVRSRV_MEM_ZERO (1U<<7) | ||
55 | #define PVRSRV_MEM_USER_SUPPLIED_DEVVADDR (1U<<8) | ||
56 | #define PVRSRV_MEM_RAM_BACKED_ALLOCATION (1U<<9) | ||
57 | #define PVRSRV_MEM_NO_RESMAN (1U<<10) | ||
58 | #define PVRSRV_MEM_EXPORTED (1U<<11) | ||
59 | |||
60 | |||
61 | #define PVRSRV_HAP_CACHED (1U<<12) | ||
62 | #define PVRSRV_HAP_UNCACHED (1U<<13) | ||
63 | #define PVRSRV_HAP_WRITECOMBINE (1U<<14) | ||
64 | #define PVRSRV_HAP_CACHETYPE_MASK (PVRSRV_HAP_CACHED|PVRSRV_HAP_UNCACHED|PVRSRV_HAP_WRITECOMBINE) | ||
65 | #define PVRSRV_HAP_KERNEL_ONLY (1U<<15) | ||
66 | #define PVRSRV_HAP_SINGLE_PROCESS (1U<<16) | ||
67 | #define PVRSRV_HAP_MULTI_PROCESS (1U<<17) | ||
68 | #define PVRSRV_HAP_FROM_EXISTING_PROCESS (1U<<18) | ||
69 | #define PVRSRV_HAP_NO_CPU_VIRTUAL (1U<<19) | ||
70 | #define PVRSRV_HAP_MAPTYPE_MASK (PVRSRV_HAP_KERNEL_ONLY \ | ||
71 | |PVRSRV_HAP_SINGLE_PROCESS \ | ||
72 | |PVRSRV_HAP_MULTI_PROCESS \ | ||
73 | |PVRSRV_HAP_FROM_EXISTING_PROCESS \ | ||
74 | |PVRSRV_HAP_NO_CPU_VIRTUAL) | ||
75 | |||
76 | #define PVRSRV_MEM_CACHED PVRSRV_HAP_CACHED | ||
77 | #define PVRSRV_MEM_UNCACHED PVRSRV_HAP_UNCACHED | ||
78 | #define PVRSRV_MEM_WRITECOMBINE PVRSRV_HAP_WRITECOMBINE | ||
79 | |||
80 | #define PVRSRV_MEM_BACKINGSTORE_FIELD_SHIFT (24) | ||
81 | |||
82 | #define PVRSRV_MAP_NOUSERVIRTUAL (1UL<<27) | ||
83 | |||
84 | #define PVRSRV_NO_CONTEXT_LOSS 0 | ||
85 | #define PVRSRV_SEVERE_LOSS_OF_CONTEXT 1 | ||
86 | #define PVRSRV_PRE_STATE_CHANGE_MASK 0x80 | ||
87 | |||
88 | |||
89 | #define PVRSRV_DEFAULT_DEV_COOKIE (1) | ||
90 | |||
91 | |||
92 | #define PVRSRV_MISC_INFO_TIMER_PRESENT (1U<<0) | ||
93 | #define PVRSRV_MISC_INFO_CLOCKGATE_PRESENT (1U<<1) | ||
94 | #define PVRSRV_MISC_INFO_MEMSTATS_PRESENT (1U<<2) | ||
95 | #define PVRSRV_MISC_INFO_GLOBALEVENTOBJECT_PRESENT (1U<<3) | ||
96 | #define PVRSRV_MISC_INFO_DDKVERSION_PRESENT (1U<<4) | ||
97 | #define PVRSRV_MISC_INFO_CPUCACHEOP_PRESENT (1U<<5) | ||
98 | #define PVRSRV_MISC_INFO_FREEMEM_PRESENT (1U<<6) | ||
99 | |||
100 | #define PVRSRV_MISC_INFO_RESET_PRESENT (1U<<31) | ||
101 | |||
102 | #define PVRSRV_PDUMP_MAX_FILENAME_SIZE 20 | ||
103 | #define PVRSRV_PDUMP_MAX_COMMENT_SIZE 200 | ||
104 | |||
105 | |||
106 | #define PVRSRV_CHANGEDEVMEM_ATTRIBS_CACHECOHERENT 0x00000001 | ||
107 | |||
108 | #define PVRSRV_MAPEXTMEMORY_FLAGS_ALTERNATEVA 0x00000001 | ||
109 | #define PVRSRV_MAPEXTMEMORY_FLAGS_PHYSCONTIG 0x00000002 | ||
110 | |||
111 | #define PVRSRV_MODIFYSYNCOPS_FLAGS_WO_INC 0x00000001 | ||
112 | #define PVRSRV_MODIFYSYNCOPS_FLAGS_RO_INC 0x00000002 | ||
113 | |||
114 | #define SRV_FLAGS_PERSIST 0x1 | ||
115 | |||
116 | typedef enum _PVRSRV_DEVICE_TYPE_ | ||
117 | { | ||
118 | PVRSRV_DEVICE_TYPE_UNKNOWN = 0 , | ||
119 | PVRSRV_DEVICE_TYPE_MBX1 = 1 , | ||
120 | PVRSRV_DEVICE_TYPE_MBX1_LITE = 2 , | ||
121 | |||
122 | PVRSRV_DEVICE_TYPE_M24VA = 3, | ||
123 | PVRSRV_DEVICE_TYPE_MVDA2 = 4, | ||
124 | PVRSRV_DEVICE_TYPE_MVED1 = 5, | ||
125 | PVRSRV_DEVICE_TYPE_MSVDX = 6, | ||
126 | |||
127 | PVRSRV_DEVICE_TYPE_SGX = 7, | ||
128 | |||
129 | PVRSRV_DEVICE_TYPE_VGX = 8, | ||
130 | |||
131 | |||
132 | PVRSRV_DEVICE_TYPE_EXT = 9, | ||
133 | |||
134 | PVRSRV_DEVICE_TYPE_LAST = 9, | ||
135 | |||
136 | PVRSRV_DEVICE_TYPE_FORCE_I32 = 0x7fffffff | ||
137 | |||
138 | } PVRSRV_DEVICE_TYPE; | ||
139 | |||
140 | #define HEAP_ID( _dev_ , _dev_heap_idx_ ) ( ((_dev_)<<24) | ((_dev_heap_idx_)&((1<<24)-1)) ) | ||
141 | #define HEAP_IDX( _heap_id_ ) ( (_heap_id_)&((1<<24) - 1 ) ) | ||
142 | #define HEAP_DEV( _heap_id_ ) ( (_heap_id_)>>24 ) | ||
143 | |||
144 | #define PVRSRV_UNDEFINED_HEAP_ID (~0LU) | ||
145 | |||
146 | typedef enum | ||
147 | { | ||
148 | IMG_EGL = 0x00000001, | ||
149 | IMG_OPENGLES1 = 0x00000002, | ||
150 | IMG_OPENGLES2 = 0x00000003, | ||
151 | IMG_D3DM = 0x00000004, | ||
152 | IMG_SRV_UM = 0x00000005, | ||
153 | IMG_OPENVG = 0x00000006, | ||
154 | IMG_SRVCLIENT = 0x00000007, | ||
155 | IMG_VISTAKMD = 0x00000008, | ||
156 | IMG_VISTA3DNODE = 0x00000009, | ||
157 | IMG_VISTAMVIDEONODE = 0x0000000A, | ||
158 | IMG_VISTAVPBNODE = 0x0000000B, | ||
159 | IMG_OPENGL = 0x0000000C, | ||
160 | IMG_D3D = 0x0000000D, | ||
161 | #if defined(SUPPORT_GRAPHICS_HAL) | ||
162 | IMG_GRAPHICS_HAL = 0x0000000E | ||
163 | #endif | ||
164 | |||
165 | } IMG_MODULE_ID; | ||
166 | |||
167 | |||
168 | #define APPHINT_MAX_STRING_SIZE 256 | ||
169 | |||
170 | typedef enum | ||
171 | { | ||
172 | IMG_STRING_TYPE = 1, | ||
173 | IMG_FLOAT_TYPE , | ||
174 | IMG_UINT_TYPE , | ||
175 | IMG_INT_TYPE , | ||
176 | IMG_FLAG_TYPE | ||
177 | }IMG_DATA_TYPE; | ||
178 | |||
179 | |||
180 | typedef struct _PVRSRV_DEV_DATA_ *PPVRSRV_DEV_DATA; | ||
181 | |||
182 | typedef struct _PVRSRV_DEVICE_IDENTIFIER_ | ||
183 | { | ||
184 | PVRSRV_DEVICE_TYPE eDeviceType; | ||
185 | PVRSRV_DEVICE_CLASS eDeviceClass; | ||
186 | IMG_UINT32 ui32DeviceIndex; | ||
187 | IMG_CHAR *pszPDumpDevName; | ||
188 | IMG_CHAR *pszPDumpRegName; | ||
189 | |||
190 | } PVRSRV_DEVICE_IDENTIFIER; | ||
191 | |||
192 | |||
193 | typedef struct _PVRSRV_CLIENT_DEV_DATA_ | ||
194 | { | ||
195 | IMG_UINT32 ui32NumDevices; | ||
196 | PVRSRV_DEVICE_IDENTIFIER asDevID[PVRSRV_MAX_DEVICES]; | ||
197 | PVRSRV_ERROR (*apfnDevConnect[PVRSRV_MAX_DEVICES])(PPVRSRV_DEV_DATA); | ||
198 | PVRSRV_ERROR (*apfnDumpTrace[PVRSRV_MAX_DEVICES])(PPVRSRV_DEV_DATA); | ||
199 | |||
200 | } PVRSRV_CLIENT_DEV_DATA; | ||
201 | |||
202 | |||
203 | typedef struct _PVRSRV_CONNECTION_ | ||
204 | { | ||
205 | IMG_HANDLE hServices; | ||
206 | IMG_UINTPTR_T ui32ProcessID; | ||
207 | PVRSRV_CLIENT_DEV_DATA sClientDevData; | ||
208 | IMG_UINT32 ui32SrvFlags; | ||
209 | }PVRSRV_CONNECTION; | ||
210 | |||
211 | |||
212 | typedef struct _PVRSRV_DEV_DATA_ | ||
213 | { | ||
214 | IMG_CONST PVRSRV_CONNECTION *psConnection; | ||
215 | IMG_HANDLE hDevCookie; | ||
216 | |||
217 | } PVRSRV_DEV_DATA; | ||
218 | |||
219 | typedef struct _PVRSRV_MEMUPDATE_ | ||
220 | { | ||
221 | IMG_UINTPTR_T ui32UpdateAddr; | ||
222 | IMG_UINT32 ui32UpdateVal; | ||
223 | } PVRSRV_MEMUPDATE; | ||
224 | |||
225 | typedef struct _PVRSRV_HWREG_ | ||
226 | { | ||
227 | IMG_UINT32 ui32RegAddr; | ||
228 | IMG_UINT32 ui32RegVal; | ||
229 | } PVRSRV_HWREG; | ||
230 | |||
231 | typedef struct _PVRSRV_MEMBLK_ | ||
232 | { | ||
233 | IMG_DEV_VIRTADDR sDevVirtAddr; | ||
234 | IMG_HANDLE hOSMemHandle; | ||
235 | IMG_HANDLE hOSWrapMem; | ||
236 | IMG_HANDLE hBuffer; | ||
237 | IMG_HANDLE hResItem; | ||
238 | IMG_SYS_PHYADDR *psIntSysPAddr; | ||
239 | |||
240 | } PVRSRV_MEMBLK; | ||
241 | |||
242 | typedef struct _PVRSRV_KERNEL_MEM_INFO_ *PPVRSRV_KERNEL_MEM_INFO; | ||
243 | |||
244 | typedef struct _PVRSRV_CLIENT_MEM_INFO_ | ||
245 | { | ||
246 | |||
247 | IMG_PVOID pvLinAddr; | ||
248 | |||
249 | |||
250 | IMG_PVOID pvLinAddrKM; | ||
251 | |||
252 | |||
253 | IMG_DEV_VIRTADDR sDevVAddr; | ||
254 | |||
255 | |||
256 | |||
257 | |||
258 | |||
259 | |||
260 | IMG_CPU_PHYADDR sCpuPAddr; | ||
261 | |||
262 | |||
263 | IMG_UINT32 ui32Flags; | ||
264 | |||
265 | |||
266 | |||
267 | |||
268 | IMG_UINT32 ui32ClientFlags; | ||
269 | |||
270 | |||
271 | IMG_SIZE_T ui32AllocSize; | ||
272 | |||
273 | |||
274 | |||
275 | struct _PVRSRV_CLIENT_SYNC_INFO_ *psClientSyncInfo; | ||
276 | |||
277 | |||
278 | IMG_HANDLE hMappingInfo; | ||
279 | |||
280 | |||
281 | IMG_HANDLE hKernelMemInfo; | ||
282 | |||
283 | |||
284 | IMG_HANDLE hResItem; | ||
285 | |||
286 | #if defined(SUPPORT_MEMINFO_IDS) | ||
287 | #if !defined(USE_CODE) | ||
288 | |||
289 | IMG_UINT64 ui64Stamp; | ||
290 | #else | ||
291 | IMG_UINT32 dummy1; | ||
292 | IMG_UINT32 dummy2; | ||
293 | #endif | ||
294 | #endif | ||
295 | |||
296 | |||
297 | |||
298 | |||
299 | struct _PVRSRV_CLIENT_MEM_INFO_ *psNext; | ||
300 | |||
301 | } PVRSRV_CLIENT_MEM_INFO, *PPVRSRV_CLIENT_MEM_INFO; | ||
302 | |||
303 | |||
304 | #define PVRSRV_MAX_CLIENT_HEAPS (32) | ||
305 | typedef struct _PVRSRV_HEAP_INFO_ | ||
306 | { | ||
307 | IMG_UINT32 ui32HeapID; | ||
308 | IMG_HANDLE hDevMemHeap; | ||
309 | IMG_DEV_VIRTADDR sDevVAddrBase; | ||
310 | IMG_UINT32 ui32HeapByteSize; | ||
311 | IMG_UINT32 ui32Attribs; | ||
312 | IMG_UINT32 ui32XTileStride; | ||
313 | }PVRSRV_HEAP_INFO; | ||
314 | |||
315 | |||
316 | |||
317 | |||
318 | typedef struct _PVRSRV_EVENTOBJECT_ | ||
319 | { | ||
320 | |||
321 | IMG_CHAR szName[EVENTOBJNAME_MAXLENGTH]; | ||
322 | |||
323 | IMG_HANDLE hOSEventKM; | ||
324 | |||
325 | } PVRSRV_EVENTOBJECT; | ||
326 | |||
327 | typedef enum | ||
328 | { | ||
329 | PVRSRV_MISC_INFO_CPUCACHEOP_NONE = 0, | ||
330 | PVRSRV_MISC_INFO_CPUCACHEOP_CLEAN, | ||
331 | PVRSRV_MISC_INFO_CPUCACHEOP_FLUSH | ||
332 | } PVRSRV_MISC_INFO_CPUCACHEOP_TYPE; | ||
333 | |||
334 | typedef struct _PVRSRV_MISC_INFO_ | ||
335 | { | ||
336 | IMG_UINT32 ui32StateRequest; | ||
337 | IMG_UINT32 ui32StatePresent; | ||
338 | |||
339 | |||
340 | IMG_VOID *pvSOCTimerRegisterKM; | ||
341 | IMG_VOID *pvSOCTimerRegisterUM; | ||
342 | IMG_HANDLE hSOCTimerRegisterOSMemHandle; | ||
343 | IMG_HANDLE hSOCTimerRegisterMappingInfo; | ||
344 | |||
345 | |||
346 | IMG_VOID *pvSOCClockGateRegs; | ||
347 | IMG_UINT32 ui32SOCClockGateRegsSize; | ||
348 | |||
349 | |||
350 | IMG_CHAR *pszMemoryStr; | ||
351 | IMG_UINT32 ui32MemoryStrLen; | ||
352 | |||
353 | |||
354 | PVRSRV_EVENTOBJECT sGlobalEventObject; | ||
355 | IMG_HANDLE hOSGlobalEvent; | ||
356 | |||
357 | |||
358 | IMG_UINT32 aui32DDKVersion[4]; | ||
359 | |||
360 | |||
361 | struct | ||
362 | { | ||
363 | |||
364 | IMG_BOOL bDeferOp; | ||
365 | |||
366 | |||
367 | PVRSRV_MISC_INFO_CPUCACHEOP_TYPE eCacheOpType; | ||
368 | |||
369 | |||
370 | union | ||
371 | { | ||
372 | |||
373 | PVRSRV_CLIENT_MEM_INFO *psClientMemInfo; | ||
374 | |||
375 | |||
376 | struct _PVRSRV_KERNEL_MEM_INFO_ *psKernelMemInfo; | ||
377 | } u; | ||
378 | |||
379 | |||
380 | IMG_VOID *pvBaseVAddr; | ||
381 | |||
382 | |||
383 | IMG_UINT32 ui32Length; | ||
384 | } sCacheOpCtl; | ||
385 | } PVRSRV_MISC_INFO; | ||
386 | |||
387 | |||
388 | typedef enum _PVRSRV_CLIENT_EVENT_ | ||
389 | { | ||
390 | PVRSRV_CLIENT_EVENT_HWTIMEOUT = 0, | ||
391 | } PVRSRV_CLIENT_EVENT; | ||
392 | |||
393 | IMG_IMPORT | ||
394 | PVRSRV_ERROR IMG_CALLCONV PVRSRVClientEvent(IMG_CONST PVRSRV_CLIENT_EVENT eEvent, | ||
395 | PVRSRV_DEV_DATA *psDevData, | ||
396 | IMG_PVOID pvData); | ||
397 | |||
398 | IMG_IMPORT | ||
399 | PVRSRV_ERROR IMG_CALLCONV PVRSRVConnect(PVRSRV_CONNECTION **ppsConnection, IMG_UINT32 ui32SrvFlags); | ||
400 | |||
401 | IMG_IMPORT | ||
402 | PVRSRV_ERROR IMG_CALLCONV PVRSRVDisconnect(IMG_CONST PVRSRV_CONNECTION *psConnection); | ||
403 | |||
404 | IMG_IMPORT | ||
405 | PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumerateDevices(IMG_CONST PVRSRV_CONNECTION *psConnection, | ||
406 | IMG_UINT32 *puiNumDevices, | ||
407 | PVRSRV_DEVICE_IDENTIFIER *puiDevIDs); | ||
408 | IMG_IMPORT | ||
409 | PVRSRV_ERROR IMG_CALLCONV PVRSRVAcquireDeviceData(IMG_CONST PVRSRV_CONNECTION *psConnection, | ||
410 | IMG_UINT32 uiDevIndex, | ||
411 | PVRSRV_DEV_DATA *psDevData, | ||
412 | PVRSRV_DEVICE_TYPE eDeviceType); | ||
413 | IMG_IMPORT | ||
414 | PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfo (IMG_CONST PVRSRV_CONNECTION *psConnection, PVRSRV_MISC_INFO *psMiscInfo); | ||
415 | |||
416 | IMG_IMPORT | ||
417 | PVRSRV_ERROR IMG_CALLCONV PVRSRVReleaseMiscInfo (IMG_CONST PVRSRV_CONNECTION *psConnection, PVRSRV_MISC_INFO *psMiscInfo); | ||
418 | |||
419 | #if 1 | ||
420 | IMG_IMPORT | ||
421 | IMG_UINT32 ReadHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset); | ||
422 | |||
423 | IMG_IMPORT | ||
424 | IMG_VOID WriteHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset, IMG_UINT32 ui32Value); | ||
425 | |||
426 | IMG_IMPORT IMG_VOID WriteHWRegs(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Count, PVRSRV_HWREG *psHWRegs); | ||
427 | #endif | ||
428 | |||
429 | IMG_IMPORT | ||
430 | PVRSRV_ERROR PVRSRVPollForValue ( const PVRSRV_CONNECTION *psConnection, | ||
431 | IMG_HANDLE hOSEvent, | ||
432 | volatile IMG_UINT32 *pui32LinMemAddr, | ||
433 | IMG_UINT32 ui32Value, | ||
434 | IMG_UINT32 ui32Mask, | ||
435 | IMG_UINT32 ui32Waitus, | ||
436 | IMG_UINT32 ui32Tries); | ||
437 | |||
438 | IMG_IMPORT | ||
439 | PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateDeviceMemContext(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
440 | IMG_HANDLE *phDevMemContext, | ||
441 | IMG_UINT32 *pui32SharedHeapCount, | ||
442 | PVRSRV_HEAP_INFO *psHeapInfo); | ||
443 | |||
444 | IMG_IMPORT | ||
445 | PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyDeviceMemContext(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
446 | IMG_HANDLE hDevMemContext); | ||
447 | |||
448 | IMG_IMPORT | ||
449 | PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDeviceMemHeapInfo(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
450 | IMG_HANDLE hDevMemContext, | ||
451 | IMG_UINT32 *pui32SharedHeapCount, | ||
452 | PVRSRV_HEAP_INFO *psHeapInfo); | ||
453 | |||
454 | #if defined(PVRSRV_LOG_MEMORY_ALLOCS) | ||
455 | #define PVRSRVAllocDeviceMem_log(psDevData, hDevMemHeap, ui32Attribs, ui32Size, ui32Alignment, ppsMemInfo, logStr) \ | ||
456 | (PVR_TRACE(("PVRSRVAllocDeviceMem(" #psDevData "," #hDevMemHeap "," #ui32Attribs "," #ui32Size "," #ui32Alignment "," #ppsMemInfo ")" \ | ||
457 | ": " logStr " (size = 0x%lx)", ui32Size)), \ | ||
458 | PVRSRVAllocDeviceMem(psDevData, hDevMemHeap, ui32Attribs, ui32Size, ui32Alignment, ppsMemInfo)) | ||
459 | #else | ||
460 | #define PVRSRVAllocDeviceMem_log(psDevData, hDevMemHeap, ui32Attribs, ui32Size, ui32Alignment, ppsMemInfo, logStr) \ | ||
461 | PVRSRVAllocDeviceMem(psDevData, hDevMemHeap, ui32Attribs, ui32Size, ui32Alignment, ppsMemInfo) | ||
462 | #endif | ||
463 | |||
464 | |||
465 | IMG_IMPORT | ||
466 | PVRSRV_ERROR IMG_CALLCONV PVRSRVAllocDeviceMem(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
467 | IMG_HANDLE hDevMemHeap, | ||
468 | IMG_UINT32 ui32Attribs, | ||
469 | IMG_SIZE_T ui32Size, | ||
470 | IMG_SIZE_T ui32Alignment, | ||
471 | PVRSRV_CLIENT_MEM_INFO **ppsMemInfo); | ||
472 | |||
473 | IMG_IMPORT | ||
474 | PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeDeviceMem(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
475 | PVRSRV_CLIENT_MEM_INFO *psMemInfo); | ||
476 | |||
477 | IMG_IMPORT | ||
478 | PVRSRV_ERROR IMG_CALLCONV PVRSRVExportDeviceMem(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
479 | PVRSRV_CLIENT_MEM_INFO *psMemInfo, | ||
480 | IMG_HANDLE *phMemInfo); | ||
481 | |||
482 | IMG_IMPORT | ||
483 | PVRSRV_ERROR IMG_CALLCONV PVRSRVReserveDeviceVirtualMem(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
484 | IMG_HANDLE hDevMemHeap, | ||
485 | IMG_DEV_VIRTADDR *psDevVAddr, | ||
486 | IMG_SIZE_T ui32Size, | ||
487 | IMG_SIZE_T ui32Alignment, | ||
488 | PVRSRV_CLIENT_MEM_INFO **ppsMemInfo); | ||
489 | IMG_IMPORT | ||
490 | PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeDeviceVirtualMem(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
491 | PVRSRV_CLIENT_MEM_INFO *psMemInfo); | ||
492 | |||
493 | IMG_IMPORT | ||
494 | PVRSRV_ERROR IMG_CALLCONV PVRSRVMapDeviceMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
495 | IMG_HANDLE hKernelMemInfo, | ||
496 | IMG_HANDLE hDstDevMemHeap, | ||
497 | PVRSRV_CLIENT_MEM_INFO **ppsDstMemInfo); | ||
498 | |||
499 | IMG_IMPORT | ||
500 | PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapDeviceMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
501 | PVRSRV_CLIENT_MEM_INFO *psMemInfo); | ||
502 | |||
503 | IMG_IMPORT | ||
504 | PVRSRV_ERROR IMG_CALLCONV PVRSRVMapExtMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
505 | PVRSRV_CLIENT_MEM_INFO *psMemInfo, | ||
506 | IMG_SYS_PHYADDR *psSysPAddr, | ||
507 | IMG_UINT32 ui32Flags); | ||
508 | IMG_IMPORT | ||
509 | PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapExtMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
510 | PVRSRV_CLIENT_MEM_INFO *psMemInfo, | ||
511 | IMG_UINT32 ui32Flags); | ||
512 | |||
513 | IMG_IMPORT | ||
514 | PVRSRV_ERROR IMG_CALLCONV PVRSRVWrapExtMemory(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
515 | IMG_HANDLE hDevMemContext, | ||
516 | IMG_SIZE_T ui32ByteSize, | ||
517 | IMG_SIZE_T ui32PageOffset, | ||
518 | IMG_BOOL bPhysContig, | ||
519 | IMG_SYS_PHYADDR *psSysPAddr, | ||
520 | IMG_VOID *pvLinAddr, | ||
521 | IMG_UINT32 ui32Flags, | ||
522 | PVRSRV_CLIENT_MEM_INFO **ppsMemInfo); | ||
523 | IMG_IMPORT | ||
524 | PVRSRV_ERROR IMG_CALLCONV PVRSRVUnwrapExtMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
525 | PVRSRV_CLIENT_MEM_INFO *psMemInfo); | ||
526 | |||
527 | PVRSRV_ERROR PVRSRVChangeDeviceMemoryAttributes(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
528 | PVRSRV_CLIENT_MEM_INFO *psClientMemInfo, | ||
529 | IMG_UINT32 ui32Attribs); | ||
530 | |||
531 | IMG_IMPORT | ||
532 | PVRSRV_ERROR IMG_CALLCONV PVRSRVMapDeviceClassMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
533 | IMG_HANDLE hDevMemContext, | ||
534 | IMG_HANDLE hDeviceClassBuffer, | ||
535 | PVRSRV_CLIENT_MEM_INFO **ppsMemInfo); | ||
536 | IMG_IMPORT | ||
537 | PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapDeviceClassMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
538 | PVRSRV_CLIENT_MEM_INFO *psMemInfo); | ||
539 | |||
540 | IMG_IMPORT | ||
541 | PVRSRV_ERROR IMG_CALLCONV PVRSRVMapPhysToUserSpace(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
542 | IMG_SYS_PHYADDR sSysPhysAddr, | ||
543 | IMG_UINT32 uiSizeInBytes, | ||
544 | IMG_PVOID *ppvUserAddr, | ||
545 | IMG_UINT32 *puiActualSize, | ||
546 | IMG_PVOID *ppvProcess); | ||
547 | |||
548 | IMG_IMPORT | ||
549 | PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapPhysToUserSpace(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
550 | IMG_PVOID pvUserAddr, | ||
551 | IMG_PVOID pvProcess); | ||
552 | |||
553 | typedef enum _PVRSRV_SYNCVAL_MODE_ | ||
554 | { | ||
555 | PVRSRV_SYNCVAL_READ = IMG_TRUE, | ||
556 | PVRSRV_SYNCVAL_WRITE = IMG_FALSE, | ||
557 | |||
558 | } PVRSRV_SYNCVAL_MODE, *PPVRSRV_SYNCVAL_MODE; | ||
559 | |||
560 | typedef IMG_UINT32 PVRSRV_SYNCVAL; | ||
561 | |||
562 | IMG_IMPORT PVRSRV_ERROR PVRSRVWaitForOpsComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo, | ||
563 | PVRSRV_SYNCVAL_MODE eMode, PVRSRV_SYNCVAL OpRequired); | ||
564 | |||
565 | IMG_IMPORT PVRSRV_ERROR PVRSRVWaitForAllOpsComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo, | ||
566 | PVRSRV_SYNCVAL_MODE eMode); | ||
567 | |||
568 | IMG_IMPORT IMG_BOOL PVRSRVTestOpsComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo, | ||
569 | PVRSRV_SYNCVAL_MODE eMode, PVRSRV_SYNCVAL OpRequired); | ||
570 | |||
571 | IMG_IMPORT IMG_BOOL PVRSRVTestAllOpsComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo, | ||
572 | PVRSRV_SYNCVAL_MODE eMode); | ||
573 | |||
574 | IMG_IMPORT IMG_BOOL PVRSRVTestOpsNotComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo, | ||
575 | PVRSRV_SYNCVAL_MODE eMode, PVRSRV_SYNCVAL OpRequired); | ||
576 | |||
577 | IMG_IMPORT IMG_BOOL PVRSRVTestAllOpsNotComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo, | ||
578 | PVRSRV_SYNCVAL_MODE eMode); | ||
579 | |||
580 | IMG_IMPORT PVRSRV_SYNCVAL PVRSRVGetPendingOpSyncVal(PPVRSRV_CLIENT_MEM_INFO psMemInfo, | ||
581 | PVRSRV_SYNCVAL_MODE eMode); | ||
582 | |||
583 | |||
584 | IMG_IMPORT | ||
585 | PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumerateDeviceClass(IMG_CONST PVRSRV_CONNECTION *psConnection, | ||
586 | PVRSRV_DEVICE_CLASS DeviceClass, | ||
587 | IMG_UINT32 *pui32DevCount, | ||
588 | IMG_UINT32 *pui32DevID); | ||
589 | |||
590 | IMG_IMPORT | ||
591 | IMG_HANDLE IMG_CALLCONV PVRSRVOpenDCDevice(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
592 | IMG_UINT32 ui32DeviceID); | ||
593 | |||
594 | IMG_IMPORT | ||
595 | PVRSRV_ERROR IMG_CALLCONV PVRSRVCloseDCDevice(IMG_CONST PVRSRV_CONNECTION *psConnection, IMG_HANDLE hDevice); | ||
596 | |||
597 | IMG_IMPORT | ||
598 | PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumDCFormats (IMG_HANDLE hDevice, | ||
599 | IMG_UINT32 *pui32Count, | ||
600 | DISPLAY_FORMAT *psFormat); | ||
601 | |||
602 | IMG_IMPORT | ||
603 | PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumDCDims (IMG_HANDLE hDevice, | ||
604 | IMG_UINT32 *pui32Count, | ||
605 | DISPLAY_FORMAT *psFormat, | ||
606 | DISPLAY_DIMS *psDims); | ||
607 | |||
608 | IMG_IMPORT | ||
609 | PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDCSystemBuffer(IMG_HANDLE hDevice, | ||
610 | IMG_HANDLE *phBuffer); | ||
611 | |||
612 | IMG_IMPORT | ||
613 | PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDCInfo(IMG_HANDLE hDevice, | ||
614 | DISPLAY_INFO* psDisplayInfo); | ||
615 | |||
616 | IMG_IMPORT | ||
617 | PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateDCSwapChain (IMG_HANDLE hDevice, | ||
618 | IMG_UINT32 ui32Flags, | ||
619 | DISPLAY_SURF_ATTRIBUTES *psDstSurfAttrib, | ||
620 | DISPLAY_SURF_ATTRIBUTES *psSrcSurfAttrib, | ||
621 | IMG_UINT32 ui32BufferCount, | ||
622 | IMG_UINT32 ui32OEMFlags, | ||
623 | IMG_UINT32 *pui32SwapChainID, | ||
624 | IMG_HANDLE *phSwapChain); | ||
625 | |||
626 | IMG_IMPORT | ||
627 | PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyDCSwapChain (IMG_HANDLE hDevice, | ||
628 | IMG_HANDLE hSwapChain); | ||
629 | |||
630 | IMG_IMPORT | ||
631 | PVRSRV_ERROR IMG_CALLCONV PVRSRVSetDCDstRect (IMG_HANDLE hDevice, | ||
632 | IMG_HANDLE hSwapChain, | ||
633 | IMG_RECT *psDstRect); | ||
634 | |||
635 | IMG_IMPORT | ||
636 | PVRSRV_ERROR IMG_CALLCONV PVRSRVSetDCSrcRect (IMG_HANDLE hDevice, | ||
637 | IMG_HANDLE hSwapChain, | ||
638 | IMG_RECT *psSrcRect); | ||
639 | |||
640 | IMG_IMPORT | ||
641 | PVRSRV_ERROR IMG_CALLCONV PVRSRVSetDCDstColourKey (IMG_HANDLE hDevice, | ||
642 | IMG_HANDLE hSwapChain, | ||
643 | IMG_UINT32 ui32CKColour); | ||
644 | |||
645 | IMG_IMPORT | ||
646 | PVRSRV_ERROR IMG_CALLCONV PVRSRVSetDCSrcColourKey (IMG_HANDLE hDevice, | ||
647 | IMG_HANDLE hSwapChain, | ||
648 | IMG_UINT32 ui32CKColour); | ||
649 | |||
650 | IMG_IMPORT | ||
651 | PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDCBuffers(IMG_HANDLE hDevice, | ||
652 | IMG_HANDLE hSwapChain, | ||
653 | IMG_HANDLE *phBuffer); | ||
654 | |||
655 | IMG_IMPORT | ||
656 | PVRSRV_ERROR IMG_CALLCONV PVRSRVSwapToDCBuffer (IMG_HANDLE hDevice, | ||
657 | IMG_HANDLE hBuffer, | ||
658 | IMG_UINT32 ui32ClipRectCount, | ||
659 | IMG_RECT *psClipRect, | ||
660 | IMG_UINT32 ui32SwapInterval, | ||
661 | IMG_HANDLE hPrivateTag); | ||
662 | |||
663 | IMG_IMPORT | ||
664 | PVRSRV_ERROR IMG_CALLCONV PVRSRVSwapToDCSystem (IMG_HANDLE hDevice, | ||
665 | IMG_HANDLE hSwapChain); | ||
666 | |||
667 | |||
668 | IMG_IMPORT | ||
669 | IMG_HANDLE IMG_CALLCONV PVRSRVOpenBCDevice(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
670 | IMG_UINT32 ui32DeviceID); | ||
671 | |||
672 | IMG_IMPORT | ||
673 | PVRSRV_ERROR IMG_CALLCONV PVRSRVCloseBCDevice(IMG_CONST PVRSRV_CONNECTION *psConnection, | ||
674 | IMG_HANDLE hDevice); | ||
675 | |||
676 | IMG_IMPORT | ||
677 | PVRSRV_ERROR IMG_CALLCONV PVRSRVGetBCBufferInfo(IMG_HANDLE hDevice, | ||
678 | BUFFER_INFO *psBuffer); | ||
679 | |||
680 | IMG_IMPORT | ||
681 | PVRSRV_ERROR IMG_CALLCONV PVRSRVGetBCBuffer(IMG_HANDLE hDevice, | ||
682 | IMG_UINT32 ui32BufferIndex, | ||
683 | IMG_HANDLE *phBuffer); | ||
684 | |||
685 | |||
686 | IMG_IMPORT | ||
687 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpInit(IMG_CONST PVRSRV_CONNECTION *psConnection); | ||
688 | |||
689 | IMG_IMPORT | ||
690 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpStartInitPhase(IMG_CONST PVRSRV_CONNECTION *psConnection); | ||
691 | |||
692 | IMG_IMPORT | ||
693 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpStopInitPhase(IMG_CONST PVRSRV_CONNECTION *psConnection); | ||
694 | |||
695 | IMG_IMPORT | ||
696 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpMemPol(IMG_CONST PVRSRV_CONNECTION *psConnection, | ||
697 | PVRSRV_CLIENT_MEM_INFO *psMemInfo, | ||
698 | IMG_UINT32 ui32Offset, | ||
699 | IMG_UINT32 ui32Value, | ||
700 | IMG_UINT32 ui32Mask, | ||
701 | PDUMP_POLL_OPERATOR eOperator, | ||
702 | IMG_UINT32 ui32Flags); | ||
703 | |||
704 | IMG_IMPORT | ||
705 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpSyncPol(IMG_CONST PVRSRV_CONNECTION *psConnection, | ||
706 | PVRSRV_CLIENT_SYNC_INFO *psClientSyncInfo, | ||
707 | IMG_BOOL bIsRead, | ||
708 | IMG_UINT32 ui32Value, | ||
709 | IMG_UINT32 ui32Mask); | ||
710 | |||
711 | IMG_IMPORT | ||
712 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpMem(IMG_CONST PVRSRV_CONNECTION *psConnection, | ||
713 | IMG_PVOID pvAltLinAddr, | ||
714 | PVRSRV_CLIENT_MEM_INFO *psMemInfo, | ||
715 | IMG_UINT32 ui32Offset, | ||
716 | IMG_UINT32 ui32Bytes, | ||
717 | IMG_UINT32 ui32Flags); | ||
718 | |||
719 | IMG_IMPORT | ||
720 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpSync(IMG_CONST PVRSRV_CONNECTION *psConnection, | ||
721 | IMG_PVOID pvAltLinAddr, | ||
722 | PVRSRV_CLIENT_SYNC_INFO *psClientSyncInfo, | ||
723 | IMG_UINT32 ui32Offset, | ||
724 | IMG_UINT32 ui32Bytes); | ||
725 | |||
726 | IMG_IMPORT | ||
727 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpReg(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
728 | IMG_CHAR *pszRegRegion, | ||
729 | IMG_UINT32 ui32RegAddr, | ||
730 | IMG_UINT32 ui32RegValue, | ||
731 | IMG_UINT32 ui32Flags); | ||
732 | |||
733 | IMG_IMPORT | ||
734 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpRegPolWithFlags(const PVRSRV_DEV_DATA *psDevData, | ||
735 | IMG_CHAR *pszRegRegion, | ||
736 | IMG_UINT32 ui32RegAddr, | ||
737 | IMG_UINT32 ui32RegValue, | ||
738 | IMG_UINT32 ui32Mask, | ||
739 | IMG_UINT32 ui32Flags); | ||
740 | IMG_IMPORT | ||
741 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpRegPol(const PVRSRV_DEV_DATA *psDevData, | ||
742 | IMG_CHAR *pszRegRegion, | ||
743 | IMG_UINT32 ui32RegAddr, | ||
744 | IMG_UINT32 ui32RegValue, | ||
745 | IMG_UINT32 ui32Mask); | ||
746 | |||
747 | IMG_IMPORT | ||
748 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpPDReg(IMG_CONST PVRSRV_CONNECTION *psConnection, | ||
749 | IMG_UINT32 ui32RegAddr, | ||
750 | IMG_UINT32 ui32RegValue); | ||
751 | IMG_IMPORT | ||
752 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpPDDevPAddr(IMG_CONST PVRSRV_CONNECTION *psConnection, | ||
753 | PVRSRV_CLIENT_MEM_INFO *psMemInfo, | ||
754 | IMG_UINT32 ui32Offset, | ||
755 | IMG_DEV_PHYADDR sPDDevPAddr); | ||
756 | |||
757 | IMG_IMPORT | ||
758 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpMemPages(IMG_CONST PVRSRV_CONNECTION *psConnection, | ||
759 | IMG_HANDLE hKernelMemInfo, | ||
760 | IMG_DEV_PHYADDR *pPages, | ||
761 | IMG_UINT32 ui32NumPages, | ||
762 | IMG_DEV_VIRTADDR sDevAddr, | ||
763 | IMG_UINT32 ui32Start, | ||
764 | IMG_UINT32 ui32Length, | ||
765 | IMG_BOOL bContinuous); | ||
766 | |||
767 | IMG_IMPORT | ||
768 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpSetFrame(IMG_CONST PVRSRV_CONNECTION *psConnection, | ||
769 | IMG_UINT32 ui32Frame); | ||
770 | |||
771 | IMG_IMPORT | ||
772 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpComment(IMG_CONST PVRSRV_CONNECTION *psConnection, | ||
773 | IMG_CONST IMG_CHAR *pszComment, | ||
774 | IMG_BOOL bContinuous); | ||
775 | |||
776 | IMG_IMPORT | ||
777 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpCommentf(IMG_CONST PVRSRV_CONNECTION *psConnection, | ||
778 | IMG_BOOL bContinuous, | ||
779 | IMG_CONST IMG_CHAR *pszFormat, ...) | ||
780 | #if !defined(USE_CODE) | ||
781 | IMG_FORMAT_PRINTF(3, 4) | ||
782 | #endif | ||
783 | ; | ||
784 | |||
785 | IMG_IMPORT | ||
786 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpCommentWithFlagsf(IMG_CONST PVRSRV_CONNECTION *psConnection, | ||
787 | IMG_UINT32 ui32Flags, | ||
788 | IMG_CONST IMG_CHAR *pszFormat, ...) | ||
789 | #if !defined(USE_CODE) | ||
790 | IMG_FORMAT_PRINTF(3, 4) | ||
791 | #endif | ||
792 | ; | ||
793 | |||
794 | IMG_IMPORT | ||
795 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpDriverInfo(IMG_CONST PVRSRV_CONNECTION *psConnection, | ||
796 | IMG_CHAR *pszString, | ||
797 | IMG_BOOL bContinuous); | ||
798 | |||
799 | IMG_IMPORT | ||
800 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpIsCapturing(IMG_CONST PVRSRV_CONNECTION *psConnection, | ||
801 | IMG_BOOL *pbIsCapturing); | ||
802 | |||
803 | IMG_IMPORT | ||
804 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpBitmap(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
805 | IMG_CHAR *pszFileName, | ||
806 | IMG_UINT32 ui32FileOffset, | ||
807 | IMG_UINT32 ui32Width, | ||
808 | IMG_UINT32 ui32Height, | ||
809 | IMG_UINT32 ui32StrideInBytes, | ||
810 | IMG_DEV_VIRTADDR sDevBaseAddr, | ||
811 | IMG_HANDLE hDevMemContext, | ||
812 | IMG_UINT32 ui32Size, | ||
813 | PDUMP_PIXEL_FORMAT ePixelFormat, | ||
814 | PDUMP_MEM_FORMAT eMemFormat, | ||
815 | IMG_UINT32 ui32PDumpFlags); | ||
816 | |||
817 | IMG_IMPORT | ||
818 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpRegRead(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
819 | IMG_CONST IMG_CHAR *pszRegRegion, | ||
820 | IMG_CONST IMG_CHAR *pszFileName, | ||
821 | IMG_UINT32 ui32FileOffset, | ||
822 | IMG_UINT32 ui32Address, | ||
823 | IMG_UINT32 ui32Size, | ||
824 | IMG_UINT32 ui32PDumpFlags); | ||
825 | |||
826 | |||
827 | IMG_IMPORT | ||
828 | IMG_BOOL IMG_CALLCONV PVRSRVPDumpIsCapturingTest(IMG_CONST PVRSRV_CONNECTION *psConnection); | ||
829 | |||
830 | IMG_IMPORT | ||
831 | PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpCycleCountRegRead(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
832 | IMG_UINT32 ui32RegOffset, | ||
833 | IMG_BOOL bLastFrame); | ||
834 | |||
835 | IMG_IMPORT IMG_HANDLE PVRSRVLoadLibrary(const IMG_CHAR *pszLibraryName); | ||
836 | IMG_IMPORT PVRSRV_ERROR PVRSRVUnloadLibrary(IMG_HANDLE hExtDrv); | ||
837 | IMG_IMPORT PVRSRV_ERROR PVRSRVGetLibFuncAddr(IMG_HANDLE hExtDrv, const IMG_CHAR *pszFunctionName, IMG_VOID **ppvFuncAddr); | ||
838 | |||
839 | IMG_IMPORT IMG_UINT32 PVRSRVClockus (void); | ||
840 | IMG_IMPORT IMG_VOID PVRSRVWaitus (IMG_UINT32 ui32Timeus); | ||
841 | IMG_IMPORT IMG_VOID PVRSRVReleaseThreadQuanta (void); | ||
842 | IMG_IMPORT IMG_UINTPTR_T IMG_CALLCONV PVRSRVGetCurrentProcessID(void); | ||
843 | IMG_IMPORT IMG_CHAR * IMG_CALLCONV PVRSRVSetLocale(const IMG_CHAR *pszLocale); | ||
844 | |||
845 | |||
846 | |||
847 | |||
848 | |||
849 | IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVCreateAppHintState(IMG_MODULE_ID eModuleID, | ||
850 | const IMG_CHAR *pszAppName, | ||
851 | IMG_VOID **ppvState); | ||
852 | IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVFreeAppHintState(IMG_MODULE_ID eModuleID, | ||
853 | IMG_VOID *pvHintState); | ||
854 | |||
855 | IMG_IMPORT IMG_BOOL IMG_CALLCONV PVRSRVGetAppHint(IMG_VOID *pvHintState, | ||
856 | const IMG_CHAR *pszHintName, | ||
857 | IMG_DATA_TYPE eDataType, | ||
858 | const IMG_VOID *pvDefault, | ||
859 | IMG_VOID *pvReturn); | ||
860 | |||
861 | IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVAllocUserModeMem (IMG_SIZE_T ui32Size); | ||
862 | IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVCallocUserModeMem (IMG_SIZE_T ui32Size); | ||
863 | IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVReallocUserModeMem (IMG_PVOID pvBase, IMG_SIZE_T uNewSize); | ||
864 | IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVFreeUserModeMem (IMG_PVOID pvMem); | ||
865 | IMG_IMPORT IMG_VOID PVRSRVMemCopy(IMG_VOID *pvDst, const IMG_VOID *pvSrc, IMG_SIZE_T ui32Size); | ||
866 | IMG_IMPORT IMG_VOID PVRSRVMemSet(IMG_VOID *pvDest, IMG_UINT8 ui8Value, IMG_SIZE_T ui32Size); | ||
867 | |||
868 | struct _PVRSRV_MUTEX_OPAQUE_STRUCT_; | ||
869 | typedef struct _PVRSRV_MUTEX_OPAQUE_STRUCT_ *PVRSRV_MUTEX_HANDLE; | ||
870 | |||
871 | IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateMutex(PVRSRV_MUTEX_HANDLE *phMutex); | ||
872 | IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyMutex(PVRSRV_MUTEX_HANDLE hMutex); | ||
873 | IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVLockMutex(PVRSRV_MUTEX_HANDLE hMutex); | ||
874 | IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVUnlockMutex(PVRSRV_MUTEX_HANDLE hMutex); | ||
875 | |||
876 | struct _PVRSRV_SEMAPHORE_OPAQUE_STRUCT_; | ||
877 | typedef struct _PVRSRV_SEMAPHORE_OPAQUE_STRUCT_ *PVRSRV_SEMAPHORE_HANDLE; | ||
878 | |||
879 | |||
880 | #define IMG_SEMAPHORE_WAIT_INFINITE ((IMG_UINT64)0xFFFFFFFFFFFFFFFFull) | ||
881 | |||
882 | |||
883 | #if !defined(USE_CODE) | ||
884 | |||
885 | #ifdef INLINE_IS_PRAGMA | ||
886 | #pragma inline(PVRSRVCreateSemaphore) | ||
887 | #endif | ||
888 | static INLINE PVRSRV_ERROR PVRSRVCreateSemaphore(PVRSRV_SEMAPHORE_HANDLE *phSemaphore, IMG_INT iInitialCount) | ||
889 | { | ||
890 | PVR_UNREFERENCED_PARAMETER(iInitialCount); | ||
891 | *phSemaphore = 0; | ||
892 | return PVRSRV_OK; | ||
893 | } | ||
894 | |||
895 | #ifdef INLINE_IS_PRAGMA | ||
896 | #pragma inline(PVRSRVDestroySemaphore) | ||
897 | #endif | ||
898 | static INLINE PVRSRV_ERROR PVRSRVDestroySemaphore(PVRSRV_SEMAPHORE_HANDLE hSemaphore) | ||
899 | { | ||
900 | PVR_UNREFERENCED_PARAMETER(hSemaphore); | ||
901 | return PVRSRV_OK; | ||
902 | } | ||
903 | |||
904 | #ifdef INLINE_IS_PRAGMA | ||
905 | #pragma inline(PVRSRVWaitSemaphore) | ||
906 | #endif | ||
907 | static INLINE PVRSRV_ERROR PVRSRVWaitSemaphore(PVRSRV_SEMAPHORE_HANDLE hSemaphore, IMG_UINT64 ui64TimeoutMicroSeconds) | ||
908 | { | ||
909 | PVR_UNREFERENCED_PARAMETER(hSemaphore); | ||
910 | PVR_UNREFERENCED_PARAMETER(ui64TimeoutMicroSeconds); | ||
911 | return PVRSRV_ERROR_INVALID_PARAMS; | ||
912 | } | ||
913 | |||
914 | #ifdef INLINE_IS_PRAGMA | ||
915 | #pragma inline(PVRSRVPostSemaphore) | ||
916 | #endif | ||
917 | static INLINE IMG_VOID PVRSRVPostSemaphore(PVRSRV_SEMAPHORE_HANDLE hSemaphore, IMG_INT iPostCount) | ||
918 | { | ||
919 | PVR_UNREFERENCED_PARAMETER(hSemaphore); | ||
920 | PVR_UNREFERENCED_PARAMETER(iPostCount); | ||
921 | } | ||
922 | |||
923 | #endif | ||
924 | |||
925 | |||
926 | #if (defined(DEBUG) && defined(__linux__)) | ||
927 | IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVAllocUserModeMemTracking(IMG_SIZE_T ui32Size, IMG_CHAR *pszFileName, IMG_UINT32 ui32LineNumber); | ||
928 | |||
929 | IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVCallocUserModeMemTracking(IMG_SIZE_T ui32Size, IMG_CHAR *pszFileName, IMG_UINT32 ui32LineNumber); | ||
930 | |||
931 | IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVFreeUserModeMemTracking(IMG_VOID *pvMem); | ||
932 | |||
933 | IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVReallocUserModeMemTracking(IMG_VOID *pvMem, IMG_SIZE_T ui32NewSize, | ||
934 | IMG_CHAR *pszFileName, IMG_UINT32 ui32LineNumber); | ||
935 | #endif | ||
936 | |||
937 | IMG_IMPORT PVRSRV_ERROR PVRSRVEventObjectWait(const PVRSRV_CONNECTION *psConnection, | ||
938 | IMG_HANDLE hOSEvent); | ||
939 | |||
940 | IMG_IMPORT | ||
941 | PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateSyncInfoModObj(const PVRSRV_CONNECTION *psConnection, | ||
942 | IMG_HANDLE *phKernelSyncInfoModObj); | ||
943 | |||
944 | IMG_IMPORT | ||
945 | PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroySyncInfoModObj(const PVRSRV_CONNECTION *psConnection, | ||
946 | IMG_HANDLE hKernelSyncInfoModObj); | ||
947 | |||
948 | |||
949 | |||
950 | IMG_IMPORT | ||
951 | PVRSRV_ERROR IMG_CALLCONV PVRSRVModifyPendingSyncOps(const PVRSRV_CONNECTION *psConnection, | ||
952 | IMG_HANDLE hKernelSyncInfoModObj, | ||
953 | PVRSRV_CLIENT_SYNC_INFO *psSyncInfo, | ||
954 | IMG_UINT32 ui32ModifyFlags, | ||
955 | IMG_UINT32 *pui32ReadOpsPending, | ||
956 | IMG_UINT32 *pui32WriteOpsPending); | ||
957 | |||
958 | IMG_IMPORT | ||
959 | PVRSRV_ERROR IMG_CALLCONV PVRSRVModifyCompleteSyncOps(const PVRSRV_CONNECTION *psConnection, | ||
960 | IMG_HANDLE hKernelSyncInfoModObj); | ||
961 | |||
962 | IMG_IMPORT | ||
963 | PVRSRV_ERROR IMG_CALLCONV PVRSRVSyncOpsFlushToModObj(const PVRSRV_CONNECTION *psConnection, | ||
964 | IMG_HANDLE hKernelSyncInfoModObj, | ||
965 | IMG_BOOL bWait); | ||
966 | |||
967 | IMG_IMPORT | ||
968 | PVRSRV_ERROR IMG_CALLCONV PVRSRVSyncOpsFlushToDelta(const PVRSRV_CONNECTION *psConnection, | ||
969 | PVRSRV_CLIENT_SYNC_INFO *psClientSyncInfo, | ||
970 | IMG_UINT32 ui32Delta, | ||
971 | IMG_BOOL bWait); | ||
972 | |||
973 | IMG_IMPORT | ||
974 | PVRSRV_ERROR IMG_CALLCONV PVRSRVAllocSyncInfo(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
975 | PVRSRV_CLIENT_SYNC_INFO **ppsSyncInfo); | ||
976 | |||
977 | IMG_IMPORT | ||
978 | PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeSyncInfo(IMG_CONST PVRSRV_DEV_DATA *psDevData, | ||
979 | PVRSRV_CLIENT_SYNC_INFO *psSyncInfo); | ||
980 | |||
981 | IMG_IMPORT | ||
982 | const IMG_CHAR *PVRSRVGetErrorString(PVRSRV_ERROR eError); | ||
983 | |||
984 | |||
985 | #define TIME_NOT_PASSED_UINT32(a,b,c) (((a) - (b)) < (c)) | ||
986 | |||
987 | #if defined (__cplusplus) | ||
988 | } | ||
989 | #endif | ||
990 | #endif | ||
991 | |||