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

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

Powered by Google App Engine
This is Rietveld 408576698