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 "nacl_bindings/mojo_syscall.h" | 8 #include "nacl_bindings/mojo_syscall.h" |
9 | 9 |
10 #include <stdio.h> | 10 #include <stdio.h> |
11 | 11 |
12 #include "mojo/public/c/system/core.h" | 12 #include "mojo/public/c/system/core.h" |
| 13 #include "mojo/public/platform/native/system_impl_private.h" |
13 #include "nacl_bindings/mojo_syscall_internal.h" | 14 #include "nacl_bindings/mojo_syscall_internal.h" |
14 #include "native_client/src/public/chrome_main.h" | 15 #include "native_client/src/public/chrome_main.h" |
15 #include "native_client/src/public/nacl_app.h" | 16 #include "native_client/src/public/nacl_app.h" |
16 #include "native_client/src/trusted/desc/nacl_desc_custom.h" | 17 #include "native_client/src/trusted/desc/nacl_desc_custom.h" |
17 | 18 |
18 MojoHandle g_mojo_handle = MOJO_HANDLE_INVALID; | 19 MojoHandle g_mojo_handle = MOJO_HANDLE_INVALID; |
| 20 MojoSystemImpl g_mojo_system = nullptr; |
19 | 21 |
20 namespace { | 22 namespace { |
21 | 23 |
22 MojoResult _MojoGetInitialHandle(MojoHandle* handle) { | 24 MojoResult _MojoGetInitialHandle(MojoHandle* handle) { |
23 *handle = g_mojo_handle; | 25 *handle = g_mojo_handle; |
24 return MOJO_RESULT_OK; | 26 return MOJO_RESULT_OK; |
25 } | 27 } |
26 | 28 |
27 void MojoDescDestroy(void* handle) { | 29 void MojoDescDestroy(void* handle) { |
28 } | 30 } |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
66 if (!ConvertScalarInOut(nap, params[3], false, | 68 if (!ConvertScalarInOut(nap, params[3], false, |
67 &shared_buffer_handle_value, | 69 &shared_buffer_handle_value, |
68 &shared_buffer_handle_ptr)) { | 70 &shared_buffer_handle_ptr)) { |
69 return -1; | 71 return -1; |
70 } | 72 } |
71 if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) { | 73 if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) { |
72 return -1; | 74 return -1; |
73 } | 75 } |
74 } | 76 } |
75 | 77 |
76 result_value = MojoCreateSharedBuffer(options, num_bytes_value, | 78 result_value = MojoSystemImplCreateSharedBuffer( |
77 &shared_buffer_handle_value); | 79 g_mojo_system, options, num_bytes_value, &shared_buffer_handle_value); |
78 | 80 |
79 { | 81 { |
80 ScopedCopyLock copy_lock(nap); | 82 ScopedCopyLock copy_lock(nap); |
81 *shared_buffer_handle_ptr = shared_buffer_handle_value; | 83 *shared_buffer_handle_ptr = shared_buffer_handle_value; |
82 *result_ptr = result_value; | 84 *result_ptr = result_value; |
83 } | 85 } |
84 | 86 |
85 return 0; | 87 return 0; |
86 } | 88 } |
87 case 1: { | 89 case 1: { |
(...skipping 16 matching lines...) Expand all Loading... |
104 } | 106 } |
105 if (!ConvertScalarInOut(nap, params[3], false, &new_buffer_handle_value, | 107 if (!ConvertScalarInOut(nap, params[3], false, &new_buffer_handle_value, |
106 &new_buffer_handle_ptr)) { | 108 &new_buffer_handle_ptr)) { |
107 return -1; | 109 return -1; |
108 } | 110 } |
109 if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) { | 111 if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) { |
110 return -1; | 112 return -1; |
111 } | 113 } |
112 } | 114 } |
113 | 115 |
114 result_value = MojoDuplicateBufferHandle(buffer_handle_value, options, | 116 result_value = MojoSystemImplDuplicateBufferHandle( |
115 &new_buffer_handle_value); | 117 g_mojo_system, buffer_handle_value, options, |
| 118 &new_buffer_handle_value); |
116 | 119 |
117 { | 120 { |
118 ScopedCopyLock copy_lock(nap); | 121 ScopedCopyLock copy_lock(nap); |
119 *new_buffer_handle_ptr = new_buffer_handle_value; | 122 *new_buffer_handle_ptr = new_buffer_handle_value; |
120 *result_ptr = result_value; | 123 *result_ptr = result_value; |
121 } | 124 } |
122 | 125 |
123 return 0; | 126 return 0; |
124 } | 127 } |
125 case 2: | 128 case 2: |
(...skipping 26 matching lines...) Expand all Loading... |
152 if (!ConvertScalarInOut(nap, params[3], false, | 155 if (!ConvertScalarInOut(nap, params[3], false, |
153 &data_pipe_consumer_handle_value, | 156 &data_pipe_consumer_handle_value, |
154 &data_pipe_consumer_handle_ptr)) { | 157 &data_pipe_consumer_handle_ptr)) { |
155 return -1; | 158 return -1; |
156 } | 159 } |
157 if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) { | 160 if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) { |
158 return -1; | 161 return -1; |
159 } | 162 } |
160 } | 163 } |
161 | 164 |
162 result_value = | 165 result_value = MojoSystemImplCreateDataPipe( |
163 MojoCreateDataPipe(options, &data_pipe_producer_handle_value, | 166 g_mojo_system, options, &data_pipe_producer_handle_value, |
164 &data_pipe_consumer_handle_value); | 167 &data_pipe_consumer_handle_value); |
165 | 168 |
166 { | 169 { |
167 ScopedCopyLock copy_lock(nap); | 170 ScopedCopyLock copy_lock(nap); |
168 *data_pipe_producer_handle_ptr = data_pipe_producer_handle_value; | 171 *data_pipe_producer_handle_ptr = data_pipe_producer_handle_value; |
169 *data_pipe_consumer_handle_ptr = data_pipe_consumer_handle_value; | 172 *data_pipe_consumer_handle_ptr = data_pipe_consumer_handle_value; |
170 *result_ptr = result_value; | 173 *result_ptr = result_value; |
171 } | 174 } |
172 | 175 |
173 return 0; | 176 return 0; |
174 } | 177 } |
(...skipping 23 matching lines...) Expand all Loading... |
198 } | 201 } |
199 if (!ConvertScalarOutput(nap, params[5], false, &result_ptr)) { | 202 if (!ConvertScalarOutput(nap, params[5], false, &result_ptr)) { |
200 return -1; | 203 return -1; |
201 } | 204 } |
202 if (!ConvertArray(nap, params[2], num_bytes_value, 1, false, | 205 if (!ConvertArray(nap, params[2], num_bytes_value, 1, false, |
203 &elements)) { | 206 &elements)) { |
204 return -1; | 207 return -1; |
205 } | 208 } |
206 } | 209 } |
207 | 210 |
208 result_value = MojoWriteData(data_pipe_producer_handle_value, elements, | 211 result_value = MojoSystemImplWriteData( |
209 &num_bytes_value, flags_value); | 212 g_mojo_system, data_pipe_producer_handle_value, elements, |
| 213 &num_bytes_value, flags_value); |
210 | 214 |
211 { | 215 { |
212 ScopedCopyLock copy_lock(nap); | 216 ScopedCopyLock copy_lock(nap); |
213 *num_bytes_ptr = num_bytes_value; | 217 *num_bytes_ptr = num_bytes_value; |
214 *result_ptr = result_value; | 218 *result_ptr = result_value; |
215 } | 219 } |
216 | 220 |
217 return 0; | 221 return 0; |
218 } | 222 } |
219 case 6: | 223 case 6: |
(...skipping 14 matching lines...) Expand all Loading... |
234 return -1; | 238 return -1; |
235 } | 239 } |
236 if (!ConvertScalarInput(nap, params[2], &num_bytes_written_value)) { | 240 if (!ConvertScalarInput(nap, params[2], &num_bytes_written_value)) { |
237 return -1; | 241 return -1; |
238 } | 242 } |
239 if (!ConvertScalarOutput(nap, params[3], false, &result_ptr)) { | 243 if (!ConvertScalarOutput(nap, params[3], false, &result_ptr)) { |
240 return -1; | 244 return -1; |
241 } | 245 } |
242 } | 246 } |
243 | 247 |
244 result_value = MojoEndWriteData(data_pipe_producer_handle_value, | 248 result_value = MojoSystemImplEndWriteData(g_mojo_system, |
245 num_bytes_written_value); | 249 data_pipe_producer_handle_value, |
| 250 num_bytes_written_value); |
246 | 251 |
247 { | 252 { |
248 ScopedCopyLock copy_lock(nap); | 253 ScopedCopyLock copy_lock(nap); |
249 *result_ptr = result_value; | 254 *result_ptr = result_value; |
250 } | 255 } |
251 | 256 |
252 return 0; | 257 return 0; |
253 } | 258 } |
254 case 8: { | 259 case 8: { |
255 if (num_params != 6) { | 260 if (num_params != 6) { |
(...skipping 21 matching lines...) Expand all Loading... |
277 } | 282 } |
278 if (!ConvertScalarOutput(nap, params[5], false, &result_ptr)) { | 283 if (!ConvertScalarOutput(nap, params[5], false, &result_ptr)) { |
279 return -1; | 284 return -1; |
280 } | 285 } |
281 if (!ConvertArray(nap, params[2], num_bytes_value, 1, false, | 286 if (!ConvertArray(nap, params[2], num_bytes_value, 1, false, |
282 &elements)) { | 287 &elements)) { |
283 return -1; | 288 return -1; |
284 } | 289 } |
285 } | 290 } |
286 | 291 |
287 result_value = MojoReadData(data_pipe_consumer_handle_value, elements, | 292 result_value = |
288 &num_bytes_value, flags_value); | 293 MojoSystemImplReadData(g_mojo_system, data_pipe_consumer_handle_value, |
| 294 elements, &num_bytes_value, flags_value); |
289 | 295 |
290 { | 296 { |
291 ScopedCopyLock copy_lock(nap); | 297 ScopedCopyLock copy_lock(nap); |
292 *num_bytes_ptr = num_bytes_value; | 298 *num_bytes_ptr = num_bytes_value; |
293 *result_ptr = result_value; | 299 *result_ptr = result_value; |
294 } | 300 } |
295 | 301 |
296 return 0; | 302 return 0; |
297 } | 303 } |
298 case 9: | 304 case 9: |
(...skipping 14 matching lines...) Expand all Loading... |
313 return -1; | 319 return -1; |
314 } | 320 } |
315 if (!ConvertScalarInput(nap, params[2], &num_bytes_read_value)) { | 321 if (!ConvertScalarInput(nap, params[2], &num_bytes_read_value)) { |
316 return -1; | 322 return -1; |
317 } | 323 } |
318 if (!ConvertScalarOutput(nap, params[3], false, &result_ptr)) { | 324 if (!ConvertScalarOutput(nap, params[3], false, &result_ptr)) { |
319 return -1; | 325 return -1; |
320 } | 326 } |
321 } | 327 } |
322 | 328 |
323 result_value = MojoEndReadData(data_pipe_consumer_handle_value, | 329 result_value = MojoSystemImplEndReadData( |
324 num_bytes_read_value); | 330 g_mojo_system, data_pipe_consumer_handle_value, num_bytes_read_value); |
325 | 331 |
326 { | 332 { |
327 ScopedCopyLock copy_lock(nap); | 333 ScopedCopyLock copy_lock(nap); |
328 *result_ptr = result_value; | 334 *result_ptr = result_value; |
329 } | 335 } |
330 | 336 |
331 return 0; | 337 return 0; |
332 } | 338 } |
333 case 11: { | 339 case 11: { |
334 if (num_params != 2) { | 340 if (num_params != 2) { |
335 return -1; | 341 return -1; |
336 } | 342 } |
337 MojoTimeTicks volatile* result_ptr; | 343 MojoTimeTicks volatile* result_ptr; |
338 MojoTimeTicks result_value; | 344 MojoTimeTicks result_value; |
339 { | 345 { |
340 ScopedCopyLock copy_lock(nap); | 346 ScopedCopyLock copy_lock(nap); |
341 if (!ConvertScalarOutput(nap, params[1], false, &result_ptr)) { | 347 if (!ConvertScalarOutput(nap, params[1], false, &result_ptr)) { |
342 return -1; | 348 return -1; |
343 } | 349 } |
344 } | 350 } |
345 | 351 |
346 result_value = MojoGetTimeTicksNow(); | 352 result_value = MojoSystemImplGetTimeTicksNow(g_mojo_system); |
347 | 353 |
348 { | 354 { |
349 ScopedCopyLock copy_lock(nap); | 355 ScopedCopyLock copy_lock(nap); |
350 *result_ptr = result_value; | 356 *result_ptr = result_value; |
351 } | 357 } |
352 | 358 |
353 return 0; | 359 return 0; |
354 } | 360 } |
355 case 12: { | 361 case 12: { |
356 if (num_params != 3) { | 362 if (num_params != 3) { |
357 return -1; | 363 return -1; |
358 } | 364 } |
359 MojoHandle handle_value; | 365 MojoHandle handle_value; |
360 MojoResult volatile* result_ptr; | 366 MojoResult volatile* result_ptr; |
361 MojoResult result_value; | 367 MojoResult result_value; |
362 { | 368 { |
363 ScopedCopyLock copy_lock(nap); | 369 ScopedCopyLock copy_lock(nap); |
364 if (!ConvertScalarInput(nap, params[1], &handle_value)) { | 370 if (!ConvertScalarInput(nap, params[1], &handle_value)) { |
365 return -1; | 371 return -1; |
366 } | 372 } |
367 if (!ConvertScalarOutput(nap, params[2], false, &result_ptr)) { | 373 if (!ConvertScalarOutput(nap, params[2], false, &result_ptr)) { |
368 return -1; | 374 return -1; |
369 } | 375 } |
370 } | 376 } |
371 | 377 |
372 result_value = MojoClose(handle_value); | 378 result_value = MojoSystemImplClose(g_mojo_system, handle_value); |
373 | 379 |
374 { | 380 { |
375 ScopedCopyLock copy_lock(nap); | 381 ScopedCopyLock copy_lock(nap); |
376 *result_ptr = result_value; | 382 *result_ptr = result_value; |
377 } | 383 } |
378 | 384 |
379 return 0; | 385 return 0; |
380 } | 386 } |
381 case 13: { | 387 case 13: { |
382 if (num_params != 6) { | 388 if (num_params != 6) { |
(...skipping 18 matching lines...) Expand all Loading... |
401 return -1; | 407 return -1; |
402 } | 408 } |
403 if (!ConvertScalarOutput(nap, params[4], true, &signals_state_ptr)) { | 409 if (!ConvertScalarOutput(nap, params[4], true, &signals_state_ptr)) { |
404 return -1; | 410 return -1; |
405 } | 411 } |
406 if (!ConvertScalarOutput(nap, params[5], false, &result_ptr)) { | 412 if (!ConvertScalarOutput(nap, params[5], false, &result_ptr)) { |
407 return -1; | 413 return -1; |
408 } | 414 } |
409 } | 415 } |
410 | 416 |
411 result_value = MojoWait(handle_value, signals_value, deadline_value, | 417 result_value = MojoSystemImplWait( |
412 signals_state_ptr ? &signals_state_value : NULL); | 418 g_mojo_system, handle_value, signals_value, deadline_value, |
| 419 signals_state_ptr ? &signals_state_value : NULL); |
413 | 420 |
414 { | 421 { |
415 ScopedCopyLock copy_lock(nap); | 422 ScopedCopyLock copy_lock(nap); |
416 if (signals_state_ptr != NULL) { | 423 if (signals_state_ptr != NULL) { |
417 memcpy_volatile_out(signals_state_ptr, &signals_state_value, | 424 memcpy_volatile_out(signals_state_ptr, &signals_state_value, |
418 sizeof(MojoHandleSignalsState)); | 425 sizeof(MojoHandleSignalsState)); |
419 } | 426 } |
420 *result_ptr = result_value; | 427 *result_ptr = result_value; |
421 } | 428 } |
422 | 429 |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
457 if (!ConvertArray(nap, params[2], num_handles_value, sizeof(*signals), | 464 if (!ConvertArray(nap, params[2], num_handles_value, sizeof(*signals), |
458 false, &signals)) { | 465 false, &signals)) { |
459 return -1; | 466 return -1; |
460 } | 467 } |
461 if (!ConvertArray(nap, params[6], num_handles_value, | 468 if (!ConvertArray(nap, params[6], num_handles_value, |
462 sizeof(*signals_states), true, &signals_states)) { | 469 sizeof(*signals_states), true, &signals_states)) { |
463 return -1; | 470 return -1; |
464 } | 471 } |
465 } | 472 } |
466 | 473 |
467 result_value = MojoWaitMany( | 474 result_value = MojoSystemImplWaitMany( |
468 handles, signals, num_handles_value, deadline_value, | 475 g_mojo_system, handles, signals, num_handles_value, deadline_value, |
469 result_index_ptr ? &result_index_value : NULL, signals_states); | 476 result_index_ptr ? &result_index_value : NULL, signals_states); |
470 | 477 |
471 { | 478 { |
472 ScopedCopyLock copy_lock(nap); | 479 ScopedCopyLock copy_lock(nap); |
473 if (result_index_ptr != NULL) { | 480 if (result_index_ptr != NULL) { |
474 *result_index_ptr = result_index_value; | 481 *result_index_ptr = result_index_value; |
475 } | 482 } |
476 *result_ptr = result_value; | 483 *result_ptr = result_value; |
477 } | 484 } |
478 | 485 |
(...skipping 23 matching lines...) Expand all Loading... |
502 if (!ConvertScalarInOut(nap, params[3], false, | 509 if (!ConvertScalarInOut(nap, params[3], false, |
503 &message_pipe_handle1_value, | 510 &message_pipe_handle1_value, |
504 &message_pipe_handle1_ptr)) { | 511 &message_pipe_handle1_ptr)) { |
505 return -1; | 512 return -1; |
506 } | 513 } |
507 if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) { | 514 if (!ConvertScalarOutput(nap, params[4], false, &result_ptr)) { |
508 return -1; | 515 return -1; |
509 } | 516 } |
510 } | 517 } |
511 | 518 |
512 result_value = MojoCreateMessagePipe(options, &message_pipe_handle0_value, | 519 result_value = MojoSystemImplCreateMessagePipe( |
513 &message_pipe_handle1_value); | 520 g_mojo_system, options, &message_pipe_handle0_value, |
| 521 &message_pipe_handle1_value); |
514 | 522 |
515 { | 523 { |
516 ScopedCopyLock copy_lock(nap); | 524 ScopedCopyLock copy_lock(nap); |
517 *message_pipe_handle0_ptr = message_pipe_handle0_value; | 525 *message_pipe_handle0_ptr = message_pipe_handle0_value; |
518 *message_pipe_handle1_ptr = message_pipe_handle1_value; | 526 *message_pipe_handle1_ptr = message_pipe_handle1_value; |
519 *result_ptr = result_value; | 527 *result_ptr = result_value; |
520 } | 528 } |
521 | 529 |
522 return 0; | 530 return 0; |
523 } | 531 } |
(...skipping 28 matching lines...) Expand all Loading... |
552 } | 560 } |
553 if (!ConvertArray(nap, params[2], num_bytes_value, 1, true, &bytes)) { | 561 if (!ConvertArray(nap, params[2], num_bytes_value, 1, true, &bytes)) { |
554 return -1; | 562 return -1; |
555 } | 563 } |
556 if (!ConvertArray(nap, params[4], num_handles_value, sizeof(*handles), | 564 if (!ConvertArray(nap, params[4], num_handles_value, sizeof(*handles), |
557 true, &handles)) { | 565 true, &handles)) { |
558 return -1; | 566 return -1; |
559 } | 567 } |
560 } | 568 } |
561 | 569 |
562 result_value = | 570 result_value = MojoSystemImplWriteMessage( |
563 MojoWriteMessage(message_pipe_handle_value, bytes, num_bytes_value, | 571 g_mojo_system, message_pipe_handle_value, bytes, num_bytes_value, |
564 handles, num_handles_value, flags_value); | 572 handles, num_handles_value, flags_value); |
565 | 573 |
566 { | 574 { |
567 ScopedCopyLock copy_lock(nap); | 575 ScopedCopyLock copy_lock(nap); |
568 *result_ptr = result_value; | 576 *result_ptr = result_value; |
569 } | 577 } |
570 | 578 |
571 return 0; | 579 return 0; |
572 } | 580 } |
573 case 17: { | 581 case 17: { |
574 if (num_params != 8) { | 582 if (num_params != 8) { |
(...skipping 30 matching lines...) Expand all Loading... |
605 } | 613 } |
606 if (!ConvertArray(nap, params[2], num_bytes_value, 1, true, &bytes)) { | 614 if (!ConvertArray(nap, params[2], num_bytes_value, 1, true, &bytes)) { |
607 return -1; | 615 return -1; |
608 } | 616 } |
609 if (!ConvertArray(nap, params[4], num_handles_value, sizeof(*handles), | 617 if (!ConvertArray(nap, params[4], num_handles_value, sizeof(*handles), |
610 true, &handles)) { | 618 true, &handles)) { |
611 return -1; | 619 return -1; |
612 } | 620 } |
613 } | 621 } |
614 | 622 |
615 result_value = MojoReadMessage( | 623 result_value = MojoSystemImplReadMessage( |
616 message_pipe_handle_value, bytes, | 624 g_mojo_system, message_pipe_handle_value, bytes, |
617 num_bytes_ptr ? &num_bytes_value : NULL, handles, | 625 num_bytes_ptr ? &num_bytes_value : NULL, handles, |
618 num_handles_ptr ? &num_handles_value : NULL, flags_value); | 626 num_handles_ptr ? &num_handles_value : NULL, flags_value); |
619 | 627 |
620 { | 628 { |
621 ScopedCopyLock copy_lock(nap); | 629 ScopedCopyLock copy_lock(nap); |
622 if (num_bytes_ptr != NULL) { | 630 if (num_bytes_ptr != NULL) { |
623 *num_bytes_ptr = num_bytes_value; | 631 *num_bytes_ptr = num_bytes_value; |
624 } | 632 } |
625 if (num_handles_ptr != NULL) { | 633 if (num_handles_ptr != NULL) { |
626 *num_handles_ptr = num_handles_value; | 634 *num_handles_ptr = num_handles_value; |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
703 return NaClDescMakeCustomDesc(nap, &funcs); | 711 return NaClDescMakeCustomDesc(nap, &funcs); |
704 } | 712 } |
705 | 713 |
706 } // namespace | 714 } // namespace |
707 | 715 |
708 // The value for this FD must not conflict with uses inside Chromium. However, | 716 // The value for this FD must not conflict with uses inside Chromium. However, |
709 // mojo/nacl doesn't depend on any Chromium headers, so we can't use a #define | 717 // mojo/nacl doesn't depend on any Chromium headers, so we can't use a #define |
710 // from there. | 718 // from there. |
711 #define NACL_MOJO_DESC (NACL_CHROME_DESC_BASE + 3) | 719 #define NACL_MOJO_DESC (NACL_CHROME_DESC_BASE + 3) |
712 | 720 |
713 void InjectMojo(struct NaClApp* nap) { | |
714 NaClAppSetDesc(nap, NACL_MOJO_DESC, MakeMojoDesc(nap)); | |
715 g_mojo_handle = MOJO_HANDLE_INVALID; | |
716 } | |
717 | |
718 void InjectMojo(struct NaClApp* nap, MojoHandle handle) { | 721 void InjectMojo(struct NaClApp* nap, MojoHandle handle) { |
719 NaClAppSetDesc(nap, NACL_MOJO_DESC, MakeMojoDesc(nap)); | 722 NaClAppSetDesc(nap, NACL_MOJO_DESC, MakeMojoDesc(nap)); |
720 g_mojo_handle = handle; | 723 g_mojo_system = MojoSystemImplCreateImpl(); |
| 724 // TODO(ncbray): handle errors? |
| 725 MojoSystemImplTransferHandle(MojoSystemImplGetDefaultImpl(), handle, |
| 726 g_mojo_system, &g_mojo_handle); |
721 } | 727 } |
722 | 728 |
723 void InjectDisabledMojo(struct NaClApp* nap) { | 729 void InjectDisabledMojo(struct NaClApp* nap) { |
724 NaClAppSetDesc(nap, NACL_MOJO_DESC, MakeDisabledMojoDesc(nap)); | 730 NaClAppSetDesc(nap, NACL_MOJO_DESC, MakeDisabledMojoDesc(nap)); |
725 } | 731 } |
OLD | NEW |