~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to drivers/gpu/pvr/pvr_bridge_km.h

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**********************************************************************
 
2
 *
 
3
 * Copyright (C) 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
#if defined (__cplusplus)
 
31
extern "C" {
 
32
#endif
 
33
 
 
34
#include "pvr_bridge.h"
 
35
#include "perproc.h"
 
36
 
 
37
#if defined(__linux__)
 
38
PVRSRV_ERROR LinuxBridgeInit(IMG_VOID);
 
39
IMG_VOID LinuxBridgeDeInit(IMG_VOID);
 
40
#endif
 
41
 
 
42
IMG_IMPORT
 
43
PVRSRV_ERROR IMG_CALLCONV PVRSRVEnumerateDevicesKM(IMG_UINT32 *pui32NumDevices,
 
44
                                                                                                   PVRSRV_DEVICE_IDENTIFIER *psDevIdList);
 
45
 
 
46
IMG_IMPORT
 
47
PVRSRV_ERROR IMG_CALLCONV PVRSRVAcquireDeviceDataKM(IMG_UINT32                  uiDevIndex,
 
48
                                                                                                        PVRSRV_DEVICE_TYPE      eDeviceType,
 
49
                                                                                                        IMG_HANDLE                      *phDevCookie);
 
50
                                                        
 
51
IMG_IMPORT
 
52
PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateCommandQueueKM(IMG_SIZE_T ui32QueueSize,
 
53
                                                                                                         PVRSRV_QUEUE_INFO **ppsQueueInfo);
 
54
 
 
55
IMG_IMPORT
 
56
PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyCommandQueueKM(PVRSRV_QUEUE_INFO *psQueueInfo);
 
57
 
 
58
IMG_IMPORT
 
59
PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDeviceMemHeapsKM(IMG_HANDLE hDevCookie,
 
60
#if defined (SUPPORT_SID_INTERFACE)
 
61
                                                                                                        PVRSRV_HEAP_INFO_KM *psHeapInfo);
 
62
#else
 
63
                                                                                                        PVRSRV_HEAP_INFO *psHeapInfo);
 
64
#endif
 
65
 
 
66
IMG_IMPORT
 
67
PVRSRV_ERROR IMG_CALLCONV PVRSRVCreateDeviceMemContextKM(IMG_HANDLE                                     hDevCookie,
 
68
                                                                                                                 PVRSRV_PER_PROCESS_DATA        *psPerProc,
 
69
                                                                                                                 IMG_HANDLE                                     *phDevMemContext,
 
70
                                                                                                                 IMG_UINT32                                     *pui32ClientHeapCount,
 
71
#if defined (SUPPORT_SID_INTERFACE)
 
72
                                                                                                                 PVRSRV_HEAP_INFO_KM            *psHeapInfo,
 
73
#else
 
74
                                                                                                                 PVRSRV_HEAP_INFO                       *psHeapInfo,
 
75
#endif
 
76
                                                                                                                 IMG_BOOL                                       *pbCreated,
 
77
                                                                                                                 IMG_BOOL                                       *pbShared);
 
78
 
 
79
 
 
80
IMG_IMPORT
 
81
PVRSRV_ERROR IMG_CALLCONV PVRSRVDestroyDeviceMemContextKM(IMG_HANDLE hDevCookie,
 
82
                                                                                                                  IMG_HANDLE hDevMemContext,
 
83
                                                                                                                  IMG_BOOL *pbDestroyed);
 
84
 
 
85
 
 
86
IMG_IMPORT
 
87
PVRSRV_ERROR IMG_CALLCONV PVRSRVGetDeviceMemHeapInfoKM(IMG_HANDLE                               hDevCookie,
 
88
                                                                                                                        IMG_HANDLE                      hDevMemContext,
 
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                        *pbShared
 
96
                                        );
 
97
 
 
98
 
 
99
IMG_IMPORT
 
100
PVRSRV_ERROR IMG_CALLCONV _PVRSRVAllocDeviceMemKM(IMG_HANDLE                                    hDevCookie,
 
101
                                                                                                 PVRSRV_PER_PROCESS_DATA        *psPerProc,
 
102
                                                                                                 IMG_HANDLE                                     hDevMemHeap,
 
103
                                                                                                 IMG_UINT32                                     ui32Flags,
 
104
                                                                                                 IMG_SIZE_T                                     ui32Size,
 
105
                                                                                                 IMG_SIZE_T                                     ui32Alignment,
 
106
                                                                                                 PVRSRV_KERNEL_MEM_INFO         **ppsMemInfo);
 
107
 
 
108
 
 
109
#if defined(PVRSRV_LOG_MEMORY_ALLOCS)
 
