20094803.3+0m5
[sgx.git] / pvr / pvr_bridge_km.h
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 __PVR_BRIDGE_KM_H_
28 #define __PVR_BRIDGE_KM_H_
29
30
31 #include "pvr_bridge.h"
32 #include "perproc.h"
33
34         PVRSRV_ERROR LinuxBridgeInit(IMG_VOID);
35         IMG_VOID LinuxBridgeDeInit(IMG_VOID);
36
37          IMG_IMPORT
38             PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumerateDevicesKM(IMG_UINT32 *
39                                                                pui32NumDevices,
40                                                                PVRSRV_DEVICE_IDENTIFIER
41                                                                * psDevIdList);
42
43          IMG_IMPORT
44             PVRSRV_ERROR IMG_CALLCONV PVRSRVAcquireDeviceDataKM(IMG_UINT32
45                                                                 uiDevIndex,
46                                                                 PVRSRV_DEVICE_TYPE
47                                                                 eDeviceType,
48                                                                 IMG_HANDLE *
49                                                                 phDevCookie);
50
51          IMG_IMPORT
52             PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateCommandQueueKM(IMG_UINT32
53                                                                  ui32QueueSize,
54                                                                  PVRSRV_QUEUE_INFO
55                                                                  **
56                                                                  ppsQueueInfo);
57
58          IMG_IMPORT
59             PVRSRV_ERROR IMG_CALLCONV
60             PVRSRVDestroyCommandQueueKM(PVRSRV_QUEUE_INFO * psQueueInfo);
61
62          IMG_IMPORT
63             PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDeviceMemHeapsKM(IMG_HANDLE
64                                                                 hDevCookie,
65                                                                 PVRSRV_HEAP_INFO
66                                                                 * psHeapInfo);
67
68          IMG_IMPORT
69             PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateDeviceMemContextKM(IMG_HANDLE
70                                                                      hDevCookie,
71                                                                      PVRSRV_PER_PROCESS_DATA
72                                                                      *
73                                                                      psPerProc,
74                                                                      IMG_HANDLE
75                                                                      *
76                                                                      phDevMemContext,
77                                                                      IMG_UINT32
78                                                                      *
79                                                                      pui32ClientHeapCount,
80                                                                      PVRSRV_HEAP_INFO
81                                                                      *
82                                                                      psHeapInfo,
83                                                                      IMG_BOOL *
84                                                                      pbCreated
85                                                                      ,
86                                                                      IMG_BOOL *
87                                                                      pbShared
88             );
89
90          IMG_IMPORT
91             PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyDeviceMemContextKM(IMG_HANDLE
92                                                                       hDevCookie,
93                                                                       IMG_HANDLE
94                                                                       hDevMemContext,
95                                                                       IMG_BOOL *
96                                                                       pbCreated);
97
98          IMG_IMPORT
99             PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDeviceMemHeapInfoKM(IMG_HANDLE
100                                                                    hDevCookie,
101                                                                    IMG_HANDLE
102                                                                    hDevMemContext,
103                                                                    IMG_UINT32 *
104                                                                    pui32ClientHeapCount,
105                                                                    PVRSRV_HEAP_INFO
106                                                                    * psHeapInfo
107                                                                    ,
108                                                                    IMG_BOOL *
109                                                                    pbShared
110             );
111
112          IMG_IMPORT
113             PVRSRV_ERROR IMG_CALLCONV PVRSRVAllocDeviceMemKM(IMG_HANDLE
114                                                              hDevCookie,
115                                                              PVRSRV_PER_PROCESS_DATA
116                                                              * psPerProc,
117                                                              IMG_HANDLE
118                                                              hDevMemHeap,
119                                                              IMG_UINT32
120                                                              ui32Flags,
121                                                              IMG_UINT32
122                                                              ui32Size,
123                                                              IMG_UINT32
124                                                              ui32Alignment,
125                                                              PVRSRV_KERNEL_MEM_INFO
126                                                              ** ppsMemInfo);
127
128          IMG_IMPORT
129             PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeDeviceMemKM(IMG_HANDLE
130                                                             hDevCookie,
131                                                             PVRSRV_KERNEL_MEM_INFO
132                                                             * psMemInfo);
133
134          IMG_IMPORT
135             PVRSRV_ERROR IMG_CALLCONV PVRSRVDissociateDeviceMemKM(IMG_HANDLE
136                                                                   hDevCookie,
137                                                                   PVRSRV_KERNEL_MEM_INFO
138                                                                   * psMemInfo);
139
140          IMG_IMPORT
141             PVRSRV_ERROR IMG_CALLCONV PVRSRVReserveDeviceVirtualMemKM(IMG_HANDLE
142                                                                       hDevMemHeap,
143                                                                       IMG_DEV_VIRTADDR
144                                                                       *
145                                                                       psDevVAddr,
146                                                                       IMG_UINT32
147                                                                       ui32Size,
148                                                                       IMG_UINT32
149                                                                       ui32Alignment,
150                                                                       PVRSRV_KERNEL_MEM_INFO
151                                                                       **
152                                                                       ppsMemInfo);
153
154          IMG_IMPORT
155             PVRSRV_ERROR IMG_CALLCONV
156             PVRSRVFreeDeviceVirtualMemKM(PVRSRV_KERNEL_MEM_INFO * psMemInfo);
157
158          IMG_IMPORT
159             PVRSRV_ERROR IMG_CALLCONV
160             PVRSRVMapDeviceMemoryKM(PVRSRV_PER_PROCESS_DATA * psPerProc,
161                                     PVRSRV_KERNEL_MEM_INFO * psSrcMemInfo,
162                                     IMG_HANDLE hDstDevMemHeap,
163                                     PVRSRV_KERNEL_MEM_INFO ** ppsDstMemInfo);
164
165          IMG_IMPORT
166             PVRSRV_ERROR IMG_CALLCONV
167             PVRSRVUnmapDeviceMemoryKM(PVRSRV_KERNEL_MEM_INFO * psMemInfo);
168
169          IMG_IMPORT
170             PVRSRV_ERROR IMG_CALLCONV PVRSRVWrapExtMemoryKM(IMG_HANDLE
171                                                             hDevCookie,
172                                                             PVRSRV_PER_PROCESS_DATA
173                                                             * psPerProc,
174                                                             IMG_UINT32
175                                                             ui32ByteSize,
176                                                             IMG_UINT32
177                                                             ui32PageOffset,
178                                                             IMG_BOOL
179                                                             bPhysContig,
180                                                             IMG_SYS_PHYADDR *
181                                                             psSysAddr,
182                                                             IMG_VOID *
183                                                             pvLinAddr,
184                                                             PVRSRV_KERNEL_MEM_INFO
185                                                             ** ppsMemInfo);
186
187          IMG_IMPORT
188             PVRSRV_ERROR IMG_CALLCONV
189             PVRSRVIsWrappedExtMemoryKM(IMG_HANDLE hDevCookie,
190                                                   PVRSRV_PER_PROCESS_DATA *psPerProc,
191                                                   IMG_UINT32 *pui32ByteSize,
192                                                   IMG_VOID **pvLinAddr);
193
194          IMG_IMPORT
195             PVRSRV_ERROR IMG_CALLCONV
196             PVRSRVUnwrapExtMemoryKM(PVRSRV_KERNEL_MEM_INFO * psMemInfo);
197
198          IMG_IMPORT
199             PVRSRV_ERROR PVRSRVEnumerateDCKM(PVRSRV_DEVICE_CLASS DeviceClass,
200                                              IMG_UINT32 * pui32DevCount,
201                                              IMG_UINT32 * pui32DevID);
202
203          IMG_IMPORT
204             PVRSRV_ERROR PVRSRVOpenDCDeviceKM(PVRSRV_PER_PROCESS_DATA *
205                                               psPerProc,
206                                               IMG_UINT32 ui32DeviceID,
207                                               IMG_HANDLE hDevCookie,
208                                               IMG_HANDLE * phDeviceKM);
209
210          IMG_IMPORT
211             PVRSRV_ERROR PVRSRVCloseDCDeviceKM(IMG_HANDLE hDeviceKM,
212                                                IMG_BOOL bResManCallback);
213
214          IMG_IMPORT
215             PVRSRV_ERROR PVRSRVEnumDCFormatsKM(IMG_HANDLE hDeviceKM,
216                                                IMG_UINT32 * pui32Count,
217                                                DISPLAY_FORMAT * psFormat);
218
219          IMG_IMPORT
220             PVRSRV_ERROR PVRSRVEnumDCDimsKM(IMG_HANDLE hDeviceKM,
221                                             DISPLAY_FORMAT * psFormat,
222                                             IMG_UINT32 * pui32Count,
223                                             DISPLAY_DIMS * psDim);
224
225          IMG_IMPORT
226             PVRSRV_ERROR PVRSRVGetDCSystemBufferKM(IMG_HANDLE hDeviceKM,
227                                                    IMG_HANDLE * phBuffer);
228
229          IMG_IMPORT
230             PVRSRV_ERROR PVRSRVGetDCInfoKM(IMG_HANDLE hDeviceKM,
231                                            DISPLAY_INFO * psDisplayInfo);
232          IMG_IMPORT
233             PVRSRV_ERROR PVRSRVCreateDCSwapChainKM(PVRSRV_PER_PROCESS_DATA *
234                                                    psPerProc,
235                                                    IMG_HANDLE hDeviceKM,
236                                                    IMG_UINT32 ui32Flags,
237                                                    DISPLAY_SURF_ATTRIBUTES *
238                                                    psDstSurfAttrib,
239                                                    DISPLAY_SURF_ATTRIBUTES *
240                                                    psSrcSurfAttrib,
241                                                    IMG_UINT32 ui32BufferCount,
242                                                    IMG_UINT32 ui32OEMFlags,
243                                                    IMG_HANDLE * phSwapChain,
244                                                    IMG_UINT32 *
245                                                    pui32SwapChainID);
246          IMG_IMPORT PVRSRV_ERROR PVRSRVDestroyDCSwapChainKM(IMG_HANDLE
247                                                             hSwapChain);
248          IMG_IMPORT PVRSRV_ERROR PVRSRVSetDCDstRectKM(IMG_HANDLE hDeviceKM,
249                                                       IMG_HANDLE hSwapChain,
250                                                       IMG_RECT * psRect);
251          IMG_IMPORT PVRSRV_ERROR PVRSRVSetDCSrcRectKM(IMG_HANDLE hDeviceKM,
252                                                       IMG_HANDLE hSwapChain,
253                                                       IMG_RECT * psRect);
254          IMG_IMPORT PVRSRV_ERROR PVRSRVSetDCDstColourKeyKM(IMG_HANDLE hDeviceKM,
255                                                            IMG_HANDLE
256                                                            hSwapChain,
257                                                            IMG_UINT32
258                                                            ui32CKColour);
259          IMG_IMPORT PVRSRV_ERROR PVRSRVSetDCSrcColourKeyKM(IMG_HANDLE hDeviceKM,
260                                                            IMG_HANDLE
261                                                            hSwapChain,
262                                                            IMG_UINT32
263                                                            ui32CKColour);
264          IMG_IMPORT PVRSRV_ERROR PVRSRVGetDCBuffersKM(IMG_HANDLE hDeviceKM,
265                                                       IMG_HANDLE hSwapChain,
266                                                       IMG_UINT32 *
267                                                       pui32BufferCount,
268                                                       IMG_HANDLE * phBuffer);
269          IMG_IMPORT PVRSRV_ERROR PVRSRVSwapToDCBufferKM(IMG_HANDLE hDeviceKM,
270                                                         IMG_HANDLE hBuffer,
271                                                         IMG_UINT32
272                                                         ui32SwapInterval,
273                                                         IMG_HANDLE hPrivateTag,
274                                                         IMG_UINT32
275                                                         ui32ClipRectCount,
276                                                         IMG_RECT * psClipRect);
277          IMG_IMPORT PVRSRV_ERROR PVRSRVSwapToDCSystemKM(IMG_HANDLE hDeviceKM,
278                                                         IMG_HANDLE hSwapChain);
279
280          IMG_IMPORT
281             PVRSRV_ERROR PVRSRVOpenBCDeviceKM(PVRSRV_PER_PROCESS_DATA *
282                                               psPerProc,
283                                               IMG_UINT32 ui32DeviceID,
284                                               IMG_HANDLE hDevCookie,
285                                               IMG_HANDLE * phDeviceKM);
286          IMG_IMPORT PVRSRV_ERROR PVRSRVCloseBCDeviceKM(IMG_HANDLE hDeviceKM,
287                                                        IMG_BOOL
288                                                        bResManCallback);
289
290          IMG_IMPORT
291             PVRSRV_ERROR PVRSRVGetBCInfoKM(IMG_HANDLE hDeviceKM,
292                                            BUFFER_INFO * psBufferInfo);
293          IMG_IMPORT
294             PVRSRV_ERROR PVRSRVGetBCBufferKM(IMG_HANDLE hDeviceKM,
295                                              IMG_UINT32 ui32BufferIndex,
296                                              IMG_HANDLE * phBuffer);
297
298          IMG_IMPORT
299             PVRSRV_ERROR IMG_CALLCONV
300             PVRSRVMapDeviceClassMemoryKM(PVRSRV_PER_PROCESS_DATA * psPerProc,
301                                          IMG_HANDLE hDeviceClassBuffer,
302                                          PVRSRV_KERNEL_MEM_INFO ** ppsMemInfo,
303                                          IMG_HANDLE * phOSMapInfo);
304
305          IMG_IMPORT
306             PVRSRV_ERROR IMG_CALLCONV
307             PVRSRVUnmapDeviceClassMemoryKM(PVRSRV_KERNEL_MEM_INFO * psMemInfo);
308
309          IMG_IMPORT
310             PVRSRV_ERROR IMG_CALLCONV PVRSRVGetFreeDeviceMemKM(IMG_UINT32
311                                                                ui32Flags,
312                                                                IMG_UINT32 *
313                                                                pui32Total,
314                                                                IMG_UINT32 *
315                                                                pui32Free,
316                                                                IMG_UINT32 *
317                                                                pui32LargestBlock);
318          IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV PVRSRVAllocSyncInfoKM(IMG_HANDLE
319                                                                     hDevCookie,
320                                                                     IMG_HANDLE
321                                                                     hDevMemContext,
322                                                                     PVRSRV_KERNEL_SYNC_INFO
323                                                                     **
324                                                                     ppsKernelSyncInfo);
325          IMG_IMPORT PVRSRV_ERROR IMG_CALLCONV
326             PVRSRVFreeSyncInfoKM(PVRSRV_KERNEL_SYNC_INFO * psKernelSyncInfo);
327
328          IMG_IMPORT
329             PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfoKM(PVRSRV_MISC_INFO *
330                                                           psMiscInfo);
331
332         PVRSRV_ERROR PVRSRVGetFBStatsKM(IMG_UINT32 * pui32Total,
333                                         IMG_UINT32 * pui32Available);
334
335         IMG_IMPORT PVRSRV_ERROR
336             PVRSRVAllocSharedSysMemoryKM(PVRSRV_PER_PROCESS_DATA * psPerProc,
337                                          IMG_UINT32 ui32Flags,
338                                          IMG_UINT32 ui32Size,
339                                          PVRSRV_KERNEL_MEM_INFO **
340                                          ppsKernelMemInfo);
341
342         IMG_IMPORT PVRSRV_ERROR
343             PVRSRVFreeSharedSysMemoryKM(PVRSRV_KERNEL_MEM_INFO *
344                                         psKernelMemInfo);
345
346         IMG_IMPORT PVRSRV_ERROR
347             PVRSRVDissociateMemFromResmanKM(PVRSRV_KERNEL_MEM_INFO *
348                                             psKernelMemInfo);
349
350 #endif