1 /**********************************************************************
3 * Copyright(c) 2008 Imagination Technologies Ltd. All rights reserved.
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.
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.
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.
18 * The full GNU General Public License is included in this distribution in
19 * the file called "COPYING".
21 * Contact Information:
22 * Imagination Technologies Ltd. <gpl-support@imgtec.com>
23 * Home Park Estate, Kings Langley, Herts, WD4 8LZ, UK
25 ******************************************************************************/
30 #include "img_types.h"
35 struct PVRSRV_PER_PROCESS_DATA {
38 struct RESMAN_CONTEXT *hResManContext;
40 struct PVRSRV_HANDLE_BASE *psHandleBase;
42 IMG_BOOL bHandlesBatched;
45 IMG_BOOL bInitProcess;
50 struct PVRSRV_PER_PROCESS_DATA *PVRSRVPerProcessData(u32 ui32PID);
52 enum PVRSRV_ERROR PVRSRVPerProcessDataConnect(u32 ui32PID);
53 void PVRSRVPerProcessDataDisconnect(u32 ui32PID);
55 enum PVRSRV_ERROR PVRSRVPerProcessDataInit(void);
56 enum PVRSRV_ERROR PVRSRVPerProcessDataDeInit(void);
58 static inline struct PVRSRV_PER_PROCESS_DATA *PVRSRVFindPerProcessData(void)
60 return PVRSRVPerProcessData(OSGetCurrentProcessIDKM());
63 static inline void *PVRSRVProcessPrivateData(struct PVRSRV_PER_PROCESS_DATA
66 return (psPerProc != NULL) ? psPerProc->hOsPrivateData : NULL;
69 static inline void *PVRSRVPerProcessPrivateData(u32 ui32PID)
71 return PVRSRVProcessPrivateData(PVRSRVPerProcessData(ui32PID));
74 static inline void *PVRSRVFindPerProcessPrivateData(void)
76 return PVRSRVProcessPrivateData(PVRSRVFindPerProcessData());