~gma500/+junk/emgd152-natty

« back to all changes in this revision

Viewing changes to emgd-dkms-1.5.15.3082/pvr/include4/services.h

  • Committer: Luca Forina
  • Date: 2011-02-06 15:11:54 UTC
  • Revision ID: luca.forina@gmail.com-20110206151154-9dzn5ugxjub9qenb
Upload Emgd 1.5.2 for Natty (override Maverick)

Show diffs side-by-side

added added

removed removed

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