Chromium Code Reviews| 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 {{generator_warning}} | 5 {{generator_warning}} |
| 6 | 6 |
| 7 #include "{{bindings_dir}}/mojo_syscall.h" | 7 #include "{{bindings_dir}}/mojo_syscall.h" |
| 8 | 8 |
| 9 #include <stdio.h> | 9 #include <stdio.h> |
| 10 | 10 |
| 11 #include "mojo/public/c/system/core.h" | |
| 12 #include "mojo/public/platform/native/core_system_api.h" | |
| 11 #include "{{bindings_dir}}/mojo_syscall_internal.h" | 13 #include "{{bindings_dir}}/mojo_syscall_internal.h" |
| 12 #include "mojo/public/c/system/core.h" | |
| 13 #include "native_client/src/public/chrome_main.h" | 14 #include "native_client/src/public/chrome_main.h" |
| 14 #include "native_client/src/public/nacl_app.h" | 15 #include "native_client/src/public/nacl_app.h" |
| 15 #include "native_client/src/trusted/desc/nacl_desc_custom.h" | 16 #include "native_client/src/trusted/desc/nacl_desc_custom.h" |
| 16 | 17 |
| 17 MojoHandle g_mojo_handle = MOJO_HANDLE_INVALID; | 18 MojoHandle g_mojo_handle = MOJO_HANDLE_INVALID; |
| 19 MojoCoreHandle g_mojo_core = nullptr; | |
| 18 | 20 |
| 19 namespace { | 21 namespace { |
| 20 | 22 |
| 21 MojoResult _MojoGetInitialHandle(MojoHandle* handle) { | 23 MojoResult _MojoGetInitialHandle(MojoHandle* handle) { |
| 22 *handle = g_mojo_handle; | 24 *handle = g_mojo_handle; |
| 23 return MOJO_RESULT_OK; | 25 return MOJO_RESULT_OK; |
| 24 } | 26 } |
| 25 | 27 |
| 26 void MojoDescDestroy(void* handle) { | 28 void MojoDescDestroy(void* handle) { |
| 27 } | 29 } |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 89 return NaClDescMakeCustomDesc(nap, &funcs); | 91 return NaClDescMakeCustomDesc(nap, &funcs); |
| 90 } | 92 } |
| 91 | 93 |
| 92 } // namespace | 94 } // namespace |
| 93 | 95 |
| 94 // The value for this FD must not conflict with uses inside Chromium. However, | 96 // The value for this FD must not conflict with uses inside Chromium. However, |
| 95 // mojo/nacl doesn't depend on any Chromium headers, so we can't use a #define | 97 // mojo/nacl doesn't depend on any Chromium headers, so we can't use a #define |
| 96 // from there. | 98 // from there. |
| 97 #define NACL_MOJO_DESC (NACL_CHROME_DESC_BASE + 3) | 99 #define NACL_MOJO_DESC (NACL_CHROME_DESC_BASE + 3) |
| 98 | 100 |
| 99 void InjectMojo(struct NaClApp* nap) { | |
| 100 NaClAppSetDesc(nap, NACL_MOJO_DESC, MakeMojoDesc(nap)); | |
| 101 g_mojo_handle = MOJO_HANDLE_INVALID; | |
| 102 } | |
| 103 | |
| 104 void InjectMojo(struct NaClApp* nap, MojoHandle handle) { | 101 void InjectMojo(struct NaClApp* nap, MojoHandle handle) { |
| 105 NaClAppSetDesc(nap, NACL_MOJO_DESC, MakeMojoDesc(nap)); | 102 NaClAppSetDesc(nap, NACL_MOJO_DESC, MakeMojoDesc(nap)); |
| 106 g_mojo_handle = handle; | 103 g_mojo_core = MojoCoreCreateCore(); |
| 104 // TODO handle errors? | |
|
viettrungluu
2015/04/01 23:36:19
nit: "TODO(ncbray):"
Nick Bray (chromium)
2015/04/04 00:09:09
Done.
| |
| 105 MojoCoreTransferHandle(MojoCoreGetDefaultCore(), handle, g_mojo_core, &g_mojo_ handle); | |
|
viettrungluu
2015/04/01 23:36:19
80 cols
Nick Bray (chromium)
2015/04/04 00:09:09
Done.
| |
| 107 } | 106 } |
| 108 | 107 |
| 109 void InjectDisabledMojo(struct NaClApp* nap) { | 108 void InjectDisabledMojo(struct NaClApp* nap) { |
| 110 NaClAppSetDesc(nap, NACL_MOJO_DESC, MakeDisabledMojoDesc(nap)); | 109 NaClAppSetDesc(nap, NACL_MOJO_DESC, MakeDisabledMojoDesc(nap)); |
| 111 } | 110 } |
| OLD | NEW |