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 <linux/sched.h>
32 #include "img_types.h"
37 struct PVRSRV_PER_PROCESS_DATA {
39 char name[TASK_COMM_LEN];
41 struct RESMAN_CONTEXT *hResManContext;
43 struct PVRSRV_HANDLE_BASE *psHandleBase;
45 IMG_BOOL bHandlesBatched;
48 IMG_BOOL bInitProcess;
53 struct PVRSRV_PER_PROCESS_DATA *PVRSRVPerProcessData(u32 ui32PID);
55 enum PVRSRV_ERROR PVRSRVPerProcessDataConnect(u32 ui32PID);
56 void PVRSRVPerProcessDataDisconnect(u32 ui32PID);
58 enum PVRSRV_ERROR PVRSRVPerProcessDataInit(void);
59 enum PVRSRV_ERROR PVRSRVPerProcessDataDeInit(void);
61 static inline struct PVRSRV_PER_PROCESS_DATA *PVRSRVFindPerProcessData(void)
63 return PVRSRVPerProcessData(OSGetCurrentProcessIDKM());
66 static inline void *PVRSRVProcessPrivateData(struct PVRSRV_PER_PROCESS_DATA
69 return (psPerProc != NULL) ? psPerProc->hOsPrivateData : NULL;
72 static inline void *PVRSRVPerProcessPrivateData(u32 ui32PID)
74 return PVRSRVProcessPrivateData(PVRSRVPerProcessData(ui32PID));
77 static inline void *PVRSRVFindPerProcessPrivateData(void)
79 return PVRSRVProcessPrivateData(PVRSRVFindPerProcessData());