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

Side by Side Diff: mojo/monacl/generator/NOT_FOR_COMMIT/mojo_syscall.cc

Issue 385983008: Mojo + NaCl prototype. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ClipDep Created 6 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 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 // WARNING this file was generated by generate_monacl_bindings.py
6 // Do not edit by hand.
7
8 #include "mojo/monacl/mojo_syscall.h"
9
10 #include <stdio.h>
11
12 #include "mojo/monacl/mojo_syscall_internal.h"
13 #include "mojo/public/c/system/core.h"
14 #include "native_client/src/public/chrome_main.h"
15 #include "native_client/src/public/nacl_app.h"
16 #include "native_client/src/trusted/desc/nacl_desc_custom.h"
17
18 namespace {
19
20 void MojoDescDestroy(void* handle) {
21 }
22
23 ssize_t MojoDescSendMsg(void* handle,
24 const struct NaClImcTypedMsgHdr* msg,
25 int flags) {
26 struct NaClApp* nap = static_cast<struct NaClApp*>(handle);
27
28 if (msg->iov_length != 1 || msg->iov[0].length < 8 ||
29 msg->ndesc_length != 0) {
30 return -1;
31 }
32
33 uint32_t* params = static_cast<uint32_t*>(msg->iov[0].base);
34 size_t num_params = msg->iov[0].length / sizeof(*params);
35
36 uint32_t msg_type = params[0];
37 switch (msg_type) {
38 case 0:
39 {
40 if (num_params != 5) {
41 return -1;
42 }
43 const struct MojoCreateSharedBufferOptions* options;
44 uint64_t num_bytes_value;
45 MojoHandle volatile* shared_buffer_handle_ptr;
46 MojoHandle shared_buffer_handle_value;
47 MojoResult volatile* result_ptr;
48 MojoResult result_value;
49 {
50 ScopedCopyLock copy_lock(nap);
51 if (!ConvertStruct(nap, params[1], true, &options)) {
52 return -1;
53 }
54 if (!ConvertScalarInput(nap, params[2], &num_bytes_value)) {
55 return -1;
56 }
57 if (!ConvertScalarOutput(nap, params[3], &shared_buffer_handle_ptr)) {
58 return -1;
59 }
60 if (!ConvertScalarOutput(nap, params[4], &result_ptr)) {
61 return -1;
62 }
63 }
64
65 result_value = MojoCreateSharedBuffer(options, num_bytes_value, &shared_bu ffer_handle_value);
66
67 {
68 ScopedCopyLock copy_lock(nap);
69 *shared_buffer_handle_ptr = shared_buffer_handle_value;
70 *result_ptr = result_value;
71 }
72
73 return 0;
74 }
75 case 1:
76 {
77 if (num_params != 5) {
78 return -1;
79 }
80 MojoHandle buffer_handle_value;
81 const struct MojoDuplicateBufferHandleOptions* options;
82 MojoHandle volatile* new_buffer_handle_ptr;
83 MojoHandle new_buffer_handle_value;
84 MojoResult volatile* result_ptr;
85 MojoResult result_value;
86 {
87 ScopedCopyLock copy_lock(nap);
88 if (!ConvertScalarInput(nap, params[1], &buffer_handle_value)) {
89 return -1;
90 }
91 if (!ConvertStruct(nap, params[2], true, &options)) {
92 return -1;
93 }
94 if (!ConvertScalarOutput(nap, params[3], &new_buffer_handle_ptr)) {
95 return -1;
96 }
97 if (!ConvertScalarOutput(nap, params[4], &result_ptr)) {
98 return -1;
99 }
100 }
101
102 result_value = MojoDuplicateBufferHandle(buffer_handle_value, options, &ne w_buffer_handle_value);
103
104 {
105 ScopedCopyLock copy_lock(nap);
106 *new_buffer_handle_ptr = new_buffer_handle_value;
107 *result_ptr = result_value;
108 }
109
110 return 0;
111 }
112 case 2:
113 {
114 if (num_params != 7) {
115 return -1;
116 }
117 MojoHandle buffer_handle_value;
118 uint64_t offset_value;
119 uint64_t num_bytes_value;
120 void* volatile* buffer_ptr;
121 void* buffer_value;
122 MojoMapBufferFlags flags_value;
123 MojoResult volatile* result_ptr;
124 MojoResult result_value;
125 {
126 ScopedCopyLock copy_lock(nap);
127 if (!ConvertScalarInput(nap, params[1], &buffer_handle_value)) {
128 return -1;
129 }
130 if (!ConvertScalarInput(nap, params[2], &offset_value)) {
131 return -1;
132 }
133 if (!ConvertScalarInput(nap, params[3], &num_bytes_value)) {
134 return -1;
135 }
136 if (!ConvertScalarOutput(nap, params[4], &buffer_ptr)) {
137 return -1;
138 }
139 if (!ConvertScalarInput(nap, params[5], &flags_value)) {
140 return -1;
141 }
142 if (!ConvertScalarOutput(nap, params[6], &result_ptr)) {
143 return -1;
144 }
145 }
146
147 result_value = MojoMapBuffer(buffer_handle_value, offset_value, num_bytes_ value, &buffer_value, flags_value);
148
149 {
150 ScopedCopyLock copy_lock(nap);
151 *buffer_ptr = buffer_value;
152 *result_ptr = result_value;
153 }
154
155 return 0;
156 }
157 case 3:
158 {
159 if (num_params != 3) {
160 return -1;
161 }
162 void* buffer_value;
163 MojoResult volatile* result_ptr;
164 MojoResult result_value;
165 {
166 ScopedCopyLock copy_lock(nap);
167 if (!ConvertScalarInput(nap, params[1], &buffer_value)) {
168 return -1;
169 }
170 if (!ConvertScalarOutput(nap, params[2], &result_ptr)) {
171 return -1;
172 }
173 }
174
175 result_value = MojoUnmapBuffer(buffer_value);
176
177 {
178 ScopedCopyLock copy_lock(nap);
179 *result_ptr = result_value;
180 }
181
182 return 0;
183 }
184 case 4:
185 {
186 if (num_params != 5) {
187 return -1;
188 }
189 const struct MojoCreateDataPipeOptions* options;
190 MojoHandle volatile* data_pipe_producer_handle_ptr;
191 MojoHandle data_pipe_producer_handle_value;
192 MojoHandle volatile* data_pipe_consumer_handle_ptr;
193 MojoHandle data_pipe_consumer_handle_value;
194 MojoResult volatile* result_ptr;
195 MojoResult result_value;
196 {
197 ScopedCopyLock copy_lock(nap);
198 if (!ConvertStruct(nap, params[1], true, &options)) {
199 return -1;
200 }
201 if (!ConvertScalarOutput(nap, params[2], &data_pipe_producer_handle_ptr) ) {
202 return -1;
203 }
204 if (!ConvertScalarOutput(nap, params[3], &data_pipe_consumer_handle_ptr) ) {
205 return -1;
206 }
207 if (!ConvertScalarOutput(nap, params[4], &result_ptr)) {
208 return -1;
209 }
210 }
211
212 result_value = MojoCreateDataPipe(options, &data_pipe_producer_handle_valu e, &data_pipe_consumer_handle_value);
213
214 {
215 ScopedCopyLock copy_lock(nap);
216 *data_pipe_producer_handle_ptr = data_pipe_producer_handle_value;
217 *data_pipe_consumer_handle_ptr = data_pipe_consumer_handle_value;
218 *result_ptr = result_value;
219 }
220
221 return 0;
222 }
223 case 5:
224 {
225 if (num_params != 6) {
226 return -1;
227 }
228 MojoHandle data_pipe_producer_handle_value;
229 const void* elements;
230 uint32_t volatile* num_bytes_ptr;
231 uint32_t num_bytes_value;
232 MojoWriteDataFlags flags_value;
233 MojoResult volatile* result_ptr;
234 MojoResult result_value;
235 {
236 ScopedCopyLock copy_lock(nap);
237 if (!ConvertScalarInput(nap, params[1], &data_pipe_producer_handle_value )) {
238 return -1;
239 }
240 if (!ConvertScalarInOut(nap, params[3], false, &num_bytes_value, &num_by tes_ptr)) {
241 return -1;
242 }
243 if (!ConvertScalarInput(nap, params[4], &flags_value)) {
244 return -1;
245 }
246 if (!ConvertScalarOutput(nap, params[5], &result_ptr)) {
247 return -1;
248 }
249 if (!ConvertBytes(nap, params[2], num_bytes_value, false, &elements)) {
250 return -1;
251 }
252 }
253
254 result_value = MojoWriteData(data_pipe_producer_handle_value, elements, &n um_bytes_value, flags_value);
255
256 {
257 ScopedCopyLock copy_lock(nap);
258 *num_bytes_ptr = num_bytes_value;
259 *result_ptr = result_value;
260 }
261
262 return 0;
263 }
264 case 6:
265 {
266 if (num_params != 6) {
267 return -1;
268 }
269 MojoHandle data_pipe_producer_handle_value;
270 void* volatile* buffer_ptr;
271 void* buffer_value;
272 uint32_t volatile* buffer_num_bytes_ptr;
273 uint32_t buffer_num_bytes_value;
274 MojoWriteDataFlags flags_value;
275 MojoResult volatile* result_ptr;
276 MojoResult result_value;
277 {
278 ScopedCopyLock copy_lock(nap);
279 if (!ConvertScalarInput(nap, params[1], &data_pipe_producer_handle_value )) {
280 return -1;
281 }
282 if (!ConvertScalarOutput(nap, params[2], &buffer_ptr)) {
283 return -1;
284 }
285 if (!ConvertScalarInOut(nap, params[3], false, &buffer_num_bytes_value, &buffer_num_bytes_ptr)) {
286 return -1;
287 }
288 if (!ConvertScalarInput(nap, params[4], &flags_value)) {
289 return -1;
290 }
291 if (!ConvertScalarOutput(nap, params[5], &result_ptr)) {
292 return -1;
293 }
294 }
295
296 result_value = MojoBeginWriteData(data_pipe_producer_handle_value, &buffer _value, &buffer_num_bytes_value, flags_value);
297
298 {
299 ScopedCopyLock copy_lock(nap);
300 *buffer_ptr = buffer_value;
301 *buffer_num_bytes_ptr = buffer_num_bytes_value;
302 *result_ptr = result_value;
303 }
304
305 return 0;
306 }
307 case 7:
308 {
309 if (num_params != 4) {
310 return -1;
311 }
312 MojoHandle data_pipe_producer_handle_value;
313 uint32_t num_bytes_written_value;
314 MojoResult volatile* result_ptr;
315 MojoResult result_value;
316 {
317 ScopedCopyLock copy_lock(nap);
318 if (!ConvertScalarInput(nap, params[1], &data_pipe_producer_handle_value )) {
319 return -1;
320 }
321 if (!ConvertScalarInput(nap, params[2], &num_bytes_written_value)) {
322 return -1;
323 }
324 if (!ConvertScalarOutput(nap, params[3], &result_ptr)) {
325 return -1;
326 }
327 }
328
329 result_value = MojoEndWriteData(data_pipe_producer_handle_value, num_bytes _written_value);
330
331 {
332 ScopedCopyLock copy_lock(nap);
333 *result_ptr = result_value;
334 }
335
336 return 0;
337 }
338 case 8:
339 {
340 if (num_params != 6) {
341 return -1;
342 }
343 MojoHandle data_pipe_consumer_handle_value;
344 void* elements;
345 uint32_t volatile* num_bytes_ptr;
346 uint32_t num_bytes_value;
347 MojoReadDataFlags flags_value;
348 MojoResult volatile* result_ptr;
349 MojoResult result_value;
350 {
351 ScopedCopyLock copy_lock(nap);
352 if (!ConvertScalarInput(nap, params[1], &data_pipe_consumer_handle_value )) {
353 return -1;
354 }
355 if (!ConvertScalarInOut(nap, params[3], false, &num_bytes_value, &num_by tes_ptr)) {
356 return -1;
357 }
358 if (!ConvertScalarInput(nap, params[4], &flags_value)) {
359 return -1;
360 }
361 if (!ConvertScalarOutput(nap, params[5], &result_ptr)) {
362 return -1;
363 }
364 if (!ConvertBytes(nap, params[2], num_bytes_value, false, &elements)) {
365 return -1;
366 }
367 }
368
369 result_value = MojoReadData(data_pipe_consumer_handle_value, elements, &nu m_bytes_value, flags_value);
370
371 {
372 ScopedCopyLock copy_lock(nap);
373 *num_bytes_ptr = num_bytes_value;
374 *result_ptr = result_value;
375 }
376
377 return 0;
378 }
379 case 9:
380 {
381 if (num_params != 6) {
382 return -1;
383 }
384 MojoHandle data_pipe_consumer_handle_value;
385 const void* volatile* buffer_ptr;
386 const void* buffer_value;
387 uint32_t volatile* buffer_num_bytes_ptr;
388 uint32_t buffer_num_bytes_value;
389 MojoReadDataFlags flags_value;
390 MojoResult volatile* result_ptr;
391 MojoResult result_value;
392 {
393 ScopedCopyLock copy_lock(nap);
394 if (!ConvertScalarInput(nap, params[1], &data_pipe_consumer_handle_value )) {
395 return -1;
396 }
397 if (!ConvertScalarOutput(nap, params[2], &buffer_ptr)) {
398 return -1;
399 }
400 if (!ConvertScalarInOut(nap, params[3], false, &buffer_num_bytes_value, &buffer_num_bytes_ptr)) {
401 return -1;
402 }
403 if (!ConvertScalarInput(nap, params[4], &flags_value)) {
404 return -1;
405 }
406 if (!ConvertScalarOutput(nap, params[5], &result_ptr)) {
407 return -1;
408 }
409 }
410
411 result_value = MojoBeginReadData(data_pipe_consumer_handle_value, &buffer_ value, &buffer_num_bytes_value, flags_value);
412
413 {
414 ScopedCopyLock copy_lock(nap);
415 *buffer_ptr = buffer_value;
416 *buffer_num_bytes_ptr = buffer_num_bytes_value;
417 *result_ptr = result_value;
418 }
419
420 return 0;
421 }
422 case 10:
423 {
424 if (num_params != 4) {
425 return -1;
426 }
427 MojoHandle data_pipe_consumer_handle_value;
428 uint32_t num_bytes_read_value;
429 MojoResult volatile* result_ptr;
430 MojoResult result_value;
431 {
432 ScopedCopyLock copy_lock(nap);
433 if (!ConvertScalarInput(nap, params[1], &data_pipe_consumer_handle_value )) {
434 return -1;
435 }
436 if (!ConvertScalarInput(nap, params[2], &num_bytes_read_value)) {
437 return -1;
438 }
439 if (!ConvertScalarOutput(nap, params[3], &result_ptr)) {
440 return -1;
441 }
442 }
443
444 result_value = MojoEndReadData(data_pipe_consumer_handle_value, num_bytes_ read_value);
445
446 {
447 ScopedCopyLock copy_lock(nap);
448 *result_ptr = result_value;
449 }
450
451 return 0;
452 }
453 case 11:
454 {
455 if (num_params != 2) {
456 return -1;
457 }
458 MojoTimeTicks volatile* result_ptr;
459 MojoTimeTicks result_value;
460 {
461 ScopedCopyLock copy_lock(nap);
462 if (!ConvertScalarOutput(nap, params[1], &result_ptr)) {
463 return -1;
464 }
465 }
466
467 result_value = MojoGetTimeTicksNow();
468
469 {
470 ScopedCopyLock copy_lock(nap);
471 *result_ptr = result_value;
472 }
473
474 return 0;
475 }
476 case 12:
477 {
478 if (num_params != 3) {
479 return -1;
480 }
481 MojoHandle handle_value;
482 MojoResult volatile* result_ptr;
483 MojoResult result_value;
484 {
485 ScopedCopyLock copy_lock(nap);
486 if (!ConvertScalarInput(nap, params[1], &handle_value)) {
487 return -1;
488 }
489 if (!ConvertScalarOutput(nap, params[2], &result_ptr)) {
490 return -1;
491 }
492 }
493
494 result_value = MojoClose(handle_value);
495
496 {
497 ScopedCopyLock copy_lock(nap);
498 *result_ptr = result_value;
499 }
500
501 return 0;
502 }
503 case 13:
504 {
505 if (num_params != 5) {
506 return -1;
507 }
508 MojoHandle handle_value;
509 MojoHandleSignals signals_value;
510 MojoDeadline deadline_value;
511 MojoResult volatile* result_ptr;
512 MojoResult result_value;
513 {
514 ScopedCopyLock copy_lock(nap);
515 if (!ConvertScalarInput(nap, params[1], &handle_value)) {
516 return -1;
517 }
518 if (!ConvertScalarInput(nap, params[2], &signals_value)) {
519 return -1;
520 }
521 if (!ConvertScalarInput(nap, params[3], &deadline_value)) {
522 return -1;
523 }
524 if (!ConvertScalarOutput(nap, params[4], &result_ptr)) {
525 return -1;
526 }
527 }
528
529 result_value = MojoWait(handle_value, signals_value, deadline_value);
530
531 {
532 ScopedCopyLock copy_lock(nap);
533 *result_ptr = result_value;
534 }
535
536 return 0;
537 }
538 case 14:
539 {
540 if (num_params != 6) {
541 return -1;
542 }
543 const MojoHandle* handles;
544 const MojoHandleSignals* signals;
545 uint32_t num_handles_value;
546 MojoDeadline deadline_value;
547 MojoResult volatile* result_ptr;
548 MojoResult result_value;
549 {
550 ScopedCopyLock copy_lock(nap);
551 if (!ConvertScalarInput(nap, params[3], &num_handles_value)) {
552 return -1;
553 }
554 if (!ConvertScalarInput(nap, params[4], &deadline_value)) {
555 return -1;
556 }
557 if (!ConvertScalarOutput(nap, params[5], &result_ptr)) {
558 return -1;
559 }
560 if (!ConvertArray(nap, params[1], num_handles_value, false, &handles)) {
561 return -1;
562 }
563 if (!ConvertArray(nap, params[2], num_handles_value, false, &signals)) {
564 return -1;
565 }
566 }
567
568 result_value = MojoWaitMany(handles, signals, num_handles_value, deadline_ value);
569
570 {
571 ScopedCopyLock copy_lock(nap);
572 *result_ptr = result_value;
573 }
574
575 return 0;
576 }
577 case 15:
578 {
579 if (num_params != 5) {
580 return -1;
581 }
582 const struct MojoCreateMessagePipeOptions* options;
583 MojoHandle volatile* message_pipe_handle0_ptr;
584 MojoHandle message_pipe_handle0_value;
585 MojoHandle volatile* message_pipe_handle1_ptr;
586 MojoHandle message_pipe_handle1_value;
587 MojoResult volatile* result_ptr;
588 MojoResult result_value;
589 {
590 ScopedCopyLock copy_lock(nap);
591 if (!ConvertStruct(nap, params[1], true, &options)) {
592 return -1;
593 }
594 if (!ConvertScalarOutput(nap, params[2], &message_pipe_handle0_ptr)) {
595 return -1;
596 }
597 if (!ConvertScalarOutput(nap, params[3], &message_pipe_handle1_ptr)) {
598 return -1;
599 }
600 if (!ConvertScalarOutput(nap, params[4], &result_ptr)) {
601 return -1;
602 }
603 }
604
605 result_value = MojoCreateMessagePipe(options, &message_pipe_handle0_value, &message_pipe_handle1_value);
606
607 {
608 ScopedCopyLock copy_lock(nap);
609 *message_pipe_handle0_ptr = message_pipe_handle0_value;
610 *message_pipe_handle1_ptr = message_pipe_handle1_value;
611 *result_ptr = result_value;
612 }
613
614 return 0;
615 }
616 case 16:
617 {
618 if (num_params != 8) {
619 return -1;
620 }
621 MojoHandle message_pipe_handle_value;
622 const void* bytes;
623 uint32_t num_bytes_value;
624 const MojoHandle* handles;
625 uint32_t num_handles_value;
626 MojoWriteMessageFlags flags_value;
627 MojoResult volatile* result_ptr;
628 MojoResult result_value;
629 {
630 ScopedCopyLock copy_lock(nap);
631 if (!ConvertScalarInput(nap, params[1], &message_pipe_handle_value)) {
632 return -1;
633 }
634 if (!ConvertScalarInput(nap, params[3], &num_bytes_value)) {
635 return -1;
636 }
637 if (!ConvertScalarInput(nap, params[5], &num_handles_value)) {
638 return -1;
639 }
640 if (!ConvertScalarInput(nap, params[6], &flags_value)) {
641 return -1;
642 }
643 if (!ConvertScalarOutput(nap, params[7], &result_ptr)) {
644 return -1;
645 }
646 if (!ConvertBytes(nap, params[2], num_bytes_value, true, &bytes)) {
647 return -1;
648 }
649 if (!ConvertArray(nap, params[4], num_handles_value, true, &handles)) {
650 return -1;
651 }
652 }
653
654 result_value = MojoWriteMessage(message_pipe_handle_value, bytes, num_byte s_value, handles, num_handles_value, flags_value);
655
656 {
657 ScopedCopyLock copy_lock(nap);
658 *result_ptr = result_value;
659 }
660
661 return 0;
662 }
663 case 17:
664 {
665 if (num_params != 8) {
666 return -1;
667 }
668 MojoHandle message_pipe_handle_value;
669 void* bytes;
670 uint32_t volatile* num_bytes_ptr;
671 uint32_t num_bytes_value;
672 MojoHandle* handles;
673 uint32_t volatile* num_handles_ptr;
674 uint32_t num_handles_value;
675 MojoReadMessageFlags flags_value;
676 MojoResult volatile* result_ptr;
677 MojoResult result_value;
678 {
679 ScopedCopyLock copy_lock(nap);
680 if (!ConvertScalarInput(nap, params[1], &message_pipe_handle_value)) {
681 return -1;
682 }
683 if (!ConvertScalarInOut(nap, params[3], true, &num_bytes_value, &num_byt es_ptr)) {
684 return -1;
685 }
686 if (!ConvertScalarInOut(nap, params[5], true, &num_handles_value, &num_h andles_ptr)) {
687 return -1;
688 }
689 if (!ConvertScalarInput(nap, params[6], &flags_value)) {
690 return -1;
691 }
692 if (!ConvertScalarOutput(nap, params[7], &result_ptr)) {
693 return -1;
694 }
695 if (!ConvertBytes(nap, params[2], num_bytes_value, true, &bytes)) {
696 return -1;
697 }
698 if (!ConvertArray(nap, params[4], num_handles_value, true, &handles)) {
699 return -1;
700 }
701 }
702
703 result_value = MojoReadMessage(message_pipe_handle_value, bytes, num_bytes _ptr ? &num_bytes_value : NULL, handles, num_handles_ptr ? &num_handles_value : NULL, flags_value);
704
705 {
706 ScopedCopyLock copy_lock(nap);
707 if (num_bytes_ptr != NULL) {
708 *num_bytes_ptr = num_bytes_value;
709 }
710 if (num_handles_ptr != NULL) {
711 *num_handles_ptr = num_handles_value;
712 }
713 *result_ptr = result_value;
714 }
715
716 return 0;
717 }
718
719 }
720
721 return -1;
722 }
723
724 ssize_t MojoDescRecvMsg(void* handle,
725 struct NaClImcTypedMsgHdr* msg,
726 int flags) {
727 return -1;
728 }
729
730 struct NaClDesc* MakeMojoDesc(struct NaClApp* nap) {
731 struct NaClDescCustomFuncs funcs = NACL_DESC_CUSTOM_FUNCS_INITIALIZER;
732 funcs.Destroy = MojoDescDestroy;
733 funcs.SendMsg = MojoDescSendMsg;
734 funcs.RecvMsg = MojoDescRecvMsg;
735 return NaClDescMakeCustomDesc(nap, &funcs);
736 }
737
738 } // namespace
739
740 #define NACL_MOJO_DESC (NACL_CHROME_DESC_BASE + 2)
741
742 void InjectMojo(struct NaClApp* nap) {
743 NaClAppSetDesc(nap, NACL_MOJO_DESC, MakeMojoDesc(nap));
744 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698