Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(486)

Side by Side Diff: arch/arm/mach-tegra/nv/nvrm/dispatch/nvrm_xpc_dispatch.c

Issue 3256004: [ARM] tegra: add nvos/nvrm/nvmap drivers (Closed) Base URL: ssh://git@gitrw.chromium.org/kernel.git
Patch Set: remove ap15 headers Created 10 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1
2 #define NV_IDL_IS_DISPATCH
3
4 /*
5 * Copyright (c) 2010 NVIDIA Corporation.
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions are met:
10 *
11 * Redistributions of source code must retain the above copyright notice,
12 * this list of conditions and the following disclaimer.
13 *
14 * Redistributions in binary form must reproduce the above copyright notice,
15 * this list of conditions and the following disclaimer in the documentation
16 * and/or other materials provided with the distribution.
17 *
18 * Neither the name of the NVIDIA Corporation nor the names of its contributors
19 * may be used to endorse or promote products derived from this software
20 * without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
26 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
29 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
30 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32 * POSSIBILITY OF SUCH DAMAGE.
33 *
34 */
35
36 #include "nvcommon.h"
37 #include "nvos.h"
38 #include "nvassert.h"
39 #include "nvreftrack.h"
40 #include "nvidlcmd.h"
41 #include "nvrm_xpc.h"
42
43 #define OFFSET( s, e ) (NvU32)(void *)(&(((s*)0)->e))
44
45
46 typedef struct NvRmXpcModuleRelease_in_t
47 {
48 NvU32 package_;
49 NvU32 function_;
50 NvRmModuleID modId;
51 } NV_ALIGN(4) NvRmXpcModuleRelease_in;
52
53 typedef struct NvRmXpcModuleRelease_inout_t
54 {
55 NvU32 dummy_;
56 } NV_ALIGN(4) NvRmXpcModuleRelease_inout;
57
58 typedef struct NvRmXpcModuleRelease_out_t
59 {
60 NvU32 dummy_;
61 } NV_ALIGN(4) NvRmXpcModuleRelease_out;
62
63 typedef struct NvRmXpcModuleRelease_params_t
64 {
65 NvRmXpcModuleRelease_in in;
66 NvRmXpcModuleRelease_inout inout;
67 NvRmXpcModuleRelease_out out;
68 } NvRmXpcModuleRelease_params;
69
70 typedef struct NvRmXpcModuleAcquire_in_t
71 {
72 NvU32 package_;
73 NvU32 function_;
74 NvRmModuleID modId;
75 } NV_ALIGN(4) NvRmXpcModuleAcquire_in;
76
77 typedef struct NvRmXpcModuleAcquire_inout_t
78 {
79 NvU32 dummy_;
80 } NV_ALIGN(4) NvRmXpcModuleAcquire_inout;
81
82 typedef struct NvRmXpcModuleAcquire_out_t
83 {
84 NvU32 dummy_;
85 } NV_ALIGN(4) NvRmXpcModuleAcquire_out;
86
87 typedef struct NvRmXpcModuleAcquire_params_t
88 {
89 NvRmXpcModuleAcquire_in in;
90 NvRmXpcModuleAcquire_inout inout;
91 NvRmXpcModuleAcquire_out out;
92 } NvRmXpcModuleAcquire_params;
93
94 typedef struct NvRmXpcInitArbSemaSystem_in_t
95 {
96 NvU32 package_;
97 NvU32 function_;
98 NvRmDeviceHandle hDevice;
99 } NV_ALIGN(4) NvRmXpcInitArbSemaSystem_in;
100
101 typedef struct NvRmXpcInitArbSemaSystem_inout_t
102 {
103 NvU32 dummy_;
104 } NV_ALIGN(4) NvRmXpcInitArbSemaSystem_inout;
105
106 typedef struct NvRmXpcInitArbSemaSystem_out_t
107 {
108 NvError ret_;
109 } NV_ALIGN(4) NvRmXpcInitArbSemaSystem_out;
110
111 typedef struct NvRmXpcInitArbSemaSystem_params_t
112 {
113 NvRmXpcInitArbSemaSystem_in in;
114 NvRmXpcInitArbSemaSystem_inout inout;
115 NvRmXpcInitArbSemaSystem_out out;
116 } NvRmXpcInitArbSemaSystem_params;
117
118 typedef struct NvRmPrivXpcGetMessage_in_t
119 {
120 NvU32 package_;
121 NvU32 function_;
122 NvRmPrivXpcMessageHandle hXpcMessage;
123 } NV_ALIGN(4) NvRmPrivXpcGetMessage_in;
124
125 typedef struct NvRmPrivXpcGetMessage_inout_t
126 {
127 NvU32 dummy_;
128 } NV_ALIGN(4) NvRmPrivXpcGetMessage_inout;
129
130 typedef struct NvRmPrivXpcGetMessage_out_t
131 {
132 NvU32 ret_;
133 } NV_ALIGN(4) NvRmPrivXpcGetMessage_out;
134
135 typedef struct NvRmPrivXpcGetMessage_params_t
136 {
137 NvRmPrivXpcGetMessage_in in;
138 NvRmPrivXpcGetMessage_inout inout;
139 NvRmPrivXpcGetMessage_out out;
140 } NvRmPrivXpcGetMessage_params;
141
142 typedef struct NvRmPrivXpcSendMessage_in_t
143 {
144 NvU32 package_;
145 NvU32 function_;
146 NvRmPrivXpcMessageHandle hXpcMessage;
147 NvU32 data;
148 } NV_ALIGN(4) NvRmPrivXpcSendMessage_in;
149
150 typedef struct NvRmPrivXpcSendMessage_inout_t
151 {
152 NvU32 dummy_;
153 } NV_ALIGN(4) NvRmPrivXpcSendMessage_inout;
154
155 typedef struct NvRmPrivXpcSendMessage_out_t
156 {
157 NvError ret_;
158 } NV_ALIGN(4) NvRmPrivXpcSendMessage_out;
159
160 typedef struct NvRmPrivXpcSendMessage_params_t
161 {
162 NvRmPrivXpcSendMessage_in in;
163 NvRmPrivXpcSendMessage_inout inout;
164 NvRmPrivXpcSendMessage_out out;
165 } NvRmPrivXpcSendMessage_params;
166
167 typedef struct NvRmPrivXpcDestroy_in_t
168 {
169 NvU32 package_;
170 NvU32 function_;
171 NvRmPrivXpcMessageHandle hXpcMessage;
172 } NV_ALIGN(4) NvRmPrivXpcDestroy_in;
173
174 typedef struct NvRmPrivXpcDestroy_inout_t
175 {
176 NvU32 dummy_;
177 } NV_ALIGN(4) NvRmPrivXpcDestroy_inout;
178
179 typedef struct NvRmPrivXpcDestroy_out_t
180 {
181 NvU32 dummy_;
182 } NV_ALIGN(4) NvRmPrivXpcDestroy_out;
183
184 typedef struct NvRmPrivXpcDestroy_params_t
185 {
186 NvRmPrivXpcDestroy_in in;
187 NvRmPrivXpcDestroy_inout inout;
188 NvRmPrivXpcDestroy_out out;
189 } NvRmPrivXpcDestroy_params;
190
191 typedef struct NvRmPrivXpcCreate_in_t
192 {
193 NvU32 package_;
194 NvU32 function_;
195 NvRmDeviceHandle hDevice;
196 } NV_ALIGN(4) NvRmPrivXpcCreate_in;
197
198 typedef struct NvRmPrivXpcCreate_inout_t
199 {
200 NvU32 dummy_;
201 } NV_ALIGN(4) NvRmPrivXpcCreate_inout;
202
203 typedef struct NvRmPrivXpcCreate_out_t
204 {
205 NvError ret_;
206 NvRmPrivXpcMessageHandle phXpcMessage;
207 } NV_ALIGN(4) NvRmPrivXpcCreate_out;
208
209 typedef struct NvRmPrivXpcCreate_params_t
210 {
211 NvRmPrivXpcCreate_in in;
212 NvRmPrivXpcCreate_inout inout;
213 NvRmPrivXpcCreate_out out;
214 } NvRmPrivXpcCreate_params;
215
216 static NvError NvRmXpcModuleRelease_dispatch_( void *InBuffer, NvU32 InSize, voi d *OutBuffer, NvU32 OutSize, NvDispatchCtx* Ctx )
217 {
218 NvError err_ = NvSuccess;
219 NvRmXpcModuleRelease_in *p_in;
220
221 p_in = (NvRmXpcModuleRelease_in *)InBuffer;
222
223
224 NvRmXpcModuleRelease( p_in->modId );
225
226 return err_;
227 }
228
229 static NvError NvRmXpcModuleAcquire_dispatch_( void *InBuffer, NvU32 InSize, voi d *OutBuffer, NvU32 OutSize, NvDispatchCtx* Ctx )
230 {
231 NvError err_ = NvSuccess;
232 NvRmXpcModuleAcquire_in *p_in;
233
234 p_in = (NvRmXpcModuleAcquire_in *)InBuffer;
235
236
237 NvRmXpcModuleAcquire( p_in->modId );
238
239 return err_;
240 }
241
242 static NvError NvRmXpcInitArbSemaSystem_dispatch_( void *InBuffer, NvU32 InSize, void *OutBuffer, NvU32 OutSize, NvDispatchCtx* Ctx )
243 {
244 NvError err_ = NvSuccess;
245 NvRmXpcInitArbSemaSystem_in *p_in;
246 NvRmXpcInitArbSemaSystem_out *p_out;
247
248 p_in = (NvRmXpcInitArbSemaSystem_in *)InBuffer;
249 p_out = (NvRmXpcInitArbSemaSystem_out *)((NvU8 *)OutBuffer + OFFSET(NvRmXpcI nitArbSemaSystem_params, out) - OFFSET(NvRmXpcInitArbSemaSystem_params, inout));
250
251
252 p_out->ret_ = NvRmXpcInitArbSemaSystem( p_in->hDevice );
253
254 return err_;
255 }
256
257 static NvError NvRmPrivXpcGetMessage_dispatch_( void *InBuffer, NvU32 InSize, vo id *OutBuffer, NvU32 OutSize, NvDispatchCtx* Ctx )
258 {
259 NvError err_ = NvSuccess;
260 NvRmPrivXpcGetMessage_in *p_in;
261 NvRmPrivXpcGetMessage_out *p_out;
262
263 p_in = (NvRmPrivXpcGetMessage_in *)InBuffer;
264 p_out = (NvRmPrivXpcGetMessage_out *)((NvU8 *)OutBuffer + OFFSET(NvRmPrivXpc GetMessage_params, out) - OFFSET(NvRmPrivXpcGetMessage_params, inout));
265
266
267 p_out->ret_ = NvRmPrivXpcGetMessage( p_in->hXpcMessage );
268
269 return err_;
270 }
271
272 static NvError NvRmPrivXpcSendMessage_dispatch_( void *InBuffer, NvU32 InSize, v oid *OutBuffer, NvU32 OutSize, NvDispatchCtx* Ctx )
273 {
274 NvError err_ = NvSuccess;
275 NvRmPrivXpcSendMessage_in *p_in;
276 NvRmPrivXpcSendMessage_out *p_out;
277
278 p_in = (NvRmPrivXpcSendMessage_in *)InBuffer;
279 p_out = (NvRmPrivXpcSendMessage_out *)((NvU8 *)OutBuffer + OFFSET(NvRmPrivXp cSendMessage_params, out) - OFFSET(NvRmPrivXpcSendMessage_params, inout));
280
281
282 p_out->ret_ = NvRmPrivXpcSendMessage( p_in->hXpcMessage, p_in->data );
283
284 return err_;
285 }
286
287 static NvError NvRmPrivXpcDestroy_dispatch_( void *InBuffer, NvU32 InSize, void *OutBuffer, NvU32 OutSize, NvDispatchCtx* Ctx )
288 {
289 NvError err_ = NvSuccess;
290 NvRmPrivXpcDestroy_in *p_in;
291
292 p_in = (NvRmPrivXpcDestroy_in *)InBuffer;
293
294
295 NvRmPrivXpcDestroy( p_in->hXpcMessage );
296
297 return err_;
298 }
299
300 static NvError NvRmPrivXpcCreate_dispatch_( void *InBuffer, NvU32 InSize, void * OutBuffer, NvU32 OutSize, NvDispatchCtx* Ctx )
301 {
302 NvError err_ = NvSuccess;
303 NvRmPrivXpcCreate_in *p_in;
304 NvRmPrivXpcCreate_out *p_out;
305
306 p_in = (NvRmPrivXpcCreate_in *)InBuffer;
307 p_out = (NvRmPrivXpcCreate_out *)((NvU8 *)OutBuffer + OFFSET(NvRmPrivXpcCrea te_params, out) - OFFSET(NvRmPrivXpcCreate_params, inout));
308
309
310 p_out->ret_ = NvRmPrivXpcCreate( p_in->hDevice, &p_out->phXpcMessage );
311
312 return err_;
313 }
314
315 NvError nvrm_xpc_Dispatch( NvU32 function, void *InBuffer, NvU32 InSize, void *O utBuffer, NvU32 OutSize, NvDispatchCtx* Ctx );
316 NvError nvrm_xpc_Dispatch( NvU32 function, void *InBuffer, NvU32 InSize, void *O utBuffer, NvU32 OutSize, NvDispatchCtx* Ctx )
317 {
318 NvError err_ = NvSuccess;
319
320 switch( function ) {
321 case 6:
322 err_ = NvRmXpcModuleRelease_dispatch_( InBuffer, InSize, OutBuffer, OutS ize, Ctx );
323 break;
324 case 5:
325 err_ = NvRmXpcModuleAcquire_dispatch_( InBuffer, InSize, OutBuffer, OutS ize, Ctx );
326 break;
327 case 4:
328 err_ = NvRmXpcInitArbSemaSystem_dispatch_( InBuffer, InSize, OutBuffer, OutSize, Ctx );
329 break;
330 case 3:
331 err_ = NvRmPrivXpcGetMessage_dispatch_( InBuffer, InSize, OutBuffer, Out Size, Ctx );
332 break;
333 case 2:
334 err_ = NvRmPrivXpcSendMessage_dispatch_( InBuffer, InSize, OutBuffer, Ou tSize, Ctx );
335 break;
336 case 1:
337 err_ = NvRmPrivXpcDestroy_dispatch_( InBuffer, InSize, OutBuffer, OutSiz e, Ctx );
338 break;
339 case 0:
340 err_ = NvRmPrivXpcCreate_dispatch_( InBuffer, InSize, OutBuffer, OutSize , Ctx );
341 break;
342 default:
343 err_ = NvError_BadParameter;
344 break;
345 }
346
347 return err_;
348 }
OLDNEW
« no previous file with comments | « arch/arm/mach-tegra/nv/nvrm/dispatch/nvrm_transport_dispatch.c ('k') | arch/arm/mach-tegra/nv/nvrm_user.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698