1 /**********************************************************************
2 Copyright (c) Imagination Technologies Ltd.
4 Permission is hereby granted, free of charge, to any person obtaining a copy
5 of this software and associated documentation files (the "Software"), to deal
6 in the Software without restriction, including without limitation the rights
7 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 copies of the Software, and to permit persons to whom the Software is
9 furnished to do so, subject to the following conditions:
11 The above copyright notice and this permission notice shall be included in
12 all copies or substantial portions of the Software.
14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21 ******************************************************************************/
26 #if defined (__cplusplus)
32 RESMAN_TYPE_SHARED_PB_DESC = 1,
33 RESMAN_TYPE_SHARED_PB_DESC_CREATE_LOCK,
34 RESMAN_TYPE_HW_RENDER_CONTEXT,
35 RESMAN_TYPE_HW_TRANSFER_CONTEXT,
36 RESMAN_TYPE_HW_2D_CONTEXT,
37 RESMAN_TYPE_TRANSFER_CONTEXT,
43 RESMAN_TYPE_DISPLAYCLASS_SWAPCHAIN_REF,
44 RESMAN_TYPE_DISPLAYCLASS_DEVICE,
47 RESMAN_TYPE_BUFFERCLASS_DEVICE,
50 RESMAN_TYPE_OS_USERMODE_MAPPING,
53 RESMAN_TYPE_DEVICEMEM_CONTEXT,
54 RESMAN_TYPE_DEVICECLASSMEM_MAPPING,
55 RESMAN_TYPE_DEVICEMEM_MAPPING,
56 RESMAN_TYPE_DEVICEMEM_WRAP,
57 RESMAN_TYPE_DEVICEMEM_ALLOCATION,
58 RESMAN_TYPE_EVENT_OBJECT,
59 RESMAN_TYPE_SHARED_MEM_INFO,
60 RESMAN_TYPE_MODIFY_SYNC_OPS,
63 RESMAN_TYPE_KERNEL_DEVICEMEM_ALLOCATION
66 #define RESMAN_CRITERIA_ALL 0x00000000
67 #define RESMAN_CRITERIA_RESTYPE 0x00000001
68 #define RESMAN_CRITERIA_PVOID_PARAM 0x00000002
69 #define RESMAN_CRITERIA_UI32_PARAM 0x00000004
71 typedef PVRSRV_ERROR (*RESMAN_FREE_FN)(IMG_PVOID pvParam, IMG_UINT32 ui32Param);
73 typedef struct _RESMAN_ITEM_ *PRESMAN_ITEM;
74 typedef struct _RESMAN_CONTEXT_ *PRESMAN_CONTEXT;
76 PVRSRV_ERROR ResManInit(IMG_VOID);
77 IMG_VOID ResManDeInit(IMG_VOID);
79 PRESMAN_ITEM ResManRegisterRes(PRESMAN_CONTEXT hResManContext,
80 IMG_UINT32 ui32ResType,
83 RESMAN_FREE_FN pfnFreeResource);
85 PVRSRV_ERROR ResManFreeResByPtr(PRESMAN_ITEM psResItem);
87 PVRSRV_ERROR ResManFreeResByCriteria(PRESMAN_CONTEXT hResManContext,
88 IMG_UINT32 ui32SearchCriteria,
89 IMG_UINT32 ui32ResType,
91 IMG_UINT32 ui32Param);
93 PVRSRV_ERROR ResManDissociateRes(PRESMAN_ITEM psResItem,
94 PRESMAN_CONTEXT psNewResManContext);
96 PVRSRV_ERROR ResManFindResourceByPtr(PRESMAN_CONTEXT hResManContext,
99 PVRSRV_ERROR PVRSRVResManConnect(IMG_HANDLE hPerProc,
100 PRESMAN_CONTEXT *phResManContext);
101 IMG_VOID PVRSRVResManDisconnect(PRESMAN_CONTEXT hResManContext,
102 IMG_BOOL bKernelContext);
104 #if defined (__cplusplus)