110
        #define PVRSRVAllocDeviceMemKM(devCookie, perProc, devMemHeap, flags, size, alignment, memInfo, logStr) \
 
111
                (PVR_TRACE(("PVRSRVAllocDeviceMemKM(" #devCookie ", " #perProc ", " #devMemHeap ", " #flags ", " #size \
 
112
                        ", " #alignment "," #memInfo "): " logStr " (size = 0x%x)", size)),\
 
113
                        _PVRSRVAllocDeviceMemKM(devCookie, perProc, devMemHeap, flags, size, alignment, memInfo))
 
114
#else
 
115
        #define PVRSRVAllocDeviceMemKM(devCookie, perProc, devMemHeap, flags, size, alignment, memInfo, logStr) \
 
116
                        _PVRSRVAllocDeviceMemKM(devCookie, perProc, devMemHeap, flags, size, alignment, memInfo)
 
117
#endif
 
118
 
 
119
 
 
120
IMG_IMPORT
 
121
PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeDeviceMemKM(IMG_HANDLE                      hDevCookie,
 
122
                                                                                                PVRSRV_KERNEL_MEM_INFO  *psMemInfo);
 
123
 
 
124
IMG_IMPORT
 
125
PVRSRV_ERROR IMG_CALLCONV PVRSRVDissociateDeviceMemKM(IMG_HANDLE                        hDevCookie,
 
126
                                                                                                PVRSRV_KERNEL_MEM_INFO  *psMemInfo);
 
127
 
 
128
IMG_IMPORT
 
129
PVRSRV_ERROR IMG_CALLCONV PVRSRVReserveDeviceVirtualMemKM(IMG_HANDLE            hDevMemHeap,
 
130
                                                                                                                 IMG_DEV_VIRTADDR       *psDevVAddr,
 
131
                                                                                                                 IMG_SIZE_T                     ui32Size,
 
132
                                                                                                                 IMG_SIZE_T                     ui32Alignment,
 
133
                                                                                                                 PVRSRV_KERNEL_MEM_INFO **ppsMemInfo);
 
134
 
 
135
IMG_IMPORT
 
136
PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeDeviceVirtualMemKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo);
 
137
 
 
138
IMG_IMPORT
 
139
PVRSRV_ERROR IMG_CALLCONV PVRSRVMapDeviceMemoryKM(PVRSRV_PER_PROCESS_DATA       *psPerProc,
 
140
                                                                                                  PVRSRV_KERNEL_MEM_INFO        *psSrcMemInfo,
 
141
                                                                                                  IMG_HANDLE                            hDstDevMemHeap,
 
142
                                                                                                  PVRSRV_KERNEL_MEM_INFO        **ppsDstMemInfo);
 
143
 
 
144
IMG_IMPORT
 
145
PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapDeviceMemoryKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo);
 
146
 
 
147
IMG_IMPORT
 
148
PVRSRV_ERROR IMG_CALLCONV PVRSRVWrapExtMemoryKM(IMG_HANDLE                              hDevCookie,
 
149
                                                                                                PVRSRV_PER_PROCESS_DATA *psPerProc,
 
150
                                                                                                IMG_HANDLE                              hDevMemContext,
 
151
                                                                                                IMG_SIZE_T                              ui32ByteSize, 
 
152
                                                                                                IMG_SIZE_T                              ui32PageOffset,
 
153
                                                                                                IMG_BOOL                                bPhysContig,
 
154
                                                                                                IMG_SYS_PHYADDR                 *psSysAddr,
 
155
                                                                                                IMG_VOID                                *pvLinAddr,
 
156
                                                                                                IMG_UINT32                              ui32Flags,
 
157
                                                                                                PVRSRV_KERNEL_MEM_INFO **ppsMemInfo);
 
158
 
 
159
IMG_IMPORT
 
160
PVRSRV_ERROR IMG_CALLCONV PVRSRVUnwrapExtMemoryKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo);
 
161
 
 
162
IMG_IMPORT
 
163
PVRSRV_ERROR PVRSRVEnumerateDCKM(PVRSRV_DEVICE_CLASS DeviceClass,
 
164
                                                                 IMG_UINT32 *pui32DevCount,
 
165
                                                                 IMG_UINT32 *pui32DevID );
 
166
 
 
167
IMG_IMPORT
 
168
PVRSRV_ERROR PVRSRVOpenDCDeviceKM(PVRSRV_PER_PROCESS_DATA       *psPerProc,
 
169
                                                                  IMG_UINT32                            ui32DeviceID,
 
170
                                                                  IMG_HANDLE                            hDevCookie,
 
171
                                                                  IMG_HANDLE                            *phDeviceKM);
 
172
 
 
173
IMG_IMPORT
 
