OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 // WARNING this file was generated by generate_nacl_bindings.py | 5 // WARNING this file was generated by generate_nacl_bindings.py |
6 // Do not edit by hand. | 6 // Do not edit by hand. |
7 | 7 |
8 #include "mojo/nacl/sfi/nacl_bindings/mojo_syscall.h" | 8 #include "mojo/nacl/sfi/nacl_bindings/mojo_syscall.h" |
9 | 9 |
10 #include <stdio.h> | 10 #include <stdio.h> |
(...skipping 30 matching lines...) Expand all Loading... | |
41 uint32_t volatile* params = static_cast<uint32_t volatile*>(msg->iov[0].base); | 41 uint32_t volatile* params = static_cast<uint32_t volatile*>(msg->iov[0].base); |
42 size_t num_params = msg->iov[0].length / sizeof(*params); | 42 size_t num_params = msg->iov[0].length / sizeof(*params); |
43 | 43 |
44 if (num_params < 1) { | 44 if (num_params < 1) { |
45 return -1; | 45 return -1; |
46 } | 46 } |
47 | 47 |
48 uint32_t msg_type = params[0]; | 48 uint32_t msg_type = params[0]; |
49 switch (msg_type) { | 49 switch (msg_type) { |
50 case 0: { | 50 case 0: { |
51 if (num_params != 3) { | |
viettrungluu
2016/03/09 00:51:04
This enormous diff is nearly entirely due to reord
| |
52 return -1; | |
53 } | |
54 MojoHandle volatile* handle_ptr; | |
55 MojoHandle handle_value; | |
56 MojoResult volatile* result_ptr; | |
57 MojoResult result_value; | |
58 { | |
59 ScopedCopyLock copy_lock(nap); | |
60 if (!ConvertScalarInOut(nap, params[1], false, &handle_value, | |
61 &handle_ptr)) { | |
62 return -1; | |
63 } | |
64 if (!ConvertScalarOutput(nap, params[2], false, &result_ptr)) { | |
65 return -1; | |
66 } | |
67 } | |
68 | |
69 result_value = _MojoGetInitialHandle(&handle_value); | |
70 | |
71 { | |
72 ScopedCopyLock copy_lock(nap); | |
73 *handle_ptr = handle_value; | |
74 *result_ptr = result_value; | |
75 } | |
76 | |
77 return 0; | |
78 } | |
79 case 1: { | |
80 if (num_params != 2) { | |
81 return -1; | |
82 } | |
83 MojoTimeTicks volatile* result_ptr; | |
84 MojoTimeTicks result_value; | |
85 { | |
86 ScopedCopyLock copy_lock(nap); | |
87 if (!ConvertScalarOutput(nap, params[1], false, &result_ptr)) { | |
88 return -1; | |
89 } | |
90 } | |
91 | |
92 result_value = MojoSystemImplGetTimeTicksNow(g_mojo_system); | |
93 | |
94 { | |
95 ScopedCopyLock copy_lock(nap); | |
96 *result_ptr = result_value; | |
97 } | |
98 | |
99 return 0; | |
100 } | |
101 case 2: { | |
102 if (num_params != 3) { | |
103 return -1; | |
104 } | |
105 MojoHandle handle_value; | |
106 MojoResult volatile* result_ptr; | |
107 MojoResult result_value; | |
108 { | |
109 ScopedCopyLock copy_lock(nap); | |
110 if (!ConvertScalarInput(nap, params[1], &handle_value)) { | |
111 return -1; | |
112 } | |
113 if (!ConvertScalarOutput(nap, params[2], false, &result_ptr)) { | |
114 return -1; | |
115 } | |
116 } | |
117 | |
118 result_value = MojoSystemImplClose(g_mojo_system, handle_value); | |
119 | |
120 { | |
121 ScopedCopyLock copy_lock(nap); | |
122 *result_ptr = result_value; | |
123 } | |
124 | |
125 return 0; | |
126 } | |
127 case 3: { | |
128 if (num_params != 6) { | |
129 return -1; | |
130 } | |
131 MojoHandle handle_value; | |
132 MojoHandleSignals signals_value; | |
133 MojoDeadline deadline_value; | |
134 MojoHandleSignalsState volatile* signals_state_ptr; | |
135 MojoHandleSignalsState signals_state_value; | |
136 MojoResult volatile* result_ptr; | |
137 MojoResult result_value; | |
138 { | |
139 ScopedCopyLock copy_lock(nap); | |
140 if (!ConvertScalarInput(nap, params[1], &handle_value)) { | |
141 return -1; | |
142 } | |
143 if (!ConvertScalarInput(nap, params[2], &signals_value)) { | |
144 return -1; | |
145 } | |
146 if (!ConvertScalarInput(nap, params[3], &deadline_value)) { | |
147 return -1; | |
148 } | |
149 if (!ConvertScalarOutput(nap, params[4], true, &signals_state_ptr)) { | |
150 return -1; | |
151 } | |
152 if (!ConvertScalarOutput(nap, params[5], false, &result_ptr)) { | |
153 return -1; | |
154 } | |
155 } | |
156 | |
157 result_value = MojoSystemImplWait( | |
158 g_mojo_system, handle_value, signals_value, deadline_value, | |
159 signals_state_ptr ? &signals_state_value : nullptr); | |
160 | |
161 { | |
162 ScopedCopyLock copy_lock(nap); | |
163 if (signals_state_ptr) { | |
164 memcpy_volatile_out(signals_state_ptr, &signals_state_value, | |
165 sizeof(MojoHandleSignalsState)); | |
166 } | |
167 *result_ptr = result_value; | |
168 } | |
169 | |
170 return 0; | |
171 } | |
172 case 4: { | |
173 if (num_params != 8) { | |
174 return -1; | |
175 } | |
176 const MojoHandle* handles; | |
177 const MojoHandleSignals* signals; | |
178 uint32_t num_handles_value; | |
179 MojoDeadline deadline_value; | |
180 uint32_t volatile* result_index_ptr; | |
181 uint32_t result_index_value; | |
182 struct MojoHandleSignalsState* signals_states; | |
183 MojoResult volatile* result_ptr; | |
184 MojoResult result_value; | |
185 { | |
186 ScopedCopyLock copy_lock(nap); | |
187 if (!ConvertScalarInput(nap, params[3], &num_handles_value)) { | |
188 return -1; | |
189 } | |
190 if (!ConvertScalarInput(nap, params[4], &deadline_value)) { | |
191 return -1; | |
192 } | |
193 if (!ConvertScalarInOut(nap, params[5], true, &result_index_value, | |
194 &result_index_ptr)) { | |
195 return -1; | |
196 } | |
197 if (!ConvertScalarOutput(nap, params[7], false, &result_ptr)) { | |
198 return -1; | |
199 } | |
200 if (!ConvertArray(nap, params[1], num_handles_value, sizeof(*handles), | |
201 false, &handles)) { | |
202 return -1; | |
203 } | |
204 if (!ConvertArray(nap, params[2], num_handles_value, sizeof(*signals), | |
205 false, &signals)) { | |
206 return -1; | |
207 } | |
208 if (!ConvertArray(nap, params[6], num_handles_value, | |
209 sizeof(*signals_states), true, &signals_states)) { | |
210 return -1; | |
211 } | |
212 } | |
213 | |
214 result_value = MojoSystemImplWaitMany( | |
215 g_mojo_system, handles, signals, num_handles_value, deadline_value, | |
216 result_index_ptr ? &result_index_value : nullptr, signals_states); | |
217 | |
218 { | |
219 ScopedCopyLock copy_lock(nap); | |
220 if (result_index_ptr) { | |
221 *result_index_ptr = result_index_value; | |
222 } | |
223 *result_ptr = result_value; | |
224 } | |
225 | |
226 return 0; | |
227 } | |
228 case 5: { | |
51 if (num_params != 5) { | 229 if (num_params != 5) { |
52 return -1; | 230 return -1; |
53 } | 231 } |
54 const struct MojoCreateSharedBufferOptions* options; | 232 const struct MojoCreateMessagePipeOptions* options; |
55 uint64_t num_bytes_value; | 233 MojoHandle volatile* message_pipe_handle0_ptr; |
56 MojoHandle volatile* shared_buffer_handle_ptr; | 234 MojoHandle message_pipe_handle0_value; |
57 MojoHandle shared_buffer_handle_value; | 235 MojoHandle volatile* message_pipe_handle1_ptr; |
236 MojoHandle message_pipe_handle1_value; | |
58 MojoResult volatile* result_ptr; | 237 MojoResult volatile* result_ptr; |
59 MojoResult result_value; | 238 MojoResult result_value; |
60 { | 239 { |
61 ScopedCopyLock copy_lock(nap); | 240 ScopedCopyLock copy_lock(nap); |
62 if (!ConvertExtensibleStructInput(nap, params[1], true, &options)) { | 241 if (!ConvertExtensibleStructInput(nap, params[1], true, &options)) { |
63 return -1; | 242 return -1; |
64 } | 243 } |
65 if (!ConvertScalarInput(nap, params[2], &num_bytes_value)) { | 244 if (!ConvertScalarInOut(nap, params[2], false, |
245 &message_pipe_handle0_value, | |
246 &message_pipe_handle0_ptr)) { | |
66 return -1; | 247 return -1; |
67 } | 248 } |
68 if (!ConvertScalarInOut(nap, params[3], false, | 249 if (!ConvertScalarInOut(nap, params[3], false, |
69 &shared_buffer_handle_value, | 250 &message_pipe_handle1_value, |
70 &shared_buffer_handle_ptr)) { | 251 &message_pipe_handle1_ptr)) { |
71 return -1; | 252 return -1; |
72 } | 253 } |
73 if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) { | 254 if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) { |
74 return -1; | 255 return -1; |
75 } | 256 } |
76 } | 257 } |
77 | 258 |
78 result_value = MojoSystemImplCreateSharedBuffer( | 259 result_value = MojoSystemImplCreateMessagePipe( |
79 g_mojo_system, options, num_bytes_value, &shared_buffer_handle_value); | 260 g_mojo_system, options, &message_pipe_handle0_value, |
80 | 261 &message_pipe_handle1_value); |
81 { | 262 |
82 ScopedCopyLock copy_lock(nap); | 263 { |
83 *shared_buffer_handle_ptr = shared_buffer_handle_value; | 264 ScopedCopyLock copy_lock(nap); |
84 *result_ptr = result_value; | 265 *message_pipe_handle0_ptr = message_pipe_handle0_value; |
85 } | 266 *message_pipe_handle1_ptr = message_pipe_handle1_value; |
86 | 267 *result_ptr = result_value; |
87 return 0; | 268 } |
88 } | 269 |
89 case 1: { | 270 return 0; |
90 if (num_params != 5) { | 271 } |
91 return -1; | 272 case 6: { |
92 } | 273 if (num_params != 8) { |
93 MojoHandle buffer_handle_value; | 274 return -1; |
94 const struct MojoDuplicateBufferHandleOptions* options; | 275 } |
95 MojoHandle volatile* new_buffer_handle_ptr; | 276 MojoHandle message_pipe_handle_value; |
96 MojoHandle new_buffer_handle_value; | 277 const void* bytes; |
97 MojoResult volatile* result_ptr; | |
98 MojoResult result_value; | |
99 { | |
100 ScopedCopyLock copy_lock(nap); | |
101 if (!ConvertScalarInput(nap, params[1], &buffer_handle_value)) { | |
102 return -1; | |
103 } | |
104 if (!ConvertExtensibleStructInput(nap, params[2], true, &options)) { | |
105 return -1; | |
106 } | |
107 if (!ConvertScalarInOut(nap, params[3], false, &new_buffer_handle_value, | |
108 &new_buffer_handle_ptr)) { | |
109 return -1; | |
110 } | |
111 if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) { | |
112 return -1; | |
113 } | |
114 } | |
115 | |
116 result_value = MojoSystemImplDuplicateBufferHandle( | |
117 g_mojo_system, buffer_handle_value, options, | |
118 &new_buffer_handle_value); | |
119 | |
120 { | |
121 ScopedCopyLock copy_lock(nap); | |
122 *new_buffer_handle_ptr = new_buffer_handle_value; | |
123 *result_ptr = result_value; | |
124 } | |
125 | |
126 return 0; | |
127 } | |
128 case 2: | |
129 fprintf(stderr, "MojoMapBuffer not implemented\n"); | |
130 return -1; | |
131 case 3: | |
132 fprintf(stderr, "MojoUnmapBuffer not implemented\n"); | |
133 return -1; | |
134 case 4: { | |
135 if (num_params != 5) { | |
136 return -1; | |
137 } | |
138 const struct MojoCreateDataPipeOptions* options; | |
139 MojoHandle volatile* data_pipe_producer_handle_ptr; | |
140 MojoHandle data_pipe_producer_handle_value; | |
141 MojoHandle volatile* data_pipe_consumer_handle_ptr; | |
142 MojoHandle data_pipe_consumer_handle_value; | |
143 MojoResult volatile* result_ptr; | |
144 MojoResult result_value; | |
145 { | |
146 ScopedCopyLock copy_lock(nap); | |
147 if (!ConvertExtensibleStructInput(nap, params[1], true, &options)) { | |
148 return -1; | |
149 } | |
150 if (!ConvertScalarInOut(nap, params[2], false, | |
151 &data_pipe_producer_handle_value, | |
152 &data_pipe_producer_handle_ptr)) { | |
153 return -1; | |
154 } | |
155 if (!ConvertScalarInOut(nap, params[3], false, | |
156 &data_pipe_consumer_handle_value, | |
157 &data_pipe_consumer_handle_ptr)) { | |
158 return -1; | |
159 } | |
160 if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) { | |
161 return -1; | |
162 } | |
163 } | |
164 | |
165 result_value = MojoSystemImplCreateDataPipe( | |
166 g_mojo_system, options, &data_pipe_producer_handle_value, | |
167 &data_pipe_consumer_handle_value); | |
168 | |
169 { | |
170 ScopedCopyLock copy_lock(nap); | |
171 *data_pipe_producer_handle_ptr = data_pipe_producer_handle_value; | |
172 *data_pipe_consumer_handle_ptr = data_pipe_consumer_handle_value; | |
173 *result_ptr = result_value; | |
174 } | |
175 | |
176 return 0; | |
177 } | |
178 case 5: { | |
179 if (num_params != 6) { | |
180 return -1; | |
181 } | |
182 MojoHandle data_pipe_producer_handle_value; | |
183 const void* elements; | |
184 uint32_t volatile* num_bytes_ptr; | |
185 uint32_t num_bytes_value; | 278 uint32_t num_bytes_value; |
186 MojoWriteDataFlags flags_value; | 279 const MojoHandle* handles; |
187 MojoResult volatile* result_ptr; | 280 uint32_t num_handles_value; |
188 MojoResult result_value; | 281 MojoWriteMessageFlags flags_value; |
189 { | 282 MojoResult volatile* result_ptr; |
190 ScopedCopyLock copy_lock(nap); | 283 MojoResult result_value; |
191 if (!ConvertScalarInput(nap, params[1], | 284 { |
192 &data_pipe_producer_handle_value)) { | 285 ScopedCopyLock copy_lock(nap); |
193 return -1; | 286 if (!ConvertScalarInput(nap, params[1], &message_pipe_handle_value)) { |
194 } | 287 return -1; |
195 if (!ConvertScalarInOut(nap, params[3], false, &num_bytes_value, | 288 } |
196 &num_bytes_ptr)) { | 289 if (!ConvertScalarInput(nap, params[3], &num_bytes_value)) { |
197 return -1; | 290 return -1; |
198 } | 291 } |
199 if (!ConvertScalarInput(nap, params[4], &flags_value)) { | 292 if (!ConvertScalarInput(nap, params[5], &num_handles_value)) { |
200 return -1; | 293 return -1; |
201 } | 294 } |
202 if (!ConvertScalarOutput(nap, params[5], false, &result_ptr)) { | 295 if (!ConvertScalarInput(nap, params[6], &flags_value)) { |
203 return -1; | 296 return -1; |
204 } | 297 } |
205 if (!ConvertArray(nap, params[2], num_bytes_value, 1, false, | 298 if (!ConvertScalarOutput(nap, params[7], false, &result_ptr)) { |
206 &elements)) { | 299 return -1; |
207 return -1; | 300 } |
208 } | 301 if (!ConvertArray(nap, params[2], num_bytes_value, 1, true, &bytes)) { |
209 } | 302 return -1; |
210 | 303 } |
211 result_value = MojoSystemImplWriteData( | 304 if (!ConvertArray(nap, params[4], num_handles_value, sizeof(*handles), |
212 g_mojo_system, data_pipe_producer_handle_value, elements, | 305 true, &handles)) { |
213 &num_bytes_value, flags_value); | 306 return -1; |
214 | 307 } |
215 { | 308 } |
216 ScopedCopyLock copy_lock(nap); | 309 |
217 *num_bytes_ptr = num_bytes_value; | 310 result_value = MojoSystemImplWriteMessage( |
218 *result_ptr = result_value; | 311 g_mojo_system, message_pipe_handle_value, bytes, num_bytes_value, |
219 } | 312 handles, num_handles_value, flags_value); |
220 | 313 |
221 return 0; | 314 { |
222 } | 315 ScopedCopyLock copy_lock(nap); |
223 case 6: | |
224 fprintf(stderr, "MojoBeginWriteData not implemented\n"); | |
225 return -1; | |
226 case 7: { | |
227 if (num_params != 4) { | |
228 return -1; | |
229 } | |
230 MojoHandle data_pipe_producer_handle_value; | |
231 uint32_t num_bytes_written_value; | |
232 MojoResult volatile* result_ptr; | |
233 MojoResult result_value; | |
234 { | |
235 ScopedCopyLock copy_lock(nap); | |
236 if (!ConvertScalarInput(nap, params[1], | |
237 &data_pipe_producer_handle_value)) { | |
238 return -1; | |
239 } | |
240 if (!ConvertScalarInput(nap, params[2], &num_bytes_written_value)) { | |
241 return -1; | |
242 } | |
243 if (!ConvertScalarOutput(nap, params[3], false, &result_ptr)) { | |
244 return -1; | |
245 } | |
246 } | |
247 | |
248 result_value = MojoSystemImplEndWriteData(g_mojo_system, | |
249 data_pipe_producer_handle_value, | |
250 num_bytes_written_value); | |
251 | |
252 { | |
253 ScopedCopyLock copy_lock(nap); | |
254 *result_ptr = result_value; | 316 *result_ptr = result_value; |
255 } | 317 } |
256 | 318 |
257 return 0; | 319 return 0; |
258 } | 320 } |
321 case 7: { | |
322 if (num_params != 8) { | |
323 return -1; | |
324 } | |
325 MojoHandle message_pipe_handle_value; | |
326 void* bytes; | |
327 uint32_t volatile* num_bytes_ptr; | |
328 uint32_t num_bytes_value; | |
329 MojoHandle* handles; | |
330 uint32_t volatile* num_handles_ptr; | |
331 uint32_t num_handles_value; | |
332 MojoReadMessageFlags flags_value; | |
333 MojoResult volatile* result_ptr; | |
334 MojoResult result_value; | |
335 { | |
336 ScopedCopyLock copy_lock(nap); | |
337 if (!ConvertScalarInput(nap, params[1], &message_pipe_handle_value)) { | |
338 return -1; | |
339 } | |
340 if (!ConvertScalarInOut(nap, params[3], true, &num_bytes_value, | |
341 &num_bytes_ptr)) { | |
342 return -1; | |
343 } | |
344 if (!ConvertScalarInOut(nap, params[5], true, &num_handles_value, | |
345 &num_handles_ptr)) { | |
346 return -1; | |
347 } | |
348 if (!ConvertScalarInput(nap, params[6], &flags_value)) { | |
349 return -1; | |
350 } | |
351 if (!ConvertScalarOutput(nap, params[7], false, &result_ptr)) { | |
352 return -1; | |
353 } | |
354 if (!ConvertArray(nap, params[2], num_bytes_value, 1, true, &bytes)) { | |
355 return -1; | |
356 } | |
357 if (!ConvertArray(nap, params[4], num_handles_value, sizeof(*handles), | |
358 true, &handles)) { | |
359 return -1; | |
360 } | |
361 } | |
362 | |
363 result_value = MojoSystemImplReadMessage( | |
364 g_mojo_system, message_pipe_handle_value, bytes, | |
365 num_bytes_ptr ? &num_bytes_value : nullptr, handles, | |
366 num_handles_ptr ? &num_handles_value : nullptr, flags_value); | |
367 | |
368 { | |
369 ScopedCopyLock copy_lock(nap); | |
370 if (num_bytes_ptr) { | |
371 *num_bytes_ptr = num_bytes_value; | |
372 } | |
373 if (num_handles_ptr) { | |
374 *num_handles_ptr = num_handles_value; | |
375 } | |
376 *result_ptr = result_value; | |
377 } | |
378 | |
379 return 0; | |
380 } | |
259 case 8: { | 381 case 8: { |
382 if (num_params != 5) { | |
383 return -1; | |
384 } | |
385 const struct MojoCreateDataPipeOptions* options; | |
386 MojoHandle volatile* data_pipe_producer_handle_ptr; | |
387 MojoHandle data_pipe_producer_handle_value; | |
388 MojoHandle volatile* data_pipe_consumer_handle_ptr; | |
389 MojoHandle data_pipe_consumer_handle_value; | |
390 MojoResult volatile* result_ptr; | |
391 MojoResult result_value; | |
392 { | |
393 ScopedCopyLock copy_lock(nap); | |
394 if (!ConvertExtensibleStructInput(nap, params[1], true, &options)) { | |
395 return -1; | |
396 } | |
397 if (!ConvertScalarInOut(nap, params[2], false, | |
398 &data_pipe_producer_handle_value, | |
399 &data_pipe_producer_handle_ptr)) { | |
400 return -1; | |
401 } | |
402 if (!ConvertScalarInOut(nap, params[3], false, | |
403 &data_pipe_consumer_handle_value, | |
404 &data_pipe_consumer_handle_ptr)) { | |
405 return -1; | |
406 } | |
407 if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) { | |
408 return -1; | |
409 } | |
410 } | |
411 | |
412 result_value = MojoSystemImplCreateDataPipe( | |
413 g_mojo_system, options, &data_pipe_producer_handle_value, | |
414 &data_pipe_consumer_handle_value); | |
415 | |
416 { | |
417 ScopedCopyLock copy_lock(nap); | |
418 *data_pipe_producer_handle_ptr = data_pipe_producer_handle_value; | |
419 *data_pipe_consumer_handle_ptr = data_pipe_consumer_handle_value; | |
420 *result_ptr = result_value; | |
421 } | |
422 | |
423 return 0; | |
424 } | |
425 case 9: { | |
260 if (num_params != 6) { | 426 if (num_params != 6) { |
261 return -1; | 427 return -1; |
262 } | 428 } |
263 MojoHandle data_pipe_consumer_handle_value; | 429 MojoHandle data_pipe_producer_handle_value; |
264 void* elements; | 430 const void* elements; |
265 uint32_t volatile* num_bytes_ptr; | 431 uint32_t volatile* num_bytes_ptr; |
266 uint32_t num_bytes_value; | 432 uint32_t num_bytes_value; |
267 MojoReadDataFlags flags_value; | 433 MojoWriteDataFlags flags_value; |
268 MojoResult volatile* result_ptr; | 434 MojoResult volatile* result_ptr; |
269 MojoResult result_value; | 435 MojoResult result_value; |
270 { | 436 { |
271 ScopedCopyLock copy_lock(nap); | 437 ScopedCopyLock copy_lock(nap); |
272 if (!ConvertScalarInput(nap, params[1], | 438 if (!ConvertScalarInput(nap, params[1], |
273 &data_pipe_consumer_handle_value)) { | 439 &data_pipe_producer_handle_value)) { |
274 return -1; | 440 return -1; |
275 } | 441 } |
276 if (!ConvertScalarInOut(nap, params[3], false, &num_bytes_value, | 442 if (!ConvertScalarInOut(nap, params[3], false, &num_bytes_value, |
277 &num_bytes_ptr)) { | 443 &num_bytes_ptr)) { |
278 return -1; | 444 return -1; |
279 } | 445 } |
280 if (!ConvertScalarInput(nap, params[4], &flags_value)) { | 446 if (!ConvertScalarInput(nap, params[4], &flags_value)) { |
281 return -1; | 447 return -1; |
282 } | 448 } |
283 if (!ConvertScalarOutput(nap, params[5], false, &result_ptr)) { | 449 if (!ConvertScalarOutput(nap, params[5], false, &result_ptr)) { |
284 return -1; | 450 return -1; |
285 } | 451 } |
286 if (!ConvertArray(nap, params[2], num_bytes_value, 1, false, | 452 if (!ConvertArray(nap, params[2], num_bytes_value, 1, false, |
287 &elements)) { | 453 &elements)) { |
288 return -1; | 454 return -1; |
289 } | 455 } |
290 } | 456 } |
291 | 457 |
292 result_value = | 458 result_value = MojoSystemImplWriteData( |
293 MojoSystemImplReadData(g_mojo_system, data_pipe_consumer_handle_value, | 459 g_mojo_system, data_pipe_producer_handle_value, elements, |
294 elements, &num_bytes_value, flags_value); | 460 &num_bytes_value, flags_value); |
295 | 461 |
296 { | 462 { |
297 ScopedCopyLock copy_lock(nap); | 463 ScopedCopyLock copy_lock(nap); |
298 *num_bytes_ptr = num_bytes_value; | 464 *num_bytes_ptr = num_bytes_value; |
299 *result_ptr = result_value; | 465 *result_ptr = result_value; |
300 } | 466 } |
301 | 467 |
302 return 0; | 468 return 0; |
303 } | 469 } |
304 case 9: | 470 case 10: |
305 fprintf(stderr, "MojoBeginReadData not implemented\n"); | 471 fprintf(stderr, "MojoBeginWriteData not implemented\n"); |
306 return -1; | 472 return -1; |
307 case 10: { | 473 case 11: { |
308 if (num_params != 4) { | 474 if (num_params != 4) { |
309 return -1; | 475 return -1; |
310 } | 476 } |
311 MojoHandle data_pipe_consumer_handle_value; | 477 MojoHandle data_pipe_producer_handle_value; |
312 uint32_t num_bytes_read_value; | 478 uint32_t num_bytes_written_value; |
313 MojoResult volatile* result_ptr; | 479 MojoResult volatile* result_ptr; |
314 MojoResult result_value; | 480 MojoResult result_value; |
315 { | 481 { |
316 ScopedCopyLock copy_lock(nap); | 482 ScopedCopyLock copy_lock(nap); |
317 if (!ConvertScalarInput(nap, params[1], | 483 if (!ConvertScalarInput(nap, params[1], |
318 &data_pipe_consumer_handle_value)) { | 484 &data_pipe_producer_handle_value)) { |
319 return -1; | 485 return -1; |
320 } | 486 } |
321 if (!ConvertScalarInput(nap, params[2], &num_bytes_read_value)) { | 487 if (!ConvertScalarInput(nap, params[2], &num_bytes_written_value)) { |
322 return -1; | 488 return -1; |
323 } | 489 } |
324 if (!ConvertScalarOutput(nap, params[3], false, &result_ptr)) { | 490 if (!ConvertScalarOutput(nap, params[3], false, &result_ptr)) { |
325 return -1; | 491 return -1; |
326 } | 492 } |
327 } | 493 } |
328 | 494 |
329 result_value = MojoSystemImplEndReadData( | 495 result_value = MojoSystemImplEndWriteData(g_mojo_system, |
330 g_mojo_system, data_pipe_consumer_handle_value, num_bytes_read_value); | 496 data_pipe_producer_handle_value, |
497 num_bytes_written_value); | |
331 | 498 |
332 { | 499 { |
333 ScopedCopyLock copy_lock(nap); | 500 ScopedCopyLock copy_lock(nap); |
334 *result_ptr = result_value; | |
335 } | |
336 | |
337 return 0; | |
338 } | |
339 case 11: { | |
340 if (num_params != 2) { | |
341 return -1; | |
342 } | |
343 MojoTimeTicks volatile* result_ptr; | |
344 MojoTimeTicks result_value; | |
345 { | |
346 ScopedCopyLock copy_lock(nap); | |
347 if (!ConvertScalarOutput(nap, params[1], false, &result_ptr)) { | |
348 return -1; | |
349 } | |
350 } | |
351 | |
352 result_value = MojoSystemImplGetTimeTicksNow(g_mojo_system); | |
353 | |
354 { | |
355 ScopedCopyLock copy_lock(nap); | |
356 *result_ptr = result_value; | |
357 } | |
358 | |
359 return 0; | |
360 } | |
361 case 12: { | |
362 if (num_params != 3) { | |
363 return -1; | |
364 } | |
365 MojoHandle handle_value; | |
366 MojoResult volatile* result_ptr; | |
367 MojoResult result_value; | |
368 { | |
369 ScopedCopyLock copy_lock(nap); | |
370 if (!ConvertScalarInput(nap, params[1], &handle_value)) { | |
371 return -1; | |
372 } | |
373 if (!ConvertScalarOutput(nap, params[2], false, &result_ptr)) { | |
374 return -1; | |
375 } | |
376 } | |
377 | |
378 result_value = MojoSystemImplClose(g_mojo_system, handle_value); | |
379 | |
380 { | |
381 ScopedCopyLock copy_lock(nap); | |
382 *result_ptr = result_value; | 501 *result_ptr = result_value; |
383 } | 502 } |
384 | 503 |
385 return 0; | 504 return 0; |
386 } | 505 } |
387 case 13: { | 506 case 12: { |
388 if (num_params != 6) { | 507 if (num_params != 6) { |
389 return -1; | 508 return -1; |
390 } | 509 } |
391 MojoHandle handle_value; | 510 MojoHandle data_pipe_consumer_handle_value; |
392 MojoHandleSignals signals_value; | 511 void* elements; |
393 MojoDeadline deadline_value; | 512 uint32_t volatile* num_bytes_ptr; |
394 MojoHandleSignalsState volatile* signals_state_ptr; | 513 uint32_t num_bytes_value; |
395 MojoHandleSignalsState signals_state_value; | 514 MojoReadDataFlags flags_value; |
396 MojoResult volatile* result_ptr; | 515 MojoResult volatile* result_ptr; |
397 MojoResult result_value; | 516 MojoResult result_value; |
398 { | 517 { |
399 ScopedCopyLock copy_lock(nap); | 518 ScopedCopyLock copy_lock(nap); |
400 if (!ConvertScalarInput(nap, params[1], &handle_value)) { | 519 if (!ConvertScalarInput(nap, params[1], |
520 &data_pipe_consumer_handle_value)) { | |
401 return -1; | 521 return -1; |
402 } | 522 } |
403 if (!ConvertScalarInput(nap, params[2], &signals_value)) { | 523 if (!ConvertScalarInOut(nap, params[3], false, &num_bytes_value, |
524 &num_bytes_ptr)) { | |
404 return -1; | 525 return -1; |
405 } | 526 } |
406 if (!ConvertScalarInput(nap, params[3], &deadline_value)) { | 527 if (!ConvertScalarInput(nap, params[4], &flags_value)) { |
407 return -1; | |
408 } | |
409 if (!ConvertScalarOutput(nap, params[4], true, &signals_state_ptr)) { | |
410 return -1; | 528 return -1; |
411 } | 529 } |
412 if (!ConvertScalarOutput(nap, params[5], false, &result_ptr)) { | 530 if (!ConvertScalarOutput(nap, params[5], false, &result_ptr)) { |
413 return -1; | 531 return -1; |
414 } | 532 } |
533 if (!ConvertArray(nap, params[2], num_bytes_value, 1, false, | |
534 &elements)) { | |
535 return -1; | |
536 } | |
415 } | 537 } |
416 | 538 |
417 result_value = MojoSystemImplWait( | 539 result_value = |
418 g_mojo_system, handle_value, signals_value, deadline_value, | 540 MojoSystemImplReadData(g_mojo_system, data_pipe_consumer_handle_value, |
419 signals_state_ptr ? &signals_state_value : nullptr); | 541 elements, &num_bytes_value, flags_value); |
420 | 542 |
421 { | 543 { |
422 ScopedCopyLock copy_lock(nap); | 544 ScopedCopyLock copy_lock(nap); |
423 if (signals_state_ptr) { | 545 *num_bytes_ptr = num_bytes_value; |
424 memcpy_volatile_out(signals_state_ptr, &signals_state_value, | |
425 sizeof(MojoHandleSignalsState)); | |
426 } | |
427 *result_ptr = result_value; | 546 *result_ptr = result_value; |
428 } | 547 } |
429 | 548 |
430 return 0; | 549 return 0; |
431 } | 550 } |
551 case 13: | |
552 fprintf(stderr, "MojoBeginReadData not implemented\n"); | |
553 return -1; | |
432 case 14: { | 554 case 14: { |
433 if (num_params != 8) { | 555 if (num_params != 4) { |
434 return -1; | 556 return -1; |
435 } | 557 } |
436 const MojoHandle* handles; | 558 MojoHandle data_pipe_consumer_handle_value; |
437 const MojoHandleSignals* signals; | 559 uint32_t num_bytes_read_value; |
438 uint32_t num_handles_value; | |
439 MojoDeadline deadline_value; | |
440 uint32_t volatile* result_index_ptr; | |
441 uint32_t result_index_value; | |
442 struct MojoHandleSignalsState* signals_states; | |
443 MojoResult volatile* result_ptr; | 560 MojoResult volatile* result_ptr; |
444 MojoResult result_value; | 561 MojoResult result_value; |
445 { | 562 { |
446 ScopedCopyLock copy_lock(nap); | 563 ScopedCopyLock copy_lock(nap); |
447 if (!ConvertScalarInput(nap, params[3], &num_handles_value)) { | 564 if (!ConvertScalarInput(nap, params[1], |
565 &data_pipe_consumer_handle_value)) { | |
448 return -1; | 566 return -1; |
449 } | 567 } |
450 if (!ConvertScalarInput(nap, params[4], &deadline_value)) { | 568 if (!ConvertScalarInput(nap, params[2], &num_bytes_read_value)) { |
451 return -1; | 569 return -1; |
452 } | 570 } |
453 if (!ConvertScalarInOut(nap, params[5], true, &result_index_value, | 571 if (!ConvertScalarOutput(nap, params[3], false, &result_ptr)) { |
454 &result_index_ptr)) { | |
455 return -1; | |
456 } | |
457 if (!ConvertScalarOutput(nap, params[7], false, &result_ptr)) { | |
458 return -1; | |
459 } | |
460 if (!ConvertArray(nap, params[1], num_handles_value, sizeof(*handles), | |
461 false, &handles)) { | |
462 return -1; | |
463 } | |
464 if (!ConvertArray(nap, params[2], num_handles_value, sizeof(*signals), | |
465 false, &signals)) { | |
466 return -1; | |
467 } | |
468 if (!ConvertArray(nap, params[6], num_handles_value, | |
469 sizeof(*signals_states), true, &signals_states)) { | |
470 return -1; | 572 return -1; |
471 } | 573 } |
472 } | 574 } |
473 | 575 |
474 result_value = MojoSystemImplWaitMany( | 576 result_value = MojoSystemImplEndReadData( |
475 g_mojo_system, handles, signals, num_handles_value, deadline_value, | 577 g_mojo_system, data_pipe_consumer_handle_value, num_bytes_read_value); |
476 result_index_ptr ? &result_index_value : nullptr, signals_states); | |
477 | 578 |
478 { | 579 { |
479 ScopedCopyLock copy_lock(nap); | 580 ScopedCopyLock copy_lock(nap); |
480 if (result_index_ptr) { | |
481 *result_index_ptr = result_index_value; | |
482 } | |
483 *result_ptr = result_value; | 581 *result_ptr = result_value; |
484 } | 582 } |
485 | 583 |
486 return 0; | 584 return 0; |
487 } | 585 } |
488 case 15: { | 586 case 15: { |
489 if (num_params != 5) { | 587 if (num_params != 5) { |
490 return -1; | 588 return -1; |
491 } | 589 } |
492 const struct MojoCreateMessagePipeOptions* options; | 590 const struct MojoCreateSharedBufferOptions* options; |
493 MojoHandle volatile* message_pipe_handle0_ptr; | 591 uint64_t num_bytes_value; |
494 MojoHandle message_pipe_handle0_value; | 592 MojoHandle volatile* shared_buffer_handle_ptr; |
495 MojoHandle volatile* message_pipe_handle1_ptr; | 593 MojoHandle shared_buffer_handle_value; |
496 MojoHandle message_pipe_handle1_value; | |
497 MojoResult volatile* result_ptr; | 594 MojoResult volatile* result_ptr; |
498 MojoResult result_value; | 595 MojoResult result_value; |
499 { | 596 { |
500 ScopedCopyLock copy_lock(nap); | 597 ScopedCopyLock copy_lock(nap); |
501 if (!ConvertExtensibleStructInput(nap, params[1], true, &options)) { | 598 if (!ConvertExtensibleStructInput(nap, params[1], true, &options)) { |
502 return -1; | 599 return -1; |
503 } | 600 } |
504 if (!ConvertScalarInOut(nap, params[2], false, | 601 if (!ConvertScalarInput(nap, params[2], &num_bytes_value)) { |
505 &message_pipe_handle0_value, | |
506 &message_pipe_handle0_ptr)) { | |
507 return -1; | 602 return -1; |
508 } | 603 } |
509 if (!ConvertScalarInOut(nap, params[3], false, | 604 if (!ConvertScalarInOut(nap, params[3], false, |
510 &message_pipe_handle1_value, | 605 &shared_buffer_handle_value, |
511 &message_pipe_handle1_ptr)) { | 606 &shared_buffer_handle_ptr)) { |
512 return -1; | 607 return -1; |
513 } | 608 } |
514 if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) { | 609 if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) { |
515 return -1; | 610 return -1; |
516 } | 611 } |
517 } | 612 } |
518 | 613 |
519 result_value = MojoSystemImplCreateMessagePipe( | 614 result_value = MojoSystemImplCreateSharedBuffer( |
520 g_mojo_system, options, &message_pipe_handle0_value, | 615 g_mojo_system, options, num_bytes_value, &shared_buffer_handle_value); |
521 &message_pipe_handle1_value); | |
522 | 616 |
523 { | 617 { |
524 ScopedCopyLock copy_lock(nap); | 618 ScopedCopyLock copy_lock(nap); |
525 *message_pipe_handle0_ptr = message_pipe_handle0_value; | 619 *shared_buffer_handle_ptr = shared_buffer_handle_value; |
526 *message_pipe_handle1_ptr = message_pipe_handle1_value; | |
527 *result_ptr = result_value; | 620 *result_ptr = result_value; |
528 } | 621 } |
529 | 622 |
530 return 0; | 623 return 0; |
531 } | 624 } |
532 case 16: { | 625 case 16: { |
533 if (num_params != 8) { | 626 if (num_params != 5) { |
534 return -1; | 627 return -1; |
535 } | 628 } |
536 MojoHandle message_pipe_handle_value; | 629 MojoHandle buffer_handle_value; |
537 const void* bytes; | 630 const struct MojoDuplicateBufferHandleOptions* options; |
538 uint32_t num_bytes_value; | 631 MojoHandle volatile* new_buffer_handle_ptr; |
539 const MojoHandle* handles; | 632 MojoHandle new_buffer_handle_value; |
540 uint32_t num_handles_value; | |
541 MojoWriteMessageFlags flags_value; | |
542 MojoResult volatile* result_ptr; | 633 MojoResult volatile* result_ptr; |
543 MojoResult result_value; | 634 MojoResult result_value; |
544 { | 635 { |
545 ScopedCopyLock copy_lock(nap); | 636 ScopedCopyLock copy_lock(nap); |
546 if (!ConvertScalarInput(nap, params[1], &message_pipe_handle_value)) { | 637 if (!ConvertScalarInput(nap, params[1], &buffer_handle_value)) { |
547 return -1; | 638 return -1; |
548 } | 639 } |
549 if (!ConvertScalarInput(nap, params[3], &num_bytes_value)) { | 640 if (!ConvertExtensibleStructInput(nap, params[2], true, &options)) { |
550 return -1; | 641 return -1; |
551 } | 642 } |
552 if (!ConvertScalarInput(nap, params[5], &num_handles_value)) { | 643 if (!ConvertScalarInOut(nap, params[3], false, &new_buffer_handle_value, |
644 &new_buffer_handle_ptr)) { | |
553 return -1; | 645 return -1; |
554 } | 646 } |
555 if (!ConvertScalarInput(nap, params[6], &flags_value)) { | 647 if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) { |
556 return -1; | |
557 } | |
558 if (!ConvertScalarOutput(nap, params[7], false, &result_ptr)) { | |
559 return -1; | |
560 } | |
561 if (!ConvertArray(nap, params[2], num_bytes_value, 1, true, &bytes)) { | |
562 return -1; | |
563 } | |
564 if (!ConvertArray(nap, params[4], num_handles_value, sizeof(*handles), | |
565 true, &handles)) { | |
566 return -1; | 648 return -1; |
567 } | 649 } |
568 } | 650 } |
569 | 651 |
570 result_value = MojoSystemImplWriteMessage( | 652 result_value = MojoSystemImplDuplicateBufferHandle( |
571 g_mojo_system, message_pipe_handle_value, bytes, num_bytes_value, | 653 g_mojo_system, buffer_handle_value, options, |
572 handles, num_handles_value, flags_value); | 654 &new_buffer_handle_value); |
655 | |
656 { | |
657 ScopedCopyLock copy_lock(nap); | |
658 *new_buffer_handle_ptr = new_buffer_handle_value; | |
659 *result_ptr = result_value; | |
660 } | |
661 | |
662 return 0; | |
663 } | |
664 case 17: { | |
viettrungluu
2016/03/09 00:51:04
This case is the only new one (due to the correspo
| |
665 if (num_params != 5) { | |
666 return -1; | |
667 } | |
668 MojoHandle buffer_handle_value; | |
669 struct MojoBufferInformation* info; | |
670 uint32_t info_num_bytes_value; | |
671 MojoResult volatile* result_ptr; | |
672 MojoResult result_value; | |
673 { | |
674 ScopedCopyLock copy_lock(nap); | |
675 if (!ConvertScalarInput(nap, params[1], &buffer_handle_value)) { | |
676 return -1; | |
677 } | |
678 if (!ConvertScalarInput(nap, params[3], &info_num_bytes_value)) { | |
679 return -1; | |
680 } | |
681 if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) { | |
682 return -1; | |
683 } | |
684 if (!ConvertArray(nap, params[2], info_num_bytes_value, 1, false, | |
685 &info)) { | |
686 return -1; | |
687 } | |
688 } | |
689 | |
690 result_value = MojoSystemImplGetBufferInformation( | |
691 g_mojo_system, buffer_handle_value, info, info_num_bytes_value); | |
573 | 692 |
574 { | 693 { |
575 ScopedCopyLock copy_lock(nap); | 694 ScopedCopyLock copy_lock(nap); |
576 *result_ptr = result_value; | 695 *result_ptr = result_value; |
577 } | 696 } |
578 | 697 |
579 return 0; | 698 return 0; |
580 } | 699 } |
581 case 17: { | 700 case 18: |
582 if (num_params != 8) { | 701 fprintf(stderr, "MojoMapBuffer not implemented\n"); |
583 return -1; | 702 return -1; |
584 } | 703 case 19: |
585 MojoHandle message_pipe_handle_value; | 704 fprintf(stderr, "MojoUnmapBuffer not implemented\n"); |
586 void* bytes; | 705 return -1; |
587 uint32_t volatile* num_bytes_ptr; | |
588 uint32_t num_bytes_value; | |
589 MojoHandle* handles; | |
590 uint32_t volatile* num_handles_ptr; | |
591 uint32_t num_handles_value; | |
592 MojoReadMessageFlags flags_value; | |
593 MojoResult volatile* result_ptr; | |
594 MojoResult result_value; | |
595 { | |
596 ScopedCopyLock copy_lock(nap); | |
597 if (!ConvertScalarInput(nap, params[1], &message_pipe_handle_value)) { | |
598 return -1; | |
599 } | |
600 if (!ConvertScalarInOut(nap, params[3], true, &num_bytes_value, | |
601 &num_bytes_ptr)) { | |
602 return -1; | |
603 } | |
604 if (!ConvertScalarInOut(nap, params[5], true, &num_handles_value, | |
605 &num_handles_ptr)) { | |
606 return -1; | |
607 } | |
608 if (!ConvertScalarInput(nap, params[6], &flags_value)) { | |
609 return -1; | |
610 } | |
611 if (!ConvertScalarOutput(nap, params[7], false, &result_ptr)) { | |
612 return -1; | |
613 } | |
614 if (!ConvertArray(nap, params[2], num_bytes_value, 1, true, &bytes)) { | |
615 return -1; | |
616 } | |
617 if (!ConvertArray(nap, params[4], num_handles_value, sizeof(*handles), | |
618 true, &handles)) { | |
619 return -1; | |
620 } | |
621 } | |
622 | |
623 result_value = MojoSystemImplReadMessage( | |
624 g_mojo_system, message_pipe_handle_value, bytes, | |
625 num_bytes_ptr ? &num_bytes_value : nullptr, handles, | |
626 num_handles_ptr ? &num_handles_value : nullptr, flags_value); | |
627 | |
628 { | |
629 ScopedCopyLock copy_lock(nap); | |
630 if (num_bytes_ptr) { | |
631 *num_bytes_ptr = num_bytes_value; | |
632 } | |
633 if (num_handles_ptr) { | |
634 *num_handles_ptr = num_handles_value; | |
635 } | |
636 *result_ptr = result_value; | |
637 } | |
638 | |
639 return 0; | |
640 } | |
641 case 18: { | |
642 if (num_params != 3) { | |
643 return -1; | |
644 } | |
645 MojoHandle volatile* handle_ptr; | |
646 MojoHandle handle_value; | |
647 MojoResult volatile* result_ptr; | |
648 MojoResult result_value; | |
649 { | |
650 ScopedCopyLock copy_lock(nap); | |
651 if (!ConvertScalarInOut(nap, params[1], false, &handle_value, | |
652 &handle_ptr)) { | |
653 return -1; | |
654 } | |
655 if (!ConvertScalarOutput(nap, params[2], false, &result_ptr)) { | |
656 return -1; | |
657 } | |
658 } | |
659 | |
660 result_value = _MojoGetInitialHandle(&handle_value); | |
661 | |
662 { | |
663 ScopedCopyLock copy_lock(nap); | |
664 *handle_ptr = handle_value; | |
665 *result_ptr = result_value; | |
666 } | |
667 | |
668 return 0; | |
669 } | |
670 } | 706 } |
671 | 707 |
672 return -1; | 708 return -1; |
673 } | 709 } |
674 | 710 |
675 ssize_t MojoDescRecvMsg(void* handle, | 711 ssize_t MojoDescRecvMsg(void* handle, |
676 struct NaClImcTypedMsgHdr* msg, | 712 struct NaClImcTypedMsgHdr* msg, |
677 int flags) { | 713 int flags) { |
678 return -1; | 714 return -1; |
679 } | 715 } |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
721 MojoResult InjectMojo(struct NaClApp* nap, MojoHandle handle) { | 757 MojoResult InjectMojo(struct NaClApp* nap, MojoHandle handle) { |
722 NaClAppSetDesc(nap, NACL_MOJO_DESC, MakeMojoDesc(nap)); | 758 NaClAppSetDesc(nap, NACL_MOJO_DESC, MakeMojoDesc(nap)); |
723 g_mojo_system = MojoSystemImplCreateImpl(); | 759 g_mojo_system = MojoSystemImplCreateImpl(); |
724 return MojoSystemImplTransferHandle(MojoSystemImplGetDefaultImpl(), handle, | 760 return MojoSystemImplTransferHandle(MojoSystemImplGetDefaultImpl(), handle, |
725 g_mojo_system, &g_mojo_handle); | 761 g_mojo_system, &g_mojo_handle); |
726 } | 762 } |
727 | 763 |
728 void InjectDisabledMojo(struct NaClApp* nap) { | 764 void InjectDisabledMojo(struct NaClApp* nap) { |
729 NaClAppSetDesc(nap, NACL_MOJO_DESC, MakeDisabledMojoDesc(nap)); | 765 NaClAppSetDesc(nap, NACL_MOJO_DESC, MakeDisabledMojoDesc(nap)); |
730 } | 766 } |
OLD | NEW |