aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/pvr/services.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/pvr/services.h')
-rw-r--r--drivers/gpu/pvr/services.h991
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)
31extern "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
116typedef 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
146typedef 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
170typedef 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
180typedef struct _PVRSRV_DEV_DATA_ *PPVRSRV_DEV_DATA;
181
182typedef 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
193typedef 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
203typedef 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
212typedef struct _PVRSRV_DEV_DATA_
213{
214 IMG_CONST PVRSRV_CONNECTION *psConnection;
215 IMG_HANDLE hDevCookie;
216
217} PVRSRV_DEV_DATA;
218
219typedef struct _PVRSRV_MEMUPDATE_
220{
221 IMG_UINTPTR_T ui32UpdateAddr;
222 IMG_UINT32 ui32UpdateVal;
223} PVRSRV_MEMUPDATE;
224
225typedef struct _PVRSRV_HWREG_
226{
227 IMG_UINT32 ui32RegAddr;
228 IMG_UINT32 ui32RegVal;
229} PVRSRV_HWREG;
230
231typedef 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
242typedef struct _PVRSRV_KERNEL_MEM_INFO_ *PPVRSRV_KERNEL_MEM_INFO;
243
244typedef 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)
305typedef 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
318typedef struct _PVRSRV_EVENTOBJECT_
319{
320
321 IMG_CHAR szName[EVENTOBJNAME_MAXLENGTH];
322
323 IMG_HANDLE hOSEventKM;
324
325} PVRSRV_EVENTOBJECT;
326
327typedef 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
334typedef 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
388typedef enum _PVRSRV_CLIENT_EVENT_
389{
390 PVRSRV_CLIENT_EVENT_HWTIMEOUT = 0,
391} PVRSRV_CLIENT_EVENT;
392
393IMG_IMPORT
394PVRSRV_ERROR IMG_CALLCONV PVRSRVClientEvent(IMG_CONST PVRSRV_CLIENT_EVENT eEvent,
395 PVRSRV_DEV_DATA *psDevData,
396 IMG_PVOID pvData);
397
398IMG_IMPORT
399PVRSRV_ERROR IMG_CALLCONV PVRSRVConnect(PVRSRV_CONNECTION **ppsConnection, IMG_UINT32 ui32SrvFlags);
400
401IMG_IMPORT
402PVRSRV_ERROR IMG_CALLCONV PVRSRVDisconnect(IMG_CONST PVRSRV_CONNECTION *psConnection);
403
404IMG_IMPORT
405PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumerateDevices(IMG_CONST PVRSRV_CONNECTION *psConnection,
406 IMG_UINT32 *puiNumDevices,
407 PVRSRV_DEVICE_IDENTIFIER *puiDevIDs);
408IMG_IMPORT
409PVRSRV_ERROR IMG_CALLCONV PVRSRVAcquireDeviceData(IMG_CONST PVRSRV_CONNECTION *psConnection,
410 IMG_UINT32 uiDevIndex,
411 PVRSRV_DEV_DATA *psDevData,
412 PVRSRV_DEVICE_TYPE eDeviceType);
413IMG_IMPORT
414PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfo (IMG_CONST PVRSRV_CONNECTION *psConnection, PVRSRV_MISC_INFO *psMiscInfo);
415
416IMG_IMPORT
417PVRSRV_ERROR IMG_CALLCONV PVRSRVReleaseMiscInfo (IMG_CONST PVRSRV_CONNECTION *psConnection, PVRSRV_MISC_INFO *psMiscInfo);
418
419#if 1
420IMG_IMPORT
421IMG_UINT32 ReadHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset);
422
423IMG_IMPORT
424IMG_VOID WriteHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset, IMG_UINT32 ui32Value);
425
426IMG_IMPORT IMG_VOID WriteHWRegs(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Count, PVRSRV_HWREG *psHWRegs);
427#endif
428
429IMG_IMPORT
430PVRSRV_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
438IMG_IMPORT
439PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateDeviceMemContext(IMG_CONST PVRSRV_DEV_DATA *psDevData,
440 IMG_HANDLE *phDevMemContext,
441 IMG_UINT32 *pui32SharedHeapCount,
442 PVRSRV_HEAP_INFO *psHeapInfo);
443
444IMG_IMPORT
445PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyDeviceMemContext(IMG_CONST PVRSRV_DEV_DATA *psDevData,
446 IMG_HANDLE hDevMemContext);
447
448IMG_IMPORT
449PVRSRV_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
465IMG_IMPORT
466PVRSRV_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
473IMG_IMPORT
474PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeDeviceMem(IMG_CONST PVRSRV_DEV_DATA *psDevData,
475 PVRSRV_CLIENT_MEM_INFO *psMemInfo);
476
477IMG_IMPORT
478PVRSRV_ERROR IMG_CALLCONV PVRSRVExportDeviceMem(IMG_CONST PVRSRV_DEV_DATA *psDevData,
479 PVRSRV_CLIENT_MEM_INFO *psMemInfo,
480 IMG_HANDLE *phMemInfo);
481
482IMG_IMPORT
483PVRSRV_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);
489IMG_IMPORT
490PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeDeviceVirtualMem(IMG_CONST PVRSRV_DEV_DATA *psDevData,
491 PVRSRV_CLIENT_MEM_INFO *psMemInfo);
492
493IMG_IMPORT
494PVRSRV_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
499IMG_IMPORT
500PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapDeviceMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData,
501 PVRSRV_CLIENT_MEM_INFO *psMemInfo);
502
503IMG_IMPORT
504PVRSRV_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);
508IMG_IMPORT
509PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapExtMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData,
510 PVRSRV_CLIENT_MEM_INFO *psMemInfo,
511 IMG_UINT32 ui32Flags);
512
513IMG_IMPORT
514PVRSRV_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);
523IMG_IMPORT
524PVRSRV_ERROR IMG_CALLCONV PVRSRVUnwrapExtMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData,
525 PVRSRV_CLIENT_MEM_INFO *psMemInfo);
526
527PVRSRV_ERROR PVRSRVChangeDeviceMemoryAttributes(IMG_CONST PVRSRV_DEV_DATA *psDevData,
528 PVRSRV_CLIENT_MEM_INFO *psClientMemInfo,
529 IMG_UINT32 ui32Attribs);
530
531IMG_IMPORT
532PVRSRV_ERROR IMG_CALLCONV PVRSRVMapDeviceClassMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData,
533 IMG_HANDLE hDevMemContext,
534 IMG_HANDLE hDeviceClassBuffer,
535 PVRSRV_CLIENT_MEM_INFO **ppsMemInfo);
536IMG_IMPORT
537PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapDeviceClassMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData,
538 PVRSRV_CLIENT_MEM_INFO *psMemInfo);
539
540IMG_IMPORT
541PVRSRV_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
548IMG_IMPORT
549PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapPhysToUserSpace(IMG_CONST PVRSRV_DEV_DATA *psDevData,
550 IMG_PVOID pvUserAddr,
551 IMG_PVOID pvProcess);
552
553typedef 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
560typedef IMG_UINT32 PVRSRV_SYNCVAL;
561
562IMG_IMPORT PVRSRV_ERROR PVRSRVWaitForOpsComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
563 PVRSRV_SYNCVAL_MODE eMode, PVRSRV_SYNCVAL OpRequired);
564
565IMG_IMPORT PVRSRV_ERROR PVRSRVWaitForAllOpsComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
566 PVRSRV_SYNCVAL_MODE eMode);
567
568IMG_IMPORT IMG_BOOL PVRSRVTestOpsComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
569 PVRSRV_SYNCVAL_MODE eMode, PVRSRV_SYNCVAL OpRequired);
570
571IMG_IMPORT IMG_BOOL PVRSRVTestAllOpsComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
572 PVRSRV_SYNCVAL_MODE eMode);
573
574IMG_IMPORT IMG_BOOL PVRSRVTestOpsNotComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
575 PVRSRV_SYNCVAL_MODE eMode, PVRSRV_SYNCVAL OpRequired);
576
577IMG_IMPORT IMG_BOOL PVRSRVTestAllOpsNotComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
578 PVRSRV_SYNCVAL_MODE eMode);
579
580IMG_IMPORT PVRSRV_SYNCVAL PVRSRVGetPendingOpSyncVal(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
581 PVRSRV_SYNCVAL_MODE eMode);
582
583
584IMG_IMPORT
585PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumerateDeviceClass(IMG_CONST PVRSRV_CONNECTION *psConnection,
586 PVRSRV_DEVICE_CLASS DeviceClass,
587 IMG_UINT32 *pui32DevCount,
588 IMG_UINT32 *pui32DevID);
589
590IMG_IMPORT
591IMG_HANDLE IMG_CALLCONV PVRSRVOpenDCDevice(IMG_CONST PVRSRV_DEV_DATA *psDevData,
592 IMG_UINT32 ui32DeviceID);
593
594IMG_IMPORT
595PVRSRV_ERROR IMG_CALLCONV PVRSRVCloseDCDevice(IMG_CONST PVRSRV_CONNECTION *psConnection, IMG_HANDLE hDevice);
596
597IMG_IMPORT
598PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumDCFormats (IMG_HANDLE hDevice,
599 IMG_UINT32 *pui32Count,
600 DISPLAY_FORMAT *psFormat);
601
602IMG_IMPORT
603PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumDCDims (IMG_HANDLE hDevice,
604 IMG_UINT32 *pui32Count,
605 DISPLAY_FORMAT *psFormat,
606 DISPLAY_DIMS *psDims);
607
608IMG_IMPORT
609PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDCSystemBuffer(IMG_HANDLE hDevice,
610 IMG_HANDLE *phBuffer);
611
612IMG_IMPORT
613PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDCInfo(IMG_HANDLE hDevice,
614 DISPLAY_INFO* psDisplayInfo);
615
616IMG_IMPORT
617PVRSRV_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
626IMG_IMPORT
627PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyDCSwapChain (IMG_HANDLE hDevice,
628 IMG_HANDLE hSwapChain);
629
630IMG_IMPORT
631PVRSRV_ERROR IMG_CALLCONV PVRSRVSetDCDstRect (IMG_HANDLE hDevice,
632 IMG_HANDLE hSwapChain,
633 IMG_RECT *psDstRect);
634
635IMG_IMPORT
636PVRSRV_ERROR IMG_CALLCONV PVRSRVSetDCSrcRect (IMG_HANDLE hDevice,
637 IMG_HANDLE hSwapChain,
638 IMG_RECT *psSrcRect);
639
640IMG_IMPORT
641PVRSRV_ERROR IMG_CALLCONV PVRSRVSetDCDstColourKey (IMG_HANDLE hDevice,
642 IMG_HANDLE hSwapChain,
643 IMG_UINT32 ui32CKColour);
644
645IMG_IMPORT
646PVRSRV_ERROR IMG_CALLCONV PVRSRVSetDCSrcColourKey (IMG_HANDLE hDevice,
647 IMG_HANDLE hSwapChain,
648 IMG_UINT32 ui32CKColour);
649
650IMG_IMPORT
651PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDCBuffers(IMG_HANDLE hDevice,
652 IMG_HANDLE hSwapChain,
653 IMG_HANDLE *phBuffer);
654
655IMG_IMPORT
656PVRSRV_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
663IMG_IMPORT
664PVRSRV_ERROR IMG_CALLCONV PVRSRVSwapToDCSystem (IMG_HANDLE hDevice,
665 IMG_HANDLE hSwapChain);
666
667
668IMG_IMPORT
669IMG_HANDLE IMG_CALLCONV PVRSRVOpenBCDevice(IMG_CONST PVRSRV_DEV_DATA *psDevData,
670 IMG_UINT32 ui32DeviceID);
671
672IMG_IMPORT
673PVRSRV_ERROR IMG_CALLCONV PVRSRVCloseBCDevice(IMG_CONST PVRSRV_CONNECTION *psConnection,
674 IMG_HANDLE hDevice);
675
676IMG_IMPORT
677PVRSRV_ERROR IMG_CALLCONV PVRSRVGetBCBufferInfo(IMG_HANDLE hDevice,
678 BUFFER_INFO *psBuffer);
679
680IMG_IMPORT
681PVRSRV_ERROR IMG_CALLCONV PVRSRVGetBCBuffer(IMG_HANDLE hDevice,
682 IMG_UINT32 ui32BufferIndex,
683 IMG_HANDLE *phBuffer);
684
685
686IMG_IMPORT
687PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpInit(IMG_CONST PVRSRV_CONNECTION *psConnection);
688
689IMG_IMPORT
690PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpStartInitPhase(IMG_CONST PVRSRV_CONNECTION *psConnection);
691
692IMG_IMPORT
693PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpStopInitPhase(IMG_CONST PVRSRV_CONNECTION *psConnection);
694
695IMG_IMPORT
696PVRSRV_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
704IMG_IMPORT
705PVRSRV_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
711IMG_IMPORT
712PVRSRV_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
719IMG_IMPORT
720PVRSRV_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
726IMG_IMPORT
727PVRSRV_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
733IMG_IMPORT
734PVRSRV_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);
740IMG_IMPORT
741PVRSRV_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
747IMG_IMPORT
748PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpPDReg(IMG_CONST PVRSRV_CONNECTION *psConnection,
749 IMG_UINT32 ui32RegAddr,
750 IMG_UINT32 ui32RegValue);
751IMG_IMPORT
752PVRSRV_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
757IMG_IMPORT
758PVRSRV_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
767IMG_IMPORT
768PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpSetFrame(IMG_CONST PVRSRV_CONNECTION *psConnection,
769 IMG_UINT32 ui32Frame);
770
771IMG_IMPORT
772PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpComment(IMG_CONST PVRSRV_CONNECTION *psConnection,
773 IMG_CONST IMG_CHAR *pszComment,
774 IMG_BOOL bContinuous);
775
776IMG_IMPORT
777PVRSRV_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
785IMG_IMPORT
786PVRSRV_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
794IMG_IMPORT
795PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpDriverInfo(IMG_CONST PVRSRV_CONNECTION *psConnection,
796 IMG_CHAR *pszString,
797 IMG_BOOL bContinuous);
798
799IMG_IMPORT
800PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpIsCapturing(IMG_CONST PVRSRV_CONNECTION *psConnection,
801 IMG_BOOL *pbIsCapturing);
802
803IMG_IMPORT
804PVRSRV_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
817IMG_IMPORT
818PVRSRV_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
827IMG_IMPORT
828IMG_BOOL IMG_CALLCONV PVRSRVPDumpIsCapturingTest(IMG_CONST PVRSRV_CONNECTION *psConnection);
829
830IMG_IMPORT
831PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpCycleCountRegRead(IMG_CONST PVRSRV_DEV_DATA *psDevData,
832 IMG_UINT32 ui32RegOffset,
833 IMG_BOOL bLastFrame);
834
835IMG_IMPORT IMG_HANDLE PVRSRVLoadLibrary(const IMG_CHAR *pszLibraryName);
836IMG_IMPORT PVRSRV_ERROR PVRSRVUnloadLibrary(IMG_HANDLE hExtDrv);
837IMG_IMPORT PVRSRV_ERROR PVRSRVGetLibFuncAddr(IMG_HANDLE hExtDrv, const IMG_CHAR *pszFunctionName, IMG_VOID **ppvFuncAddr);
838
839IMG_IMPORT IMG_UINT32 PVRSRVClockus (void);
840IMG_IMPORT IMG_VOID PVRSRVWaitus (IMG_UINT32 ui32Timeus);
841IMG_IMPORT IMG_VOID PVRSRVReleaseThreadQuanta (void);
842IMG_IMPORT IMG_UINTPTR_T IMG_CALLCONV PVRSRVGetCurrentProcessID(void);
843IMG_IMPORT IMG_CHAR * IMG_CALLCONV PVRSRVSetLocale(const IMG_CHAR *pszLocale);
844
845
846
847
848
849IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVCreateAppHintState(IMG_MODULE_ID eModuleID,
850 const IMG_CHAR *pszAppName,
851 IMG_VOID **ppvState);
852IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVFreeAppHintState(IMG_MODULE_ID eModuleID,
853 IMG_VOID *pvHintState);
854
855IMG_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
861IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVAllocUserModeMem (IMG_SIZE_T ui32Size);
862IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVCallocUserModeMem (IMG_SIZE_T ui32Size);
863IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVReallocUserModeMem (IMG_PVOID pvBase, IMG_SIZE_T uNewSize);
864IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVFreeUserModeMem (IMG_PVOID pvMem);
865IMG_IMPORT IMG_VOID PVRSRVMemCopy(IMG_VOID *pvDst, const IMG_VOID *pvSrc, IMG_SIZE_T ui32Size);
866IMG_IMPORT IMG_VOID PVRSRVMemSet(IMG_VOID *pvDest, IMG_UINT8 ui8Value, IMG_SIZE_T ui32Size);
867
868struct _PVRSRV_MUTEX_OPAQUE_STRUCT_;
869typedef struct _PVRSRV_MUTEX_OPAQUE_STRUCT_ *PVRSRV_MUTEX_HANDLE;
870
871IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateMutex(PVRSRV_MUTEX_HANDLE *phMutex);
872IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyMutex(PVRSRV_MUTEX_HANDLE hMutex);
873IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVLockMutex(PVRSRV_MUTEX_HANDLE hMutex);
874IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVUnlockMutex(PVRSRV_MUTEX_HANDLE hMutex);
875
876struct _PVRSRV_SEMAPHORE_OPAQUE_STRUCT_;
877typedef 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
888static 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
898static 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
907static 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
917static 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__))
927IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVAllocUserModeMemTracking(IMG_SIZE_T ui32Size, IMG_CHAR *pszFileName, IMG_UINT32 ui32LineNumber);
928
929IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVCallocUserModeMemTracking(IMG_SIZE_T ui32Size, IMG_CHAR *pszFileName, IMG_UINT32 ui32LineNumber);
930
931IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVFreeUserModeMemTracking(IMG_VOID *pvMem);
932
933IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVReallocUserModeMemTracking(IMG_VOID *pvMem, IMG_SIZE_T ui32NewSize,
934 IMG_CHAR *pszFileName, IMG_UINT32 ui32LineNumber);
935#endif
936
937IMG_IMPORT PVRSRV_ERROR PVRSRVEventObjectWait(const PVRSRV_CONNECTION *psConnection,
938 IMG_HANDLE hOSEvent);
939
940IMG_IMPORT
941PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateSyncInfoModObj(const PVRSRV_CONNECTION *psConnection,
942 IMG_HANDLE *phKernelSyncInfoModObj);
943
944IMG_IMPORT
945PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroySyncInfoModObj(const PVRSRV_CONNECTION *psConnection,
946 IMG_HANDLE hKernelSyncInfoModObj);
947
948
949
950IMG_IMPORT
951PVRSRV_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
958IMG_IMPORT
959PVRSRV_ERROR IMG_CALLCONV PVRSRVModifyCompleteSyncOps(const PVRSRV_CONNECTION *psConnection,
960 IMG_HANDLE hKernelSyncInfoModObj);
961
962IMG_IMPORT
963PVRSRV_ERROR IMG_CALLCONV PVRSRVSyncOpsFlushToModObj(const PVRSRV_CONNECTION *psConnection,
964 IMG_HANDLE hKernelSyncInfoModObj,
965 IMG_BOOL bWait);
966
967IMG_IMPORT
968PVRSRV_ERROR IMG_CALLCONV PVRSRVSyncOpsFlushToDelta(const PVRSRV_CONNECTION *psConnection,
969 PVRSRV_CLIENT_SYNC_INFO *psClientSyncInfo,
970 IMG_UINT32 ui32Delta,
971 IMG_BOOL bWait);
972
973IMG_IMPORT
974PVRSRV_ERROR IMG_CALLCONV PVRSRVAllocSyncInfo(IMG_CONST PVRSRV_DEV_DATA *psDevData,
975 PVRSRV_CLIENT_SYNC_INFO **ppsSyncInfo);
976
977IMG_IMPORT
978PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeSyncInfo(IMG_CONST PVRSRV_DEV_DATA *psDevData,
979 PVRSRV_CLIENT_SYNC_INFO *psSyncInfo);
980
981IMG_IMPORT
982const 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