174
PVRSRV_ERROR PVRSRVCloseDCDeviceKM(IMG_HANDLE hDeviceKM, IMG_BOOL bResManCallback);
 
175
 
 
176
IMG_IMPORT
 
177
PVRSRV_ERROR PVRSRVEnumDCFormatsKM(IMG_HANDLE hDeviceKM,
 
178
                                                                   IMG_UINT32 *pui32Count,
 
179
                                                                   DISPLAY_FORMAT *psFormat);
 
180
 
 
181
IMG_IMPORT
 
182
PVRSRV_ERROR PVRSRVEnumDCDimsKM(IMG_HANDLE hDeviceKM,
 
183
                                                                DISPLAY_FORMAT *psFormat,
 
184
                                                                IMG_UINT32 *pui32Count,
 
185
                                                                DISPLAY_DIMS *psDim);
 
186
 
 
187
IMG_IMPORT
 
188
PVRSRV_ERROR PVRSRVGetDCSystemBufferKM(IMG_HANDLE hDeviceKM,
 
189
                                                                           IMG_HANDLE *phBuffer);
 
190
 
 
191
IMG_IMPORT
 
192
PVRSRV_ERROR PVRSRVGetDCInfoKM(IMG_HANDLE hDeviceKM,
 
193
                                                           DISPLAY_INFO *psDisplayInfo);
 
194
IMG_IMPORT
 
195
PVRSRV_ERROR PVRSRVCreateDCSwapChainKM(PVRSRV_PER_PROCESS_DATA  *psPerProc,
 
196
                                                                           IMG_HANDLE                           hDeviceKM,
 
197
                                                                           IMG_UINT32                           ui32Flags,
 
198
                                                                           DISPLAY_SURF_ATTRIBUTES      *psDstSurfAttrib,
 
199
                                                                           DISPLAY_SURF_ATTRIBUTES      *psSrcSurfAttrib,
 
200
                                                                           IMG_UINT32                           ui32BufferCount,
 
201
                                                                           IMG_UINT32                           ui32OEMFlags,
 
202
                                                                           IMG_HANDLE                           *phSwapChain,
 
203
                                                                           IMG_UINT32                           *pui32SwapChainID);
 
204
IMG_IMPORT
 
205
PVRSRV_ERROR PVRSRVDestroyDCSwapChainKM(IMG_HANDLE      hSwapChain);
 
206
IMG_IMPORT
 
207
PVRSRV_ERROR PVRSRVSetDCDstRectKM(IMG_HANDLE    hDeviceKM,
 
208
                                                                  IMG_HANDLE    hSwapChain,
 
209
                                                                  IMG_RECT      *psRect);
 
210
IMG_IMPORT
 
211
PVRSRV_ERROR PVRSRVSetDCSrcRectKM(IMG_HANDLE    hDeviceKM,
 
212
                                                                  IMG_HANDLE    hSwapChain,
 
213
                                                                  IMG_RECT      *psRect);
 
214
IMG_IMPORT
 
215
PVRSRV_ERROR PVRSRVSetDCDstColourKeyKM(IMG_HANDLE       hDeviceKM,
 
216
                                                                           IMG_HANDLE   hSwapChain,
 
217
                                                                           IMG_UINT32   ui32CKColour);
 
218
IMG_IMPORT
 
219
PVRSRV_ERROR PVRSRVSetDCSrcColourKeyKM(IMG_HANDLE       hDeviceKM,
 
220
                                                                        IMG_HANDLE              hSwapChain,
 
221
                                                                        IMG_UINT32              ui32CKColour);
 
222
IMG_IMPORT
 
223
PVRSRV_ERROR PVRSRVGetDCBuffersKM(IMG_HANDLE    hDeviceKM,
 
224
                                                                  IMG_HANDLE    hSwapChain,
 
225
                                                                  IMG_UINT32    *pui32BufferCount,
 
226
                                                                  IMG_HANDLE    *phBuffer);
 
227
IMG_IMPORT
 
228
PVRSRV_ERROR PVRSRVSwapToDCBufferKM(IMG_HANDLE  hDeviceKM,
 
229
                                                                        IMG_HANDLE      hBuffer,
 
230
                                                                        IMG_UINT32      ui32SwapInterval,
 
231
                                                                        IMG_HANDLE      hPrivateTag,
 
232
                                                                        IMG_UINT32      ui32ClipRectCount,
 
233
                                                                        IMG_RECT        *psClipRect);
 
234
IMG_IMPORT
 
235
PVRSRV_ERROR PVRSRVSwapToDCSystemKM(IMG_HANDLE  hDeviceKM,
 
236
                                                                        IMG_HANDLE      hSwapChain);
 
237
 
 
238
IMG_IMPORT
 
