diff options
Diffstat (limited to 'drivers/gpu/pvr/services4/srvkm/env/linux/private_data.h')
-rw-r--r-- | drivers/gpu/pvr/services4/srvkm/env/linux/private_data.h | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/drivers/gpu/pvr/services4/srvkm/env/linux/private_data.h b/drivers/gpu/pvr/services4/srvkm/env/linux/private_data.h new file mode 100644 index 000000000000..e2a6c74d35d4 --- /dev/null +++ b/drivers/gpu/pvr/services4/srvkm/env/linux/private_data.h | |||
@@ -0,0 +1,91 @@ | |||
1 | /*************************************************************************/ /*! | ||
2 | @Title Linux private data structure | ||
3 | @Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved | ||
4 | @License Dual MIT/GPLv2 | ||
5 | |||
6 | The contents of this file are subject to the MIT license as set out below. | ||
7 | |||
8 | Permission is hereby granted, free of charge, to any person obtaining a copy | ||
9 | of this software and associated documentation files (the "Software"), to deal | ||
10 | in the Software without restriction, including without limitation the rights | ||
11 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
12 | copies of the Software, and to permit persons to whom the Software is | ||
13 | furnished to do so, subject to the following conditions: | ||
14 | |||
15 | The above copyright notice and this permission notice shall be included in | ||
16 | all copies or substantial portions of the Software. | ||
17 | |||
18 | Alternatively, the contents of this file may be used under the terms of | ||
19 | the GNU General Public License Version 2 ("GPL") in which case the provisions | ||
20 | of GPL are applicable instead of those above. | ||
21 | |||
22 | If you wish to allow use of your version of this file only under the terms of | ||
23 | GPL, and not to allow others to use your version of this file under the terms | ||
24 | of the MIT license, indicate your decision by deleting the provisions above | ||
25 | and replace them with the notice and other provisions required by GPL as set | ||
26 | out in the file called "GPL-COPYING" included in this distribution. If you do | ||
27 | not delete the provisions above, a recipient may use your version of this file | ||
28 | under the terms of either the MIT license or GPL. | ||
29 | |||
30 | This License is also included in this distribution in the file called | ||
31 | "MIT-COPYING". | ||
32 | |||
33 | EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS | ||
34 | PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING | ||
35 | BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR | ||
36 | PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR | ||
37 | COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | ||
38 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | ||
39 | CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | ||
40 | */ /**************************************************************************/ | ||
41 | |||
42 | #ifndef __INCLUDED_PRIVATE_DATA_H_ | ||
43 | #define __INCLUDED_PRIVATE_DATA_H_ | ||
44 | |||
45 | #if defined(SUPPORT_DRI_DRM) && defined(PVR_SECURE_DRM_AUTH_EXPORT) | ||
46 | #include <linux/list.h> | ||
47 | #include <drm/drmP.h> | ||
48 | #endif | ||
49 | |||
50 | /* This structure is required in the rare case that a process creates | ||
51 | * a connection to services, but before closing the file descriptor, | ||
52 | * does a fork(). This fork() will duplicate the file descriptor in the | ||
53 | * child process. If the parent process dies before the child, this can | ||
54 | * cause the PVRSRVRelease() method to be called in a different process | ||
55 | * context than the original PVRSRVOpen(). This is bad because we need | ||
56 | * to update the per-process data reference count and/or free the | ||
57 | * per-process data. So we must keep a record of which PID's per-process | ||
58 | * data to inspect during ->release(). | ||
59 | */ | ||
60 | |||
61 | typedef struct | ||
62 | { | ||
63 | /* PID that created this services connection */ | ||
64 | IMG_UINT32 ui32OpenPID; | ||
65 | |||
66 | /* Global kernel MemInfo handle */ | ||
67 | IMG_HANDLE hKernelMemInfo; | ||
68 | |||
69 | #if defined(SUPPORT_DRI_DRM) && defined(PVR_SECURE_DRM_AUTH_EXPORT) | ||
70 | /* The private data is on a list in the per-process data structure */ | ||
71 | struct list_head sDRMAuthListItem; | ||
72 | |||
73 | struct drm_file *psDRMFile; | ||
74 | #endif | ||
75 | |||
76 | #if defined(SUPPORT_MEMINFO_IDS) | ||
77 | /* Globally unique "stamp" for kernel MemInfo */ | ||
78 | IMG_UINT64 ui64Stamp; | ||
79 | #endif /* defined(SUPPORT_MEMINFO_IDS) */ | ||
80 | |||
81 | /* Accounting for OSAllocMem */ | ||
82 | IMG_HANDLE hBlockAlloc; | ||
83 | |||
84 | #if defined(SUPPORT_DRI_DRM_EXT) | ||
85 | IMG_PVOID pPriv; /*private data for extending this struct*/ | ||
86 | #endif | ||
87 | } | ||
88 | PVRSRV_FILE_PRIVATE_DATA; | ||
89 | |||
90 | #endif /* __INCLUDED_PRIVATE_DATA_H_ */ | ||
91 | |||