Commit | Line | Data |
---|---|---|
6fa3eb70 S |
1 | #ifndef __GED_BRIDGE_H__ |
2 | #define __GED_BRIDGE_H__ | |
3 | ||
4 | #include "ged_base.h" | |
5 | #include "ged_log.h" | |
02af6beb | 6 | #include "ged_type.h" |
6fa3eb70 S |
7 | |
8 | typedef struct _GED_BRIDGE_PACKAGE | |
9 | { | |
10 | unsigned int ui32FunctionID; | |
11 | int i32Size; | |
12 | void *pvParamIn; | |
13 | int i32InBufferSize; | |
14 | void *pvParamOut; | |
15 | int i32OutBufferSize; | |
16 | } GED_BRIDGE_PACKAGE; | |
17 | ||
18 | /***************************************************************************** | |
19 | * IOCTL values. | |
20 | *****************************************************************************/ | |
21 | ||
22 | #define GED_MAGIC 'g' | |
23 | ||
24 | #define GED_IO(INDEX) _IO(GED_MAGIC, INDEX, GED_BRIDGE_PACKAGE) | |
25 | #define GED_IOW(INDEX) _IOW(GED_MAGIC, INDEX, GED_BRIDGE_PACKAGE) | |
26 | #define GED_IOR(INDEX) _IOR(GED_MAGIC, INDEX, GED_BRIDGE_PACKAGE) | |
27 | #define GED_IOWR(INDEX) _IOWR(GED_MAGIC, INDEX, GED_BRIDGE_PACKAGE) | |
28 | #define GED_GET_BRIDGE_ID(X) _IOC_NR(X) | |
29 | ||
02af6beb | 30 | /****************************************************************************** |
6fa3eb70 | 31 | * IOCTL Commands |
02af6beb | 32 | ******************************************************************************/ |
6fa3eb70 S |
33 | typedef enum |
34 | { | |
35 | GED_BRIDGE_COMMAND_LOG_BUF_GET, | |
36 | GED_BRIDGE_COMMAND_LOG_BUF_WRITE, | |
37 | GED_BRIDGE_COMMAND_LOG_BUF_RESET, | |
38 | GED_BRIDGE_COMMAND_BOOST_GPU_FREQ, | |
02af6beb S |
39 | GED_BRIDGE_COMMAND_MONITOR_3D_FENCE, |
40 | GED_BRIDGE_COMMAND_QUERY_INFO, | |
41 | GED_BRIDGE_COMMAND_NOTIFY_VSYNC, | |
42 | GED_BRIDGE_COMMAND_DVFS_PROBE, | |
43 | GED_BRIDGE_COMMAND_DVFS_UM_RETURN, | |
6fa3eb70 S |
44 | } GED_BRIDGE_COMMAND_ID; |
45 | ||
46 | #define GED_BRIDGE_IO_LOG_BUF_GET GED_IOWR(GED_BRIDGE_COMMAND_LOG_BUF_GET) | |
47 | #define GED_BRIDGE_IO_LOG_BUF_WRITE GED_IOWR(GED_BRIDGE_COMMAND_LOG_BUF_WRITE) | |
48 | #define GED_BRIDGE_IO_LOG_BUF_RESET GED_IOWR(GED_BRIDGE_COMMAND_LOG_BUF_RESET) | |
49 | #define GED_BRIDGE_IO_BOOST_GPU_FREQ GED_IOWR(GED_BRIDGE_COMMAND_BOOST_GPU_FREQ) | |
50 | #define GED_BRIDGE_IO_MONITOR_3D_FENCE GED_IOWR(GED_BRIDGE_COMMAND_MONITOR_3D_FENCE) | |
02af6beb S |
51 | #define GED_BRIDGE_IO_QUERY_INFO GED_IOWR(GED_BRIDGE_COMMAND_QUERY_INFO) |
52 | #define GED_BRIDGE_IO_NOTIFY_VSYNC GED_IOWR(GED_BRIDGE_COMMAND_NOTIFY_VSYNC) | |
53 | #define GED_BRIDGE_IO_DVFS_PROBE GED_IOWR(GED_BRIDGE_COMMAND_DVFS_PROBE) | |
54 | #define GED_BRIDGE_IO_DVFS_UM_RETURN GED_IOWR(GED_BRIDGE_COMMAND_DVFS_UM_RETURN) | |
6fa3eb70 S |
55 | |
56 | /***************************************************************************** | |
57 | * LOG_BUF_GET | |
58 | *****************************************************************************/ | |
59 | ||
60 | /* Bridge in structure for LOG_BUF_GET */ | |
61 | typedef struct GED_BRIDGE_IN_LOGBUFGET_TAG | |
62 | { | |
63 | char acName[GED_LOG_BUF_NAME_LENGTH]; | |
64 | } GED_BRIDGE_IN_LOGBUFGET; | |
65 | ||
66 | ||
67 | /* Bridge out structure for LOG_BUF_GETC */ | |
68 | typedef struct GED_BRIDGE_OUT_LOGBUFGET_TAG | |
69 | { | |
70 | GED_ERROR eError; | |
71 | GED_LOG_BUF_HANDLE hLogBuf; | |
72 | } GED_BRIDGE_OUT_LOGBUFGET; | |
73 | ||
74 | /***************************************************************************** | |
75 | * LOG_BUF_WRITE | |
76 | *****************************************************************************/ | |
77 | ||
02af6beb | 78 | #define GED_BRIDGE_IN_LOGBUF_SIZE 320 |
6fa3eb70 S |
79 | |
80 | /* Bridge in structure for LOG_BUF_WRITE */ | |
81 | typedef struct GED_BRIDGE_IN_LOGBUFWRITE_TAG | |
82 | { | |
83 | GED_LOG_BUF_HANDLE hLogBuf; | |
02af6beb | 84 | int attrs; |
6fa3eb70 S |
85 | char acLogBuf[GED_BRIDGE_IN_LOGBUF_SIZE]; |
86 | } GED_BRIDGE_IN_LOGBUFWRITE; | |
87 | ||
88 | /* Bridge out structure for LOG_BUF_WRITE */ | |
89 | typedef struct GED_BRIDGE_OUT_LOGBUFWRITE_TAG | |
90 | { | |
91 | GED_ERROR eError; | |
92 | } GED_BRIDGE_OUT_LOGBUFWRITE; | |
93 | ||
94 | /****************************************************************************** | |
95 | * LOG_BUF_RESET | |
96 | ******************************************************************************/ | |
97 | ||
98 | /* Bridge in structure for LOG_BUF_RESET */ | |
99 | typedef struct GED_BRIDGE_IN_LOGBUFRESET_TAG | |
100 | { | |
101 | GED_LOG_BUF_HANDLE hLogBuf; | |
102 | } GED_BRIDGE_IN_LOGBUFRESET; | |
103 | ||
104 | /* Bridge out structure for LOG_BUF_RESET */ | |
105 | typedef struct GED_BRIDGE_OUT_LOGBUFRESET_TAG | |
106 | { | |
107 | GED_ERROR eError; | |
108 | } GED_BRIDGE_OUT_LOGBUFRESET; | |
109 | ||
110 | /***************************************************************************** | |
111 | * BOOST GPU FREQ | |
112 | *****************************************************************************/ | |
113 | ||
114 | typedef enum | |
115 | { | |
116 | GED_BOOST_GPU_FREQ_LEVEL_MAX = 100 | |
117 | } GED_BOOST_GPU_FREQ_LEVEL; | |
118 | ||
119 | /* Bridge in structure for LOG_BUF_WRITE */ | |
120 | typedef struct GED_BRIDGE_IN_BOOSTGPUFREQ_TAG | |
121 | { | |
122 | GED_BOOST_GPU_FREQ_LEVEL eGPUFreqLevel; | |
123 | } GED_BRIDGE_IN_BOOSTGPUFREQ; | |
124 | ||
125 | /* Bridge out structure for LOG_BUF_WRITE */ | |
126 | typedef struct GED_BRIDGE_OUT_BOOSTGPUFREQ_TAG | |
127 | { | |
128 | GED_ERROR eError; | |
129 | } GED_BRIDGE_OUT_BOOSTGPUFREQ; | |
130 | ||
131 | /***************************************************************************** | |
132 | * MONITOR 3D FENCE | |
133 | *****************************************************************************/ | |
134 | ||
135 | /* Bridge in structure for MONITOR3DFENCE */ | |
136 | typedef struct GED_BRIDGE_IN_MONITOR3DFENCE_TAG | |
137 | { | |
138 | int fd; | |
139 | } GED_BRIDGE_IN_MONITOR3DFENCE; | |
140 | ||
02af6beb | 141 | /* Bridge out structure for MONITOR3DFENCE */ |
6fa3eb70 S |
142 | typedef struct GED_BRIDGE_OUT_MONITOR3DFENCE_TAG |
143 | { | |
144 | GED_ERROR eError; | |
145 | } GED_BRIDGE_OUT_MONITOR3DFENCE; | |
146 | ||
02af6beb S |
147 | /***************************************************************************** |
148 | * QUERY INFO | |
149 | *****************************************************************************/ | |
150 | ||
151 | /* Bridge in structure for QUERY INFO*/ | |
152 | typedef struct GED_BRIDGE_IN_QUERY_INFO_TAG | |
153 | { | |
154 | GED_INFO eType; | |
155 | } GED_BRIDGE_IN_QUERY_INFO; | |
156 | ||
157 | ||
158 | /* Bridge out structure for QUERY INFO*/ | |
159 | typedef struct GED_BRIDGE_OUT_QUERY_INFO_TAG | |
160 | { | |
161 | unsigned long retrieve; | |
162 | } GED_BRIDGE_OUT_QUERY_INFO; | |
163 | /***************************************************************************** | |
164 | * NOTIFY VSYNC | |
165 | *****************************************************************************/ | |
166 | ||
167 | /* Bridge in structure for VSYNCEVENT */ | |
168 | typedef struct GED_BRIDGE_IN_NOTIFY_VSYNC_TAG | |
169 | { | |
170 | GED_VSYNC_TYPE eType; | |
171 | } GED_BRIDGE_IN_NOTIFY_VSYNC; | |
172 | ||
173 | /* Bridge out structure for VSYNCEVENT */ | |
174 | typedef struct GED_BRIDGE_OUT_NOTIFY_VSYNC_TAG | |
175 | { | |
176 | GED_DVFS_UM_QUERY_PACK sQueryData; | |
177 | GED_ERROR eError; | |
178 | } GED_BRIDGE_OUT_NOTIFY_VSYNC; | |
179 | ||
180 | /***************************************************************************** | |
181 | * DVFS PROBE | |
182 | *****************************************************************************/ | |
183 | ||
184 | /* Bridge in structure for SWVSYNCEVENT */ | |
185 | typedef struct GED_BRIDGE_IN_DVFS_PROBE_TAG | |
186 | { | |
187 | int pid; | |
188 | } GED_BRIDGE_IN_DVFS_PROBE; | |
189 | ||
190 | /* Bridge out structure for RECORDSWAPBUFFERS */ | |
191 | typedef struct GED_BRIDGE_OUT_DVFS_PROBE_TAG | |
192 | { | |
193 | GED_ERROR eError; | |
194 | } GED_BRIDGE_OUT_DVFS_PROBE; | |
195 | ||
196 | /***************************************************************************** | |
197 | * DVFS UM RETURN | |
198 | *****************************************************************************/ | |
199 | ||
200 | /* Bridge in structure for DVFS_UM_RETURN */ | |
201 | typedef struct GED_BRIDGE_IN_DVFS_UM_RETURN_TAG | |
202 | { | |
203 | unsigned long gpu_tar_freq; | |
204 | bool bFallback; | |
205 | } GED_BRIDGE_IN_DVFS_UM_RETURN; | |
206 | ||
207 | /* Bridge out structure for DVFS_UM_RETURN */ | |
208 | typedef struct GED_BRIDGE_OUT_DVFS_UM_RETURN_TAG | |
209 | { | |
210 | GED_ERROR eError; | |
211 | } GED_BRIDGE_OUT_DVFS_UM_RETURN; | |
212 | ||
6fa3eb70 S |
213 | /***************************************************************************** |
214 | * BRIDGE FUNCTIONS | |
215 | *****************************************************************************/ | |
216 | ||
217 | int ged_bridge_log_buf_get( | |
218 | GED_BRIDGE_IN_LOGBUFGET *psLogBufGetIN, | |
219 | GED_BRIDGE_OUT_LOGBUFGET *psLogBufGetOUT); | |
220 | ||
221 | int ged_bridge_log_buf_write( | |
222 | GED_BRIDGE_IN_LOGBUFWRITE *psLogBufWriteIN, | |
223 | GED_BRIDGE_OUT_LOGBUFWRITE *psLogBufWriteOUT); | |
224 | ||
225 | int ged_bridge_log_buf_reset( | |
226 | GED_BRIDGE_IN_LOGBUFRESET *psLogBufResetIn, | |
227 | GED_BRIDGE_OUT_LOGBUFRESET *psLogBufResetOUT); | |
228 | ||
229 | int ged_bridge_boost_gpu_freq( | |
230 | GED_BRIDGE_IN_BOOSTGPUFREQ *psBoostGpuFreqIN, | |
231 | GED_BRIDGE_OUT_BOOSTGPUFREQ *psBoostGpuFreqOUT); | |
232 | ||
233 | int ged_bridge_monitor_3D_fence( | |
234 | GED_BRIDGE_IN_MONITOR3DFENCE *psMonitor3DFenceINT, | |
235 | GED_BRIDGE_OUT_MONITOR3DFENCE *psMonitor3DFenceOUT); | |
236 | ||
02af6beb S |
237 | int ged_bridge_query_info( |
238 | GED_BRIDGE_IN_QUERY_INFO *psQueryInfoINT, | |
239 | GED_BRIDGE_OUT_QUERY_INFO *psQueryInfoOUT); | |
240 | ||
241 | int ged_bridge_notify_vsync( | |
242 | GED_BRIDGE_IN_NOTIFY_VSYNC *psNotifyVsyncINT, | |
243 | GED_BRIDGE_OUT_NOTIFY_VSYNC *psNotifyVsyncOUT); | |
244 | ||
245 | int ged_bridge_dvfs_probe( | |
246 | GED_BRIDGE_IN_DVFS_PROBE *psDVFSProbeINT, | |
247 | GED_BRIDGE_OUT_DVFS_PROBE *psDVFSProbeOUT); | |
248 | ||
249 | int ged_bridge_dvfs_um_retrun( | |
250 | GED_BRIDGE_IN_DVFS_UM_RETURN *psDVFS_UM_returnINT, | |
251 | GED_BRIDGE_OUT_DVFS_UM_RETURN *psDVFS_UM_returnOUT); | |
252 | ||
6fa3eb70 | 253 | #endif |