239
PVRSRV_ERROR PVRSRVOpenBCDeviceKM(PVRSRV_PER_PROCESS_DATA       *psPerProc,
 
240
                                                                  IMG_UINT32                            ui32DeviceID,
 
241
                                                                  IMG_HANDLE                            hDevCookie,
 
242
                                                                  IMG_HANDLE                            *phDeviceKM);
 
243
IMG_IMPORT
 
244
PVRSRV_ERROR PVRSRVCloseBCDeviceKM(IMG_HANDLE hDeviceKM, IMG_BOOL bResManCallback);
 
245
 
 
246
IMG_IMPORT
 
247
PVRSRV_ERROR PVRSRVGetBCInfoKM(IMG_HANDLE       hDeviceKM,
 
248
                                                           BUFFER_INFO  *psBufferInfo);
 
249
IMG_IMPORT
 
250
PVRSRV_ERROR PVRSRVGetBCBufferKM(IMG_HANDLE     hDeviceKM,
 
251
                                                                 IMG_UINT32     ui32BufferIndex,
 
252
                                                                 IMG_HANDLE     *phBuffer);
 
253
 
 
254
 
 
255
IMG_IMPORT
 
256
PVRSRV_ERROR IMG_CALLCONV PVRSRVMapDeviceClassMemoryKM(PVRSRV_PER_PROCESS_DATA  *psPerProc,
 
257
                                                                                                           IMG_HANDLE                           hDevMemContext,
 
258
                                                                                                           IMG_HANDLE                           hDeviceClassBuffer,
 
259
                                                                                                           PVRSRV_KERNEL_MEM_INFO       **ppsMemInfo,
 
260
                                                                                                           IMG_HANDLE                           *phOSMapInfo);
 
261
 
 
262
IMG_EXPORT
 
263
PVRSRV_ERROR IMG_CALLCONV PVRSRVChangeDeviceMemoryAttributesKM(IMG_HANDLE hKernelMemInfo,
 
264
                                                                                                                           IMG_UINT32 ui32Attribs);
 
265
 
 
266
IMG_IMPORT
 
267
PVRSRV_ERROR IMG_CALLCONV PVRSRVUnmapDeviceClassMemoryKM(PVRSRV_KERNEL_MEM_INFO *psMemInfo);
 
268
 
 
269
IMG_IMPORT
 
270
PVRSRV_ERROR IMG_CALLCONV PVRSRVGetFreeDeviceMemKM(IMG_UINT32 ui32Flags,
 
271
                                                                                                   IMG_SIZE_T *pui32Total,
 
272
                                                                                                   IMG_SIZE_T *pui32Free,
 
273
                                                                                                   IMG_SIZE_T *pui32LargestBlock);
 
274
IMG_IMPORT
 
275
PVRSRV_ERROR IMG_CALLCONV PVRSRVAllocSyncInfoKM(IMG_HANDLE                                      hDevCookie,
 
276
                                                                                                IMG_HANDLE                                      hDevMemContext,
 
277
                                                                                                PVRSRV_KERNEL_SYNC_INFO **ppsKernelSyncInfo);
 
278
IMG_IMPORT
 
279
PVRSRV_ERROR IMG_CALLCONV PVRSRVFreeSyncInfoKM(PVRSRV_KERNEL_SYNC_INFO  *psKernelSyncInfo);
 
280
 
 
281
IMG_IMPORT
 
282
#if defined (SUPPORT_SID_INTERFACE)
 
283
PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfoKM(PVRSRV_MISC_INFO_KM *psMiscInfo);
 
284
#else
 
285
PVRSRV_ERROR IMG_CALLCONV PVRSRVGetMiscInfoKM(PVRSRV_MISC_INFO *psMiscInfo);
 
286
#endif
 
287
 
 
288
IMG_IMPORT PVRSRV_ERROR
 
289
PVRSRVAllocSharedSysMemoryKM(PVRSRV_PER_PROCESS_DATA    *psPerProc,
 
290
                                                         IMG_UINT32                             ui32Flags,
 
291
                                                         IMG_SIZE_T                             ui32Size,
 
292
                                                         PVRSRV_KERNEL_MEM_INFO         **ppsKernelMemInfo);
 
293
 
 
294
IMG_IMPORT PVRSRV_ERROR
 
295
PVRSRVFreeSharedSysMemoryKM(PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo);
 
296
 
 
297
IMG_IMPORT PVRSRV_ERROR
 
298
PVRSRVDissociateMemFromResmanKM(PVRSRV_KERNEL_MEM_INFO *psKernelMemInfo);
 
299
 
 
300
#if defined (__cplusplus)
 
301
}
 
302
#endif
 
303
 
 
304
#endif 
 
305