summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'omap5/sgx_src/eurasia_km/services4/include/pvr_bridge_km.h')
-rw-r--r--omap5/sgx_src/eurasia_km/services4/include/pvr_bridge_km.h409
1 files changed, 0 insertions, 409 deletions
diff --git a/omap5/sgx_src/eurasia_km/services4/include/pvr_bridge_km.h b/omap5/sgx_src/eurasia_km/services4/include/pvr_bridge_km.h
deleted file mode 100644
index 1bf5b9c..0000000
--- a/omap5/sgx_src/eurasia_km/services4/include/pvr_bridge_km.h
+++ /dev/null
@@ -1,409 +0,0 @@
1/*************************************************************************/ /*!
2@Title PVR Bridge Functionality
3@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved
4@Description Header for the PVR Bridge code
5@License Dual MIT/GPLv2
6
7The contents of this file are subject to the MIT license as set out below.
8
9Permission is hereby granted, free of charge, to any person obtaining a copy
10of this software and associated documentation files (the "Software"), to deal
11in the Software without restriction, including without limitation the rights
12to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13copies of the Software, and to permit persons to whom the Software is
14furnished to do so, subject to the following conditions:
15
16The above copyright notice and this permission notice shall be included in
17all copies or substantial portions of the Software.
18
19Alternatively, the contents of this file may be used under the terms of
20the GNU General Public License Version 2 ("GPL") in which case the provisions
21of GPL are applicable instead of those above.
22
23If you wish to allow use of your version of this file only under the terms of
24GPL, and not to allow others to use your version of this file under the terms
25of the MIT license, indicate your decision by deleting the provisions above
26and replace them with the notice and other provisions required by GPL as set
27out in the file called "GPL-COPYING" included in this distribution. If you do
28not delete the provisions above, a recipient may use your version of this file
29under the terms of either the MIT license or GPL.
30
31This License is also included in this distribution in the file called
32"MIT-COPYING".
33
34EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
35PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
36BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
37PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
38COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
39IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
40CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
41*/ /**************************************************************************/
42
43#ifndef __PVR_BRIDGE_KM_H_
44#define __PVR_BRIDGE_KM_H_
45
46#if defined (__cplusplus)
47extern "C" {
48#endif
49
50#include "pvr_bridge.h"
51#include "perproc.h"
52
53/******************************************************************************
54 * Function prototypes
55 *****************************************************************************/
56#if defined(__linux__)
57PVRSRV_ERROR LinuxBridgeInit(IMG_VOID);
58IMG_VOID LinuxBridgeDeInit(IMG_VOID);
59#endif
60
61IMG_IMPORT
62PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumerateDevicesKM(IMG_UINT32 *pui32NumDevices,
63 PVRSRV_DEVICE_IDENTIFIER *psDevIdList);
64
65IMG_IMPORT
66PVRSRV_ERROR IMG_CALLCONV PVRSRVAcquireDeviceDataKM(IMG_UINT32 uiDevIndex,
67 PVRSRV_DEVICE_TYPE eDeviceType,
68 IMG_HANDLE *phDevCookie);
69
70IMG_IMPORT
71PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateCommandQueueKM(IMG_SIZE_T ui32QueueSize,
72 PVRSRV_QUEUE_INFO **ppsQueueInfo);
73
74IMG_IMPORT
75PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyCommandQueueKM(PVRSRV_QUEUE_INFO *psQueueInfo);
76
77IMG_IMPORT
78PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDeviceMemHeapsKM(IMG_HANDLE hDevCookie,
79#if defined (SUPPORT_SID_INTERFACE)
80 PVRSRV_HEAP_INFO_KM *psHeapInfo);
81#else
82 PVRSRV_HEAP_INFO *psHeapInfo);
83#endif
84
85IMG_IMPORT
86PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateDeviceMemContextKM(IMG_HANDLE hDevCookie,
87 PVRSRV_PER_PROCESS_DATA *psPerProc,
88 IMG_HANDLE *phDevMemContext,
89 IMG_UINT32 *pui32ClientHeapCount,
90#if defined (SUPPORT_SID_INTERFACE)
91 PVRSRV_HEAP_INFO_KM *psHeapInfo,
92#else
93 PVRSRV_HEAP_INFO *psHeapInfo,
94#endif
95 IMG_BOOL *pbCreated,
96 IMG_BOOL *pbShared);
97
98
99IMG_IMPORT
100PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyDeviceMemContextKM(IMG_HANDLE hDevCookie,
101 IMG_HANDLE hDevMemContext,
102 IMG_BOOL *pbDestroyed);
103
104
105IMG_IMPORT
106PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDeviceMemHeapInfoKM(IMG_HANDLE hDevCookie,
107 IMG_HANDLE hDevMemContext,
108 IMG_UINT32 *pui32ClientHeapCount,
109#if defined (SUPPORT_SID_INTERFACE)
110 PVRSRV_HEAP_INFO_KM *psHeapInfo,
111#else
112 PVRSRV_HEAP_INFO *psHeapInfo,
113#endif
114 IMG_BOOL *pbShared
115 );
116
117
118IMG_IMPORT
119PVRSRV_ERROR IMG_CALLCONV _PVRSRVAllocDeviceMemKM(IMG_HANDLE hDevCookie,
120 PVRSRV_PER_PROCESS_DATA *psPerProc,
121 IMG_HANDLE hDevMemHeap,
122 IMG_UINT32 ui32Flags,
123 IMG_SIZE_T ui32Size,
124 IMG_SIZE_T ui32Alignment,
125 IMG_PVOID pvPrivData,
126 IMG_UINT32 ui32PrivDataLength,
127 IMG_UINT32 ui32ChunkSize,
128 IMG_UINT32 ui32NumVirtChunks,
129 IMG_UINT32 ui32NumPhysChunks,
130 IMG_BOOL *pabMapChunk,
131 PVRSRV_KERNEL_MEM_INFO **ppsMemInfo);
132
133
134#if defined(PVRSRV_LOG_MEMORY_ALLOCS)
135 #define PVRSRVAllocDeviceMemKM(devCookie, perProc, devMemHeap, flags, size, alignment, privdata, privdatalength, \
136 chunksize, numvirtchunks, numphyschunks, mapchunk, memInfo, logStr) \
137 (PVR_TRACE(("PVRSRVAllocDeviceMemKM(" #devCookie ", " #perProc ", " #devMemHeap ", " #flags ", " #size \
138 ", " #alignment "," #memInfo "): " logStr " (size = 0x%x)", size)),\
139 _PVRSRVAllocDeviceMemKM(devCookie, perProc, devMemHeap, flags, size, alignment, privdata, privdatalength, \
140 chunksize, numvirtchunks, numphyschunks, mapchunk, memInfo))
141#else
142 #define PVRSRVAllocDeviceMemKM(devCookie, perProc, devMemHeap, flags, size, alignment, privdata, privdatalength, \
143 chunksize, numvirtchunks, numphyschunks, mapchunk, memInfo, logStr) \
144 _PVRSRVAllocDeviceMemKM(devCookie, perProc, devMemHeap, flags, size, alignment, privdata, privdatalength, \
145 chunksize, numvirtchunks, numphyschunks, mapchunk, memInfo)
146#endif
147
148
149IMG_IMPORT
150PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeDeviceMemKM(IMG_HANDLE hDevCookie,
151 PVRSRV_KERNEL_MEM_INFO *psMemInfo);
152
153IMG_EXPORT
154IMG_INT32 IMG_CALLCONV PVRSRVRemapToDevKM(IMG_HANDLE hDevCookie,
155 PVRSRV_KERNEL_MEM_INFO *psMemInfo, IMG_DEV_VIRTADDR *psDevVAddr);
156
157IMG_EXPORT
158IMG_INT32 IMG_CALLCONV PVRSRVUnmapFromDevKM(IMG_HANDLE hDevCookie,
159 PVRSRV_KERNEL_MEM_INFO *psMemInfo);
160
161
162#if defined(SUPPORT_ION)
163IMG_IMPORT
164PVRSRV_ERROR PVRSRVMapIonHandleKM(PVRSRV_PER_PROCESS_DATA *psPerProc,
165 IMG_HANDLE hDevCookie,
166 IMG_HANDLE hDevMemContext,
167 IMG_HANDLE hIon,
168 IMG_UINT32 ui32Flags,
169 IMG_UINT32 ui32Size,
170 PVRSRV_KERNEL_MEM_INFO **ppsKernelMemInfo);
171
172IMG_IMPORT
173PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapIonHandleKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo);
174#endif /* SUPPORT_ION */
175
176IMG_IMPORT
177PVRSRV_ERROR IMG_CALLCONV PVRSRVDissociateDeviceMemKM(IMG_HANDLE hDevCookie,
178 PVRSRV_KERNEL_MEM_INFO *psMemInfo);
179
180IMG_IMPORT
181PVRSRV_ERROR IMG_CALLCONV PVRSRVReserveDeviceVirtualMemKM(IMG_HANDLE hDevMemHeap,
182 IMG_DEV_VIRTADDR *psDevVAddr,
183 IMG_SIZE_T ui32Size,
184 IMG_SIZE_T ui32Alignment,
185 PVRSRV_KERNEL_MEM_INFO **ppsMemInfo);
186
187IMG_IMPORT
188PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeDeviceVirtualMemKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo);
189
190IMG_IMPORT
191PVRSRV_ERROR IMG_CALLCONV PVRSRVMapDeviceMemoryKM(PVRSRV_PER_PROCESS_DATA *psPerProc,
192 PVRSRV_KERNEL_MEM_INFO *psSrcMemInfo,
193 IMG_HANDLE hDstDevMemHeap,
194 PVRSRV_KERNEL_MEM_INFO **ppsDstMemInfo);
195
196IMG_IMPORT
197PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapDeviceMemoryKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo);
198
199IMG_IMPORT
200PVRSRV_ERROR IMG_CALLCONV PVRSRVWrapExtMemoryKM(IMG_HANDLE hDevCookie,
201 PVRSRV_PER_PROCESS_DATA *psPerProc,
202 IMG_HANDLE hDevMemContext,
203 IMG_SIZE_T ui32ByteSize,
204 IMG_SIZE_T ui32PageOffset,
205 IMG_BOOL bPhysContig,
206 IMG_SYS_PHYADDR *psSysAddr,
207 IMG_VOID *pvLinAddr,
208 IMG_UINT32 ui32Flags,
209 PVRSRV_KERNEL_MEM_INFO **ppsMemInfo);
210
211IMG_IMPORT
212PVRSRV_ERROR IMG_CALLCONV PVRSRVUnwrapExtMemoryKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo);
213
214IMG_IMPORT
215PVRSRV_ERROR PVRSRVEnumerateDCKM(PVRSRV_DEVICE_CLASS DeviceClass,
216 IMG_UINT32 *pui32DevCount,
217 IMG_UINT32 *pui32DevID );
218
219IMG_IMPORT
220PVRSRV_ERROR PVRSRVOpenDCDeviceKM(PVRSRV_PER_PROCESS_DATA *psPerProc,
221 IMG_UINT32 ui32DeviceID,
222 IMG_HANDLE hDevCookie,
223 IMG_HANDLE *phDeviceKM);
224
225IMG_IMPORT
226PVRSRV_ERROR PVRSRVCloseDCDeviceKM(IMG_HANDLE hDeviceKM);
227
228IMG_IMPORT
229PVRSRV_ERROR PVRSRVEnumDCFormatsKM(IMG_HANDLE hDeviceKM,
230 IMG_UINT32 *pui32Count,
231 DISPLAY_FORMAT *psFormat);
232
233IMG_IMPORT
234PVRSRV_ERROR PVRSRVEnumDCDimsKM(IMG_HANDLE hDeviceKM,
235 DISPLAY_FORMAT *psFormat,
236 IMG_UINT32 *pui32Count,
237 DISPLAY_DIMS *psDim);
238
239IMG_IMPORT
240PVRSRV_ERROR PVRSRVGetDCSystemBufferKM(IMG_HANDLE hDeviceKM,
241 IMG_HANDLE *phBuffer);
242
243IMG_IMPORT
244PVRSRV_ERROR PVRSRVGetDCInfoKM(IMG_HANDLE hDeviceKM,
245 DISPLAY_INFO *psDisplayInfo);
246IMG_IMPORT
247PVRSRV_ERROR PVRSRVCreateDCSwapChainKM(PVRSRV_PER_PROCESS_DATA *psPerProc,
248 IMG_HANDLE hDeviceKM,
249 IMG_UINT32 ui32Flags,
250 DISPLAY_SURF_ATTRIBUTES *psDstSurfAttrib,
251 DISPLAY_SURF_ATTRIBUTES *psSrcSurfAttrib,
252 IMG_UINT32 ui32BufferCount,
253 IMG_UINT32 ui32OEMFlags,
254 IMG_HANDLE *phSwapChain,
255 IMG_UINT32 *pui32SwapChainID);
256IMG_IMPORT
257PVRSRV_ERROR PVRSRVDestroyDCSwapChainKM(IMG_HANDLE hSwapChain);
258IMG_IMPORT
259PVRSRV_ERROR PVRSRVSetDCDstRectKM(IMG_HANDLE hDeviceKM,
260 IMG_HANDLE hSwapChain,
261 IMG_RECT *psRect);
262IMG_IMPORT
263PVRSRV_ERROR PVRSRVSetDCSrcRectKM(IMG_HANDLE hDeviceKM,
264 IMG_HANDLE hSwapChain,
265 IMG_RECT *psRect);
266IMG_IMPORT
267PVRSRV_ERROR PVRSRVSetDCDstColourKeyKM(IMG_HANDLE hDeviceKM,
268 IMG_HANDLE hSwapChain,
269 IMG_UINT32 ui32CKColour);
270IMG_IMPORT
271PVRSRV_ERROR PVRSRVSetDCSrcColourKeyKM(IMG_HANDLE hDeviceKM,
272 IMG_HANDLE hSwapChain,
273 IMG_UINT32 ui32CKColour);
274IMG_IMPORT
275PVRSRV_ERROR PVRSRVGetDCBuffersKM(IMG_HANDLE hDeviceKM,
276 IMG_HANDLE hSwapChain,
277 IMG_UINT32 *pui32BufferCount,
278 IMG_HANDLE *phBuffer,
279 IMG_SYS_PHYADDR *psPhyAddr);
280IMG_IMPORT
281PVRSRV_ERROR PVRSRVSwapToDCBufferKM(IMG_HANDLE hDeviceKM,
282 IMG_HANDLE hBuffer,
283 IMG_UINT32 ui32SwapInterval,
284 IMG_HANDLE hPrivateTag,
285 IMG_UINT32 ui32ClipRectCount,
286 IMG_RECT *psClipRect);
287IMG_IMPORT
288PVRSRV_ERROR PVRSRVSwapToDCBuffer2KM(IMG_HANDLE hDeviceKM,
289 IMG_HANDLE hBuffer,
290 IMG_UINT32 ui32SwapInterval,
291 PVRSRV_KERNEL_MEM_INFO **ppsMemInfos,
292 PVRSRV_KERNEL_SYNC_INFO **ppsSyncInfos,
293 IMG_UINT32 ui32NumMemSyncInfos,
294 IMG_PVOID pvPrivData,
295 IMG_UINT32 ui32PrivDataLength);
296IMG_IMPORT
297PVRSRV_ERROR PVRSRVSwapToDCSystemKM(IMG_HANDLE hDeviceKM,
298 IMG_HANDLE hSwapChain);
299
300IMG_IMPORT
301PVRSRV_ERROR PVRSRVOpenBCDeviceKM(PVRSRV_PER_PROCESS_DATA *psPerProc,
302 IMG_UINT32 ui32DeviceID,
303 IMG_HANDLE hDevCookie,
304 IMG_HANDLE *phDeviceKM);
305IMG_IMPORT
306PVRSRV_ERROR PVRSRVCloseBCDeviceKM(IMG_HANDLE hDeviceKM);
307
308IMG_IMPORT
309PVRSRV_ERROR PVRSRVGetBCInfoKM(IMG_HANDLE hDeviceKM,
310 BUFFER_INFO *psBufferInfo);
311IMG_IMPORT
312PVRSRV_ERROR PVRSRVGetBCBufferKM(IMG_HANDLE hDeviceKM,
313 IMG_UINT32 ui32BufferIndex,
314 IMG_HANDLE *phBuffer);
315
316
317IMG_IMPORT
318PVRSRV_ERROR IMG_CALLCONV PVRSRVMapDeviceClassMemoryKM(PVRSRV_PER_PROCESS_DATA *psPerProc,
319 IMG_HANDLE hDevMemContext,
320 IMG_HANDLE hDeviceClassBuffer,
321 PVRSRV_KERNEL_MEM_INFO **ppsMemInfo,
322 IMG_HANDLE *phOSMapInfo);
323
324IMG_EXPORT
325PVRSRV_ERROR IMG_CALLCONV PVRSRVChangeDeviceMemoryAttributesKM(IMG_HANDLE hKernelMemInfo,
326 IMG_UINT32 ui32Attribs);
327
328IMG_IMPORT
329PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapDeviceClassMemoryKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo);
330
331IMG_IMPORT
332PVRSRV_ERROR IMG_CALLCONV PVRSRVGetFreeDeviceMemKM(IMG_UINT32 ui32Flags,
333 IMG_SIZE_T *pui32Total,
334 IMG_SIZE_T *pui32Free,
335 IMG_SIZE_T *pui32LargestBlock);
336IMG_IMPORT
337PVRSRV_ERROR IMG_CALLCONV PVRSRVAllocSyncInfoKM(IMG_HANDLE hDevCookie,
338 IMG_HANDLE hDevMemContext,
339 PVRSRV_KERNEL_SYNC_INFO **ppsKernelSyncInfo);
340IMG_IMPORT
341IMG_VOID IMG_CALLCONV PVRSRVAcquireSyncInfoKM(PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo);
342IMG_IMPORT
343IMG_VOID IMG_CALLCONV PVRSRVReleaseSyncInfoKM(PVRSRV_KERNEL_SYNC_INFO *psKernelSyncInfo);
344
345IMG_IMPORT
346#if defined (SUPPORT_SID_INTERFACE)
347PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfoKM(PVRSRV_MISC_INFO_KM *psMiscInfo);
348#else
349PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfoKM(PVRSRV_MISC_INFO *psMiscInfo);
350#endif
351
352/*!
353 * *****************************************************************************
354 * @brief Allocates memory on behalf of a userspace process that is addressable
355 * by ther kernel. The memory is suitable for mapping into
356 * user space and it is possible to entirely dissociate the memory
357 * from the userspace process via PVRSRVDissociateSharedSysMemoryKM.
358 *
359 * @param psPerProc
360 * @param ui32Flags
361 * @param ui32Size
362 * @param ppsKernelMemInfo
363 *
364 * @return PVRSRV_ERROR
365 ********************************************************************************/
366IMG_IMPORT PVRSRV_ERROR
367PVRSRVAllocSharedSysMemoryKM(PVRSRV_PER_PROCESS_DATA *psPerProc,
368 IMG_UINT32 ui32Flags,
369 IMG_SIZE_T ui32Size,
370 PVRSRV_KERNEL_MEM_INFO **ppsKernelMemInfo);
371
372/*!
373 * *****************************************************************************
374 * @brief Frees memory allocated via PVRSRVAllocSharedSysMemoryKM (Note you must
375 * be sure any additional kernel references you created have been
376 * removed before freeing the memory)
377 *
378 * @param psKernelMemInfo
379 *
380 * @return PVRSRV_ERROR
381 ********************************************************************************/
382IMG_IMPORT PVRSRV_ERROR
383PVRSRVFreeSharedSysMemoryKM(PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo);
384
385/*!
386******************************************************************************
387
388 @brief Dissociates memory from the process that allocates it. Intended for
389 transfering the ownership of system memory from a particular process
390 to the kernel. Unlike PVRSRVDissociateDeviceMemKM, ownership is not
391 transfered to the kernel context, so the Resource Manager will not
392 automatically clean up such memory.
393
394 @param psKernelMemInfo:
395
396 @return PVRSRV_ERROR:
397******************************************************************************/
398IMG_IMPORT PVRSRV_ERROR
399PVRSRVDissociateMemFromResmanKM(PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo);
400
401#if defined (__cplusplus)
402}
403#endif
404
405#endif /* __PVR_BRIDGE_KM_H_ */
406
407/******************************************************************************
408 End of file (pvr_bridge_km.h)
409******************************************************************************/