Move the drivers to a separate sub-directory
[profile/ivi/intel-emgd-kmod.git] / drivers / pvr / include4 / services.h
1 /**********************************************************************
2  Copyright (c) Imagination Technologies Ltd.
3
4  Permission is hereby granted, free of charge, to any person obtaining a copy
5  of this software and associated documentation files (the "Software"), to deal
6  in the Software without restriction, including without limitation the rights
7  to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8  copies of the Software, and to permit persons to whom the Software is
9  furnished to do so, subject to the following conditions:
10
11  The above copyright notice and this permission notice shall be included in
12  all copies or substantial portions of the Software.
13
14  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17  AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20  THE SOFTWARE.
21  ******************************************************************************/
22
23 #ifndef __SERVICES_H__
24 #define __SERVICES_H__
25
26 #if defined (__cplusplus)
27 extern "C" {
28 #endif
29
30 #include "img_defs.h"
31 #include "servicesext.h"
32 #include "pdumpdefs.h"
33
34
35 #define PVRSRV_4K_PAGE_SIZE             4096UL
36
37 #define PVRSRV_MAX_CMD_SIZE             1024
38
39 #define PVRSRV_MAX_DEVICES              16
40
41 #define EVENTOBJNAME_MAXLENGTH (50)
42
43 #define PVRSRV_MEM_READ                                         (1UL<<0)
44 #define PVRSRV_MEM_WRITE                                        (1UL<<1)
45 #define PVRSRV_MEM_CACHE_CONSISTENT                     (1UL<<2)
46 #define PVRSRV_MEM_NO_SYNCOBJ                           (1UL<<3)
47 #define PVRSRV_MEM_INTERLEAVED                          (1UL<<4)
48 #define PVRSRV_MEM_DUMMY                                        (1UL<<5)
49 #define PVRSRV_MEM_EDM_PROTECT                          (1UL<<6)
50 #define PVRSRV_MEM_ZERO                                         (1UL<<7)
51 #define PVRSRV_MEM_USER_SUPPLIED_DEVVADDR       (1UL<<8)
52 #define PVRSRV_MEM_RAM_BACKED_ALLOCATION        (1UL<<9)
53 #define PVRSRV_MEM_NO_RESMAN                            (1UL<<10)
54 #define PVRSRV_MEM_EXPORTED                                     (1UL<<11)
55
56
57 #define PVRSRV_HAP_CACHED                                       (1UL<<12)
58 #define PVRSRV_HAP_UNCACHED                                     (1UL<<13)
59 #define PVRSRV_HAP_WRITECOMBINE                         (1UL<<14)
60 #define PVRSRV_HAP_CACHETYPE_MASK                       (PVRSRV_HAP_CACHED|PVRSRV_HAP_UNCACHED|PVRSRV_HAP_WRITECOMBINE)
61 #define PVRSRV_HAP_KERNEL_ONLY                          (1UL<<15)
62 #define PVRSRV_HAP_SINGLE_PROCESS                       (1UL<<16)
63 #define PVRSRV_HAP_MULTI_PROCESS                        (1UL<<17)
64 #define PVRSRV_HAP_FROM_EXISTING_PROCESS        (1UL<<18)
65 #define PVRSRV_HAP_NO_CPU_VIRTUAL                       (1UL<<19)
66 #define PVRSRV_HAP_MAPTYPE_MASK                         (PVRSRV_HAP_KERNEL_ONLY \
67                                             |PVRSRV_HAP_SINGLE_PROCESS \
68                                             |PVRSRV_HAP_MULTI_PROCESS \
69                                             |PVRSRV_HAP_FROM_EXISTING_PROCESS \
70                                             |PVRSRV_HAP_NO_CPU_VIRTUAL)
71
72 #define PVRSRV_MEM_CACHED                                       PVRSRV_HAP_CACHED
73 #define PVRSRV_MEM_UNCACHED                                     PVRSRV_HAP_UNCACHED
74 #define PVRSRV_MEM_WRITECOMBINE                         PVRSRV_HAP_WRITECOMBINE
75
76 #define PVRSRV_MEM_BACKINGSTORE_FIELD_SHIFT     (24)
77
78 #define PVRSRV_MAP_NOUSERVIRTUAL            (1UL<<27)
79
80 #define PVRSRV_NO_CONTEXT_LOSS                                  0
81 #define PVRSRV_SEVERE_LOSS_OF_CONTEXT                   1
82 #define PVRSRV_PRE_STATE_CHANGE_MASK                    0x80
83
84
85 #define PVRSRV_DEFAULT_DEV_COOKIE                       (1)
86
87
88 #define PVRSRV_MISC_INFO_TIMER_PRESENT                          (1UL<<0)
89 #define PVRSRV_MISC_INFO_CLOCKGATE_PRESENT                      (1UL<<1)
90 #define PVRSRV_MISC_INFO_MEMSTATS_PRESENT                       (1UL<<2)
91 #define PVRSRV_MISC_INFO_GLOBALEVENTOBJECT_PRESENT      (1UL<<3)
92 #define PVRSRV_MISC_INFO_DDKVERSION_PRESENT                     (1UL<<4)
93 #define PVRSRV_MISC_INFO_CPUCACHEFLUSH_PRESENT          (1UL<<5)
94
95 #define PVRSRV_MISC_INFO_RESET_PRESENT                          (1UL<<31)
96
97 #define PVRSRV_PDUMP_MAX_FILENAME_SIZE                  20
98 #define PVRSRV_PDUMP_MAX_COMMENT_SIZE                   200
99
100
101 #define PVRSRV_CHANGEDEVMEM_ATTRIBS_CACHECOHERENT               0x00000001
102
103 #define PVRSRV_MAPEXTMEMORY_FLAGS_ALTERNATEVA                   0x00000001
104 #define PVRSRV_MAPEXTMEMORY_FLAGS_PHYSCONTIG                    0x00000002
105
106 #define PVRSRV_MODIFYSYNCOPS_FLAGS_WO_INC                       0x00000001
107 #define PVRSRV_MODIFYSYNCOPS_FLAGS_RO_INC                       0x00000002
108
109 typedef enum _PVRSRV_DEVICE_TYPE_
110 {
111         PVRSRV_DEVICE_TYPE_UNKNOWN                      = 0 ,
112         PVRSRV_DEVICE_TYPE_MBX1                         = 1 ,
113         PVRSRV_DEVICE_TYPE_MBX1_LITE            = 2 ,
114
115         PVRSRV_DEVICE_TYPE_M24VA                        = 3,
116         PVRSRV_DEVICE_TYPE_MVDA2                        = 4,
117         PVRSRV_DEVICE_TYPE_MVED1                        = 5,
118         PVRSRV_DEVICE_TYPE_MSVDX                        = 6,
119
120         PVRSRV_DEVICE_TYPE_SGX                          = 7,
121
122         PVRSRV_DEVICE_TYPE_VGX                          = 8,
123
124
125         PVRSRV_DEVICE_TYPE_EXT                          = 9,
126
127     PVRSRV_DEVICE_TYPE_LAST             = 9,
128
129         PVRSRV_DEVICE_TYPE_FORCE_I32            = 0x7fffffff
130
131 } PVRSRV_DEVICE_TYPE;
132
133 #define HEAP_ID( _dev_ , _dev_heap_idx_ )       (  ((_dev_)<<24) | ((_dev_heap_idx_)&((1<<24)-1))  )
134 #define HEAP_IDX( _heap_id_ )                           ( (_heap_id_)&((1<<24) - 1 ) )
135 #define HEAP_DEV( _heap_id_ )                           ( (_heap_id_)>>24 )
136
137 #define PVRSRV_UNDEFINED_HEAP_ID                        (~0LU)
138
139 typedef enum
140 {
141         IMG_EGL                         = 0x00000001,
142         IMG_OPENGLES1           = 0x00000002,
143         IMG_OPENGLES2           = 0x00000003,
144         IMG_D3DM                        = 0x00000004,
145         IMG_SRV_UM                      = 0x00000005,
146         IMG_OPENVG                      = 0x00000006,
147         IMG_SRVCLIENT           = 0x00000007,
148         IMG_VISTAKMD            = 0x00000008,
149         IMG_VISTA3DNODE         = 0x00000009,
150         IMG_VISTAMVIDEONODE     = 0x0000000A,
151         IMG_VISTAVPBNODE        = 0x0000000B,
152         IMG_OPENGL                      = 0x0000000C,
153         IMG_D3D                         = 0x0000000D,
154 #if defined(SUPPORT_GRAPHICS_HAL)
155         IMG_GRAPHICS_HAL        = 0x0000000E
156 #endif
157
158 } IMG_MODULE_ID;
159
160
161 #define APPHINT_MAX_STRING_SIZE 256
162
163 typedef enum
164 {
165         IMG_STRING_TYPE         = 1,
166         IMG_FLOAT_TYPE          ,
167         IMG_UINT_TYPE           ,
168         IMG_INT_TYPE            ,
169         IMG_FLAG_TYPE
170 }IMG_DATA_TYPE;
171
172
173 typedef struct _PVRSRV_DEV_DATA_ *PPVRSRV_DEV_DATA;
174
175 typedef struct _PVRSRV_DEVICE_IDENTIFIER_
176 {
177         PVRSRV_DEVICE_TYPE              eDeviceType;
178         PVRSRV_DEVICE_CLASS             eDeviceClass;
179         IMG_UINT32                              ui32DeviceIndex;
180
181 } PVRSRV_DEVICE_IDENTIFIER;
182
183
184 typedef struct _PVRSRV_CLIENT_DEV_DATA_
185 {
186         IMG_UINT32              ui32NumDevices;
187         PVRSRV_DEVICE_IDENTIFIER asDevID[PVRSRV_MAX_DEVICES];
188         PVRSRV_ERROR    (*apfnDevConnect[PVRSRV_MAX_DEVICES])(PPVRSRV_DEV_DATA);
189         PVRSRV_ERROR    (*apfnDumpTrace[PVRSRV_MAX_DEVICES])(PPVRSRV_DEV_DATA);
190
191 } PVRSRV_CLIENT_DEV_DATA;
192
193
194 typedef struct _PVRSRV_CONNECTION_
195 {
196         IMG_HANDLE hServices;
197         IMG_UINT32 ui32ProcessID;
198         PVRSRV_CLIENT_DEV_DATA  sClientDevData;
199 }PVRSRV_CONNECTION;
200
201
202 typedef struct _PVRSRV_DEV_DATA_
203 {
204         PVRSRV_CONNECTION       sConnection;
205         IMG_HANDLE                      hDevCookie;
206
207 } PVRSRV_DEV_DATA;
208
209 typedef struct _PVRSRV_MEMUPDATE_
210 {
211         IMG_UINT32                      ui32UpdateAddr;
212         IMG_UINT32                      ui32UpdateVal;
213 } PVRSRV_MEMUPDATE;
214
215 typedef struct _PVRSRV_HWREG_
216 {
217         IMG_UINT32                      ui32RegAddr;
218         IMG_UINT32                      ui32RegVal;
219 } PVRSRV_HWREG;
220
221 typedef struct _PVRSRV_MEMBLK_
222 {
223         IMG_DEV_VIRTADDR        sDevVirtAddr;
224         IMG_HANDLE                      hOSMemHandle;
225         IMG_HANDLE                      hOSWrapMem;
226         IMG_HANDLE                      hBuffer;
227         IMG_HANDLE                      hResItem;
228         IMG_SYS_PHYADDR         *psIntSysPAddr;
229
230 } PVRSRV_MEMBLK;
231
232 typedef struct _PVRSRV_KERNEL_MEM_INFO_ *PPVRSRV_KERNEL_MEM_INFO;
233
234 typedef struct _PVRSRV_CLIENT_MEM_INFO_
235 {
236
237         IMG_PVOID                               pvLinAddr;
238
239
240         IMG_PVOID                               pvLinAddrKM;
241
242
243         IMG_DEV_VIRTADDR                sDevVAddr;
244
245
246
247
248
249
250         IMG_CPU_PHYADDR                 sCpuPAddr;
251
252
253         IMG_UINT32                              ui32Flags;
254
255
256
257
258         IMG_UINT32                              ui32ClientFlags;
259
260
261         IMG_SIZE_T                              ui32AllocSize;
262
263
264
265         struct _PVRSRV_CLIENT_SYNC_INFO_        *psClientSyncInfo;
266
267
268         IMG_HANDLE                                                      hMappingInfo;
269
270
271         IMG_HANDLE                                                      hKernelMemInfo;
272
273
274         IMG_HANDLE                                                      hResItem;
275
276 #if defined(SUPPORT_MEMINFO_IDS)
277         #if !defined(USE_CODE)
278
279         IMG_UINT64                                                      ui64Stamp;
280         #else
281         IMG_UINT32                                                      dummy1;
282         IMG_UINT32                                                      dummy2;
283         #endif
284 #endif
285
286         IMG_HANDLE                                                      hOSMapInfo;
287
288         struct _PVRSRV_CLIENT_MEM_INFO_         *psNext;
289
290 } PVRSRV_CLIENT_MEM_INFO, *PPVRSRV_CLIENT_MEM_INFO;
291
292
293 #define PVRSRV_MAX_CLIENT_HEAPS (32)
294 typedef struct _PVRSRV_HEAP_INFO_
295 {
296         IMG_UINT32                      ui32HeapID;
297         IMG_HANDLE                      hDevMemHeap;
298         IMG_DEV_VIRTADDR        sDevVAddrBase;
299         IMG_UINT32                      ui32HeapByteSize;
300         IMG_UINT32                      ui32Attribs;
301 }PVRSRV_HEAP_INFO;
302
303
304
305
306 typedef struct _PVRSRV_EVENTOBJECT_
307 {
308
309         IMG_CHAR        szName[EVENTOBJNAME_MAXLENGTH];
310
311         IMG_HANDLE      hOSEventKM;
312
313 } PVRSRV_EVENTOBJECT;
314
315 typedef struct _PVRSRV_MISC_INFO_
316 {
317         IMG_UINT32      ui32StateRequest;
318         IMG_UINT32      ui32StatePresent;
319
320
321         IMG_VOID        *pvSOCTimerRegisterKM;
322         IMG_VOID        *pvSOCTimerRegisterUM;
323         IMG_HANDLE      hSOCTimerRegisterOSMemHandle;
324         IMG_HANDLE      hSOCTimerRegisterMappingInfo;
325
326
327         IMG_VOID        *pvSOCClockGateRegs;
328         IMG_UINT32      ui32SOCClockGateRegsSize;
329
330
331         IMG_CHAR        *pszMemoryStr;
332         IMG_UINT32      ui32MemoryStrLen;
333
334
335         PVRSRV_EVENTOBJECT      sGlobalEventObject;
336         IMG_HANDLE                      hOSGlobalEvent;
337
338
339         IMG_UINT32      aui32DDKVersion[4];
340
341
342
343         IMG_BOOL        bCPUCacheFlushAll;
344
345         IMG_BOOL        bDeferCPUCacheFlush;
346
347         IMG_PVOID       pvRangeAddrStart;
348
349         IMG_PVOID       pvRangeAddrEnd;
350
351 } PVRSRV_MISC_INFO;
352
353
354 typedef enum _PVRSRV_CLIENT_EVENT_
355 {
356         PVRSRV_CLIENT_EVENT_HWTIMEOUT = 0,
357 } PVRSRV_CLIENT_EVENT;
358
359 IMG_IMPORT
360 PVRSRV_ERROR IMG_CALLCONV PVRSRVClientEvent(IMG_CONST PVRSRV_CLIENT_EVENT eEvent,
361                                                                                         PVRSRV_DEV_DATA *psDevData,
362                                                                                         IMG_PVOID pvData);
363
364 IMG_IMPORT
365 PVRSRV_ERROR IMG_CALLCONV PVRSRVConnect(PVRSRV_CONNECTION *psConnection);
366
367 IMG_IMPORT
368 PVRSRV_ERROR IMG_CALLCONV PVRSRVDisconnect(PVRSRV_CONNECTION *psConnection);
369
370 IMG_IMPORT
371 PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumerateDevices(IMG_CONST PVRSRV_CONNECTION                    *psConnection,
372                                                                                                         IMG_UINT32                                      *puiNumDevices,
373                                                                                                         PVRSRV_DEVICE_IDENTIFIER        *puiDevIDs);
374 IMG_IMPORT
375 PVRSRV_ERROR IMG_CALLCONV PVRSRVAcquireDeviceData(IMG_CONST PVRSRV_CONNECTION   *psConnection,
376                                                                                                         IMG_UINT32                      uiDevIndex,
377                                                                                                         PVRSRV_DEV_DATA         *psDevData,
378                                                                                                         PVRSRV_DEVICE_TYPE      eDeviceType);
379 IMG_IMPORT
380 PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfo (IMG_CONST PVRSRV_CONNECTION *psConnection, PVRSRV_MISC_INFO *psMiscInfo);
381
382 IMG_IMPORT
383 PVRSRV_ERROR IMG_CALLCONV PVRSRVReleaseMiscInfo (IMG_CONST PVRSRV_CONNECTION *psConnection, PVRSRV_MISC_INFO *psMiscInfo);
384
385 #if 1
386 IMG_IMPORT
387 IMG_UINT32 ReadHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset);
388
389 IMG_IMPORT
390 IMG_VOID WriteHWReg(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Offset, IMG_UINT32 ui32Value);
391
392 IMG_IMPORT IMG_VOID WriteHWRegs(IMG_PVOID pvLinRegBaseAddr, IMG_UINT32 ui32Count, PVRSRV_HWREG *psHWRegs);
393 #endif
394
395 IMG_IMPORT
396 PVRSRV_ERROR PVRSRVPollForValue ( const PVRSRV_CONNECTION *psConnection,
397                                                         IMG_HANDLE hOSEvent,
398                                                         volatile IMG_UINT32 *pui32LinMemAddr,
399                                                         IMG_UINT32 ui32Value,
400                                                         IMG_UINT32 ui32Mask,
401                                                         IMG_UINT32 ui32Waitus,
402                                                         IMG_UINT32 ui32Tries);
403
404 IMG_IMPORT
405 PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateDeviceMemContext(IMG_CONST PVRSRV_DEV_DATA *psDevData,
406                                                                                         IMG_HANDLE *phDevMemContext,
407                                                                                         IMG_UINT32 *pui32SharedHeapCount,
408                                                                                         PVRSRV_HEAP_INFO *psHeapInfo);
409
410 IMG_IMPORT
411 PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyDeviceMemContext(IMG_CONST PVRSRV_DEV_DATA *psDevData,
412                                                                                         IMG_HANDLE                      hDevMemContext);
413
414 IMG_IMPORT
415 PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDeviceMemHeapInfo(IMG_CONST PVRSRV_DEV_DATA *psDevData,
416                                                                                         IMG_HANDLE hDevMemContext,
417                                                                                         IMG_UINT32 *pui32SharedHeapCount,
418                                                                                         PVRSRV_HEAP_INFO *psHeapInfo);
419
420 #if defined(PVRSRV_LOG_MEMORY_ALLOCS)
421         #define PVRSRVAllocDeviceMem_log(psDevData, hDevMemHeap, ui32Attribs, ui32Size, ui32Alignment, ppsMemInfo, logStr) \
422                 (PVR_TRACE(("PVRSRVAllocDeviceMem(" #psDevData "," #hDevMemHeap "," #ui32Attribs "," #ui32Size "," #ui32Alignment "," #ppsMemInfo ")" \
423                         ": " logStr " (size = 0x%lx)", ui32Size)), \
424                 PVRSRVAllocDeviceMem(psDevData, hDevMemHeap, ui32Attribs, ui32Size, ui32Alignment, ppsMemInfo))
425 #else
426         #define PVRSRVAllocDeviceMem_log(psDevData, hDevMemHeap, ui32Attribs, ui32Size, ui32Alignment, ppsMemInfo, logStr) \
427                 PVRSRVAllocDeviceMem(psDevData, hDevMemHeap, ui32Attribs, ui32Size, ui32Alignment, ppsMemInfo)
428 #endif
429
430
431 IMG_IMPORT
432 PVRSRV_ERROR IMG_CALLCONV PVRSRVAllocDeviceMem(IMG_CONST PVRSRV_DEV_DATA        *psDevData,
433                                                                         IMG_HANDLE              hDevMemHeap,
434                                                                         IMG_UINT32              ui32Attribs,
435                                                                         IMG_SIZE_T              ui32Size,
436                                                                         IMG_SIZE_T              ui32Alignment,
437                                                                         PVRSRV_CLIENT_MEM_INFO  **ppsMemInfo);
438
439 IMG_IMPORT
440 PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeDeviceMem(IMG_CONST PVRSRV_DEV_DATA *psDevData,
441                                                                 PVRSRV_CLIENT_MEM_INFO          *psMemInfo);
442
443 IMG_IMPORT
444 PVRSRV_ERROR IMG_CALLCONV PVRSRVExportDeviceMem(IMG_CONST PVRSRV_DEV_DATA       *psDevData,
445                                                                                                 PVRSRV_CLIENT_MEM_INFO          *psMemInfo,
446                                                                                                 IMG_HANDLE                                      *phMemInfo);
447
448 IMG_IMPORT
449 PVRSRV_ERROR IMG_CALLCONV PVRSRVReserveDeviceVirtualMem(IMG_CONST PVRSRV_DEV_DATA *psDevData,
450                                                                                         IMG_HANDLE                      hDevMemHeap,
451                                                                                         IMG_DEV_VIRTADDR        *psDevVAddr,
452                                                                                         IMG_SIZE_T                      ui32Size,
453                                                                                         IMG_SIZE_T                      ui32Alignment,
454                                                                                         PVRSRV_CLIENT_MEM_INFO          **ppsMemInfo);
455 IMG_IMPORT
456 PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeDeviceVirtualMem(IMG_CONST PVRSRV_DEV_DATA *psDevData,
457                                                                                                         PVRSRV_CLIENT_MEM_INFO *psMemInfo);
458
459 IMG_IMPORT
460 PVRSRV_ERROR IMG_CALLCONV PVRSRVMapDeviceMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData,
461                                                                         IMG_HANDLE hKernelMemInfo,
462                                                                         IMG_HANDLE hDstDevMemHeap,
463                                                                         PVRSRV_CLIENT_MEM_INFO **ppsDstMemInfo);
464
465 IMG_IMPORT
466 PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapDeviceMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData,
467                                                                                 PVRSRV_CLIENT_MEM_INFO *psMemInfo);
468
469 IMG_IMPORT
470 PVRSRV_ERROR IMG_CALLCONV PVRSRVMapExtMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData,
471                                                                         PVRSRV_CLIENT_MEM_INFO          *psMemInfo,
472                                                                         IMG_SYS_PHYADDR                         *psSysPAddr,
473                                                                         IMG_UINT32                                      ui32Flags);
474 IMG_IMPORT
475 PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapExtMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData,
476                                                                         PVRSRV_CLIENT_MEM_INFO          *psMemInfo,
477                                                                         IMG_UINT32                                      ui32Flags);
478
479 IMG_IMPORT
480 PVRSRV_ERROR IMG_CALLCONV PVRSRVWrapExtMemory2(IMG_CONST PVRSRV_DEV_DATA *psDevData,
481                                                                                                 IMG_HANDLE                              hDevMemContext,
482                                                                                                 IMG_SIZE_T                              ui32ByteSize,
483                                                                                                 IMG_SIZE_T                              ui32PageOffset,
484                                                                                                 IMG_BOOL                                bPhysContig,
485                                                                                                 IMG_SYS_PHYADDR                 *psSysPAddr,
486                                                                                                 IMG_VOID                                *pvLinAddr,
487                                                                                                 IMG_UINT32                              ui32Flags,
488                                                                                                 PVRSRV_CLIENT_MEM_INFO **ppsMemInfo);
489 IMG_IMPORT
490 PVRSRV_ERROR IMG_CALLCONV PVRSRVWrapExtMemory(IMG_CONST PVRSRV_DEV_DATA *psDevData,
491                                                                                                 IMG_HANDLE                              hDevMemContext,
492                                                                                                 IMG_SIZE_T                              ui32ByteSize,
493                                                                                                 IMG_SIZE_T                              ui32PageOffset,
494                                                                                                 IMG_BOOL                                bPhysContig,
495                                                                                                 IMG_SYS_PHYADDR                 *psSysPAddr,
496                                                                                                 IMG_VOID                                *pvLinAddr,
497                                                                                                 PVRSRV_CLIENT_MEM_INFO **ppsMemInfo);
498 IMG_IMPORT
499 PVRSRV_ERROR IMG_CALLCONV PVRSRVUnwrapExtMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData,
500                                                                                                 PVRSRV_CLIENT_MEM_INFO *psMemInfo);
501
502 PVRSRV_ERROR PVRSRVChangeDeviceMemoryAttributes(IMG_CONST PVRSRV_DEV_DATA                       *psDevData,
503                                                                                                 PVRSRV_CLIENT_MEM_INFO  *psClientMemInfo,
504                                                                                                 IMG_UINT32                              ui32Attribs);
505
506 IMG_IMPORT
507 PVRSRV_ERROR IMG_CALLCONV PVRSRVMapDeviceClassMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData,
508                                                                                 IMG_HANDLE hDevMemContext,
509                                                                                 IMG_HANDLE hDeviceClassBuffer,
510                                                                                 PVRSRV_CLIENT_MEM_INFO **ppsMemInfo);
511 IMG_IMPORT
512 PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapDeviceClassMemory (IMG_CONST PVRSRV_DEV_DATA *psDevData,
513                                                                                 PVRSRV_CLIENT_MEM_INFO *psMemInfo);
514
515 IMG_IMPORT
516 PVRSRV_ERROR IMG_CALLCONV PVRSRVMapPhysToUserSpace(IMG_CONST PVRSRV_DEV_DATA *psDevData,
517                                                                           IMG_SYS_PHYADDR sSysPhysAddr,
518                                                                           IMG_UINT32 uiSizeInBytes,
519                                                                           IMG_PVOID *ppvUserAddr,
520                                                                           IMG_UINT32 *puiActualSize,
521                                                                           IMG_PVOID *ppvProcess);
522
523 IMG_IMPORT
524 PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapPhysToUserSpace(IMG_CONST PVRSRV_DEV_DATA *psDevData,
525                                                                                 IMG_PVOID pvUserAddr,
526                                                                                 IMG_PVOID pvProcess);
527
528 typedef enum _PVRSRV_SYNCVAL_MODE_
529 {
530         PVRSRV_SYNCVAL_READ                             = IMG_TRUE,
531         PVRSRV_SYNCVAL_WRITE                    = IMG_FALSE,
532
533 } PVRSRV_SYNCVAL_MODE, *PPVRSRV_SYNCVAL_MODE;
534
535 typedef IMG_UINT32 PVRSRV_SYNCVAL;
536
537 IMG_IMPORT PVRSRV_ERROR PVRSRVWaitForOpsComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
538         PVRSRV_SYNCVAL_MODE eMode, PVRSRV_SYNCVAL OpRequired);
539
540 IMG_IMPORT PVRSRV_ERROR PVRSRVWaitForAllOpsComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
541         PVRSRV_SYNCVAL_MODE eMode);
542
543 IMG_IMPORT IMG_BOOL PVRSRVTestOpsComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
544         PVRSRV_SYNCVAL_MODE eMode, PVRSRV_SYNCVAL OpRequired);
545
546 IMG_IMPORT IMG_BOOL PVRSRVTestAllOpsComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
547         PVRSRV_SYNCVAL_MODE eMode);
548
549 IMG_IMPORT IMG_BOOL PVRSRVTestOpsNotComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
550         PVRSRV_SYNCVAL_MODE eMode, PVRSRV_SYNCVAL OpRequired);
551
552 IMG_IMPORT IMG_BOOL PVRSRVTestAllOpsNotComplete(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
553         PVRSRV_SYNCVAL_MODE eMode);
554
555 IMG_IMPORT PVRSRV_SYNCVAL PVRSRVGetPendingOpSyncVal(PPVRSRV_CLIENT_MEM_INFO psMemInfo,
556         PVRSRV_SYNCVAL_MODE eMode);
557
558
559 IMG_IMPORT
560 PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumerateDeviceClass(IMG_CONST PVRSRV_CONNECTION *psConnection,
561                                                                                                         PVRSRV_DEVICE_CLASS DeviceClass,
562                                                                                                         IMG_UINT32 *pui32DevCount,
563                                                                                                         IMG_UINT32 *pui32DevID);
564
565 IMG_IMPORT
566 IMG_HANDLE IMG_CALLCONV PVRSRVOpenDCDevice(IMG_CONST PVRSRV_DEV_DATA *psDevData,
567                                                                                         IMG_UINT32 ui32DeviceID);
568
569 IMG_IMPORT
570 PVRSRV_ERROR IMG_CALLCONV PVRSRVCloseDCDevice(IMG_CONST PVRSRV_CONNECTION       *psConnection, IMG_HANDLE hDevice);
571
572 IMG_IMPORT
573 PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumDCFormats (IMG_HANDLE hDevice,
574                                                                                         IMG_UINT32              *pui32Count,
575                                                                                         DISPLAY_FORMAT  *psFormat);
576
577 IMG_IMPORT
578 PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumDCDims (IMG_HANDLE hDevice,
579                                                                                 IMG_UINT32              *pui32Count,
580                                                                                 DISPLAY_FORMAT  *psFormat,
581                                                                                 DISPLAY_DIMS    *psDims);
582
583 IMG_IMPORT
584 PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDCSystemBuffer(IMG_HANDLE hDevice,
585                                                                                 IMG_HANDLE *phBuffer);
586
587 IMG_IMPORT
588 PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDCInfo(IMG_HANDLE hDevice,
589                                                                                 DISPLAY_INFO* psDisplayInfo);
590
591 IMG_IMPORT
592 PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateDCSwapChain (IMG_HANDLE                           hDevice,
593                                                                                                         IMG_UINT32                              ui32Flags,
594                                                                                                         DISPLAY_SURF_ATTRIBUTES *psDstSurfAttrib,
595                                                                                                         DISPLAY_SURF_ATTRIBUTES *psSrcSurfAttrib,
596                                                                                                         IMG_UINT32                              ui32BufferCount,
597                                                                                                         IMG_UINT32                              ui32OEMFlags,
598                                                                                                         IMG_UINT32                              *pui32SwapChainID,
599                                                                                                         IMG_HANDLE                              *phSwapChain);
600
601 IMG_IMPORT
602 PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyDCSwapChain (IMG_HANDLE hDevice,
603                                                                                         IMG_HANDLE              hSwapChain);
604
605 IMG_IMPORT
606 PVRSRV_ERROR IMG_CALLCONV PVRSRVSetDCDstRect (IMG_HANDLE hDevice,
607                                                                                 IMG_HANDLE      hSwapChain,
608                                                                                 IMG_RECT        *psDstRect);
609
610 IMG_IMPORT
611 PVRSRV_ERROR IMG_CALLCONV PVRSRVSetDCSrcRect (IMG_HANDLE hDevice,
612                                                                                 IMG_HANDLE      hSwapChain,
613                                                                                 IMG_RECT        *psSrcRect);
614
615 IMG_IMPORT
616 PVRSRV_ERROR IMG_CALLCONV PVRSRVSetDCDstColourKey (IMG_HANDLE hDevice,
617                                                                                         IMG_HANDLE      hSwapChain,
618                                                                                         IMG_UINT32      ui32CKColour);
619
620 IMG_IMPORT
621 PVRSRV_ERROR IMG_CALLCONV PVRSRVSetDCSrcColourKey (IMG_HANDLE hDevice,
622                                                                                         IMG_HANDLE      hSwapChain,
623                                                                                         IMG_UINT32      ui32CKColour);
624
625 IMG_IMPORT
626 PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDCBuffers(IMG_HANDLE hDevice,
627                                                                         IMG_HANDLE hSwapChain,
628                                                                         IMG_HANDLE *phBuffer);
629
630 IMG_IMPORT
631 PVRSRV_ERROR IMG_CALLCONV PVRSRVSwapToDCBuffer (IMG_HANDLE hDevice,
632                                                                                 IMG_HANDLE hBuffer,
633                                                                                 IMG_UINT32 ui32ClipRectCount,
634                                                                                 IMG_RECT *psClipRect,
635                                                                                 IMG_UINT32 ui32SwapInterval,
636                                                                                 IMG_HANDLE hPrivateTag);
637
638 IMG_IMPORT
639 PVRSRV_ERROR IMG_CALLCONV PVRSRVSwapToDCSystem (IMG_HANDLE hDevice,
640                                                                                 IMG_HANDLE hSwapChain);
641
642
643 IMG_IMPORT
644 IMG_HANDLE IMG_CALLCONV PVRSRVOpenBCDevice(IMG_CONST PVRSRV_DEV_DATA *psDevData,
645                                                                                         IMG_UINT32 ui32DeviceID);
646
647 IMG_IMPORT
648 PVRSRV_ERROR IMG_CALLCONV PVRSRVCloseBCDevice(IMG_CONST PVRSRV_CONNECTION *psConnection,
649                                                                                                 IMG_HANDLE hDevice);
650
651 IMG_IMPORT
652 PVRSRV_ERROR IMG_CALLCONV PVRSRVGetBCBufferInfo(IMG_HANDLE hDevice,
653                                                                                                 BUFFER_INFO     *psBuffer);
654
655 IMG_IMPORT
656 PVRSRV_ERROR IMG_CALLCONV PVRSRVGetBCBuffer(IMG_HANDLE hDevice,
657                                                                                                 IMG_UINT32 ui32BufferIndex,
658                                                                                                 IMG_HANDLE *phBuffer);
659
660
661 IMG_IMPORT
662 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpInit(IMG_CONST PVRSRV_CONNECTION *psConnection);
663
664 IMG_IMPORT
665 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpStartInitPhase(IMG_CONST PVRSRV_CONNECTION *psConnection);
666
667 IMG_IMPORT
668 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpStopInitPhase(IMG_CONST PVRSRV_CONNECTION *psConnection);
669
670 IMG_IMPORT
671 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpMemPol(IMG_CONST PVRSRV_CONNECTION *psConnection,
672                                                                                   PVRSRV_CLIENT_MEM_INFO *psMemInfo,
673                                                                                   IMG_UINT32 ui32Offset,
674                                                                                   IMG_UINT32 ui32Value,
675                                                                                   IMG_UINT32 ui32Mask,
676                                                                                   IMG_UINT32 ui32Flags);
677
678 IMG_IMPORT
679 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpSyncPol(IMG_CONST PVRSRV_CONNECTION *psConnection,
680                                                                                   PVRSRV_CLIENT_SYNC_INFO *psClientSyncInfo,
681                                                                                   IMG_BOOL bIsRead,
682                                                                                   IMG_UINT32 ui32Value,
683                                                                                   IMG_UINT32 ui32Mask);
684
685 IMG_IMPORT
686 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpMem(IMG_CONST PVRSRV_CONNECTION *psConnection,
687                                                                         IMG_PVOID pvAltLinAddr,
688                                                                         PVRSRV_CLIENT_MEM_INFO *psMemInfo,
689                                                                         IMG_UINT32 ui32Offset,
690                                                                         IMG_UINT32 ui32Bytes,
691                                                                         IMG_UINT32 ui32Flags);
692
693 IMG_IMPORT
694 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpSync(IMG_CONST PVRSRV_CONNECTION *psConnection,
695                                                                                 IMG_PVOID pvAltLinAddr,
696                                                                                 PVRSRV_CLIENT_SYNC_INFO *psClientSyncInfo,
697                                                                                 IMG_UINT32 ui32Offset,
698                                                                                 IMG_UINT32 ui32Bytes);
699
700 IMG_IMPORT
701 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpReg(IMG_CONST PVRSRV_CONNECTION *psConnection,
702                                                                                         IMG_UINT32 ui32RegAddr,
703                                                                                         IMG_UINT32 ui32RegValue,
704                                                                                         IMG_UINT32 ui32Flags);
705
706 IMG_IMPORT
707 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpRegPolWithFlags(IMG_CONST PVRSRV_CONNECTION *psConnection,
708                                                                                                          IMG_UINT32 ui32RegAddr,
709                                                                                                          IMG_UINT32 ui32RegValue,
710                                                                                                          IMG_UINT32 ui32Mask,
711                                                                                                          IMG_UINT32 ui32Flags);
712 IMG_IMPORT
713 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpRegPol(IMG_CONST PVRSRV_CONNECTION *psConnection,
714                                                                                         IMG_UINT32 ui32RegAddr,
715                                                                                         IMG_UINT32 ui32RegValue,
716                                                                                         IMG_UINT32 ui32Mask);
717
718 IMG_IMPORT
719 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpPDReg(IMG_CONST PVRSRV_CONNECTION *psConnection,
720                                                                                         IMG_UINT32 ui32RegAddr,
721                                                                                         IMG_UINT32 ui32RegValue);
722 IMG_IMPORT
723 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpPDDevPAddr(IMG_CONST PVRSRV_CONNECTION *psConnection,
724                                                                                                 PVRSRV_CLIENT_MEM_INFO *psMemInfo,
725                                                                                                 IMG_UINT32 ui32Offset,
726                                                                                                 IMG_DEV_PHYADDR sPDDevPAddr);
727
728 IMG_IMPORT
729 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpMemPages(IMG_CONST PVRSRV_CONNECTION *psConnection,
730                                                                                                 IMG_HANDLE                      hKernelMemInfo,
731                                                                                                 IMG_DEV_PHYADDR         *pPages,
732                                                                                                 IMG_UINT32                      ui32NumPages,
733                                                                                                 IMG_DEV_VIRTADDR        sDevAddr,
734                                                                                                 IMG_UINT32                      ui32Start,
735                                                                                                 IMG_UINT32                      ui32Length,
736                                                                                                 IMG_BOOL                        bContinuous);
737
738 IMG_IMPORT
739 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpSetFrame(IMG_CONST PVRSRV_CONNECTION *psConnection,
740                                                                                           IMG_UINT32 ui32Frame);
741
742 IMG_IMPORT
743 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpComment(IMG_CONST PVRSRV_CONNECTION *psConnection,
744                                                                                          IMG_CONST IMG_CHAR *pszComment,
745                                                                                          IMG_BOOL bContinuous);
746
747 IMG_IMPORT
748 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpCommentf(IMG_CONST PVRSRV_CONNECTION *psConnection,
749                                                                                           IMG_BOOL bContinuous,
750                                                                                           IMG_CONST IMG_CHAR *pszFormat, ...);
751
752 IMG_IMPORT
753 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpCommentWithFlagsf(IMG_CONST PVRSRV_CONNECTION *psConnection,
754                                                                                                            IMG_UINT32 ui32Flags,
755                                                                                                            IMG_CONST IMG_CHAR *pszFormat, ...);
756
757 IMG_IMPORT
758 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpDriverInfo(IMG_CONST PVRSRV_CONNECTION *psConnection,
759                                                                                                 IMG_CHAR *pszString,
760                                                                                                 IMG_BOOL bContinuous);
761
762 IMG_IMPORT
763 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpIsCapturing(IMG_CONST PVRSRV_CONNECTION *psConnection,
764                                                                                                 IMG_BOOL *pbIsCapturing);
765
766 IMG_IMPORT
767 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpBitmap(IMG_CONST PVRSRV_CONNECTION *psConnection,
768                                                                                         IMG_CHAR *pszFileName,
769                                                                                         IMG_UINT32 ui32FileOffset,
770                                                                                         IMG_UINT32 ui32Width,
771                                                                                         IMG_UINT32 ui32Height,
772                                                                                         IMG_UINT32 ui32StrideInBytes,
773                                                                                         IMG_DEV_VIRTADDR sDevBaseAddr,
774                                                                                         IMG_UINT32 ui32Size,
775                                                                                         PDUMP_PIXEL_FORMAT ePixelFormat,
776                                                                                         PDUMP_MEM_FORMAT eMemFormat,
777                                                                                         IMG_UINT32 ui32PDumpFlags);
778
779 IMG_IMPORT
780 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpRegRead(IMG_CONST PVRSRV_CONNECTION *psConnection,
781                                                                                         IMG_CONST IMG_CHAR *pszFileName,
782                                                                                         IMG_UINT32 ui32FileOffset,
783                                                                                         IMG_UINT32 ui32Address,
784                                                                                         IMG_UINT32 ui32Size,
785                                                                                         IMG_UINT32 ui32PDumpFlags);
786
787
788 IMG_IMPORT
789 IMG_BOOL IMG_CALLCONV PVRSRVPDumpIsCapturingTest(IMG_CONST PVRSRV_CONNECTION *psConnection);
790
791 IMG_IMPORT
792 PVRSRV_ERROR IMG_CALLCONV PVRSRVPDumpCycleCountRegRead(IMG_CONST PVRSRV_CONNECTION *psConnection,
793                                                                                                                 IMG_UINT32 ui32RegOffset,
794                                                                                                                 IMG_BOOL bLastFrame);
795
796 IMG_IMPORT IMG_HANDLE   PVRSRVLoadLibrary(const IMG_CHAR *pszLibraryName);
797 IMG_IMPORT PVRSRV_ERROR PVRSRVUnloadLibrary(IMG_HANDLE hExtDrv);
798 IMG_IMPORT PVRSRV_ERROR PVRSRVGetLibFuncAddr(IMG_HANDLE hExtDrv, const IMG_CHAR *pszFunctionName, IMG_VOID **ppvFuncAddr);
799
800 IMG_IMPORT IMG_UINT32 PVRSRVClockus (void);
801 IMG_IMPORT IMG_VOID PVRSRVWaitus (IMG_UINT32 ui32Timeus);
802 IMG_IMPORT IMG_VOID PVRSRVReleaseThreadQuanta (void);
803 IMG_IMPORT IMG_UINT32 IMG_CALLCONV PVRSRVGetCurrentProcessID(void);
804 IMG_IMPORT IMG_CHAR * IMG_CALLCONV PVRSRVSetLocale(const IMG_CHAR *pszLocale);
805
806
807
808
809
810 IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVCreateAppHintState(IMG_MODULE_ID eModuleID,
811                                                                                                                 const IMG_CHAR *pszAppName,
812                                                                                                                 IMG_VOID **ppvState);
813 IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVFreeAppHintState(IMG_MODULE_ID eModuleID,
814                                                                                  IMG_VOID *pvHintState);
815
816 IMG_IMPORT IMG_BOOL IMG_CALLCONV PVRSRVGetAppHint(IMG_VOID                      *pvHintState,
817                                                                                                   const IMG_CHAR        *pszHintName,
818                                                                                                   IMG_DATA_TYPE         eDataType,
819                                                                                                   const IMG_VOID        *pvDefault,
820                                                                                                   IMG_VOID                      *pvReturn);
821
822 IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVAllocUserModeMem (IMG_SIZE_T ui32Size);
823 IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVCallocUserModeMem (IMG_SIZE_T ui32Size);
824 IMG_IMPORT IMG_PVOID IMG_CALLCONV PVRSRVReallocUserModeMem (IMG_PVOID pvBase, IMG_SIZE_T uNewSize);
825 IMG_IMPORT IMG_VOID  IMG_CALLCONV PVRSRVFreeUserModeMem (IMG_PVOID pvMem);
826 IMG_IMPORT IMG_VOID PVRSRVMemCopy(IMG_VOID *pvDst, const IMG_VOID *pvSrc, IMG_SIZE_T ui32Size);
827 IMG_IMPORT IMG_VOID PVRSRVMemSet(IMG_VOID *pvDest, IMG_UINT8 ui8Value, IMG_SIZE_T ui32Size);
828
829 struct _PVRSRV_MUTEX_OPAQUE_STRUCT_;
830 typedef struct  _PVRSRV_MUTEX_OPAQUE_STRUCT_ *PVRSRV_MUTEX_HANDLE;
831
832 IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateMutex(PVRSRV_MUTEX_HANDLE *phMutex);
833 IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyMutex(PVRSRV_MUTEX_HANDLE hMutex);
834 IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVLockMutex(PVRSRV_MUTEX_HANDLE hMutex);
835 IMG_IMPORT IMG_VOID IMG_CALLCONV PVRSRVUnlockMutex(PVRSRV_MUTEX_HANDLE hMutex);
836
837 #if (defined(DEBUG) && defined(__linux__))
838 IMG_PVOID PVRSRVAllocUserModeMemTracking(IMG_SIZE_T ui32Size, IMG_CHAR *pszFileName, IMG_UINT32 ui32LineNumber);
839 IMG_PVOID PVRSRVCallocUserModeMemTracking(IMG_SIZE_T ui32Size, IMG_CHAR *pszFileName, IMG_UINT32 ui32LineNumber);
840 IMG_VOID  PVRSRVFreeUserModeMemTracking(IMG_VOID *pvMem);
841 IMG_PVOID PVRSRVReallocUserModeMemTracking(IMG_VOID *pvMem, IMG_SIZE_T ui32NewSize, IMG_CHAR *pszFileName, IMG_UINT32 ui32LineNumber);
842 #endif
843
844 IMG_IMPORT PVRSRV_ERROR PVRSRVEventObjectWait(const PVRSRV_CONNECTION *psConnection,
845                                                                         IMG_HANDLE hOSEvent);
846
847 IMG_IMPORT
848 PVRSRV_ERROR IMG_CALLCONV PVRSRVModifyPendingSyncOps(PVRSRV_CONNECTION *psConnection,
849                                                                                                           IMG_HANDLE hKernelSyncInfo,
850                                                                                                           IMG_UINT32 ui32ModifyFlags,
851                                                                                                           IMG_UINT32 *pui32ReadOpsPending,
852                                                                                                           IMG_UINT32 *pui32WriteOpsPending);
853
854 IMG_IMPORT
855 PVRSRV_ERROR IMG_CALLCONV PVRSRVModifyCompleteSyncOps(PVRSRV_CONNECTION *psConnection,
856                                                                                                           IMG_HANDLE hKernelSyncInfo,
857                                                                                                           IMG_UINT32 ui32ModifyFlags);
858
859
860 #define TIME_NOT_PASSED_UINT32(a,b,c)           ((a - b) < c)
861
862 #if defined (__cplusplus)
863 }
864 #endif
865 #endif
866