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 #include "mojo/nacl/monacl_sel_main.h" | 5 #include "mojo/nacl/monacl_sel_main.h" |
6 | 6 |
7 #include <stdio.h> | 7 #include <stdio.h> |
8 | 8 |
9 #include "mojo/nacl/mojo_syscall.h" | 9 #include "mojo/nacl/mojo_syscall.h" |
10 #include "native_client/src/public/chrome_main.h" | 10 #include "native_client/src/public/chrome_main.h" |
11 #include "native_client/src/public/nacl_app.h" | 11 #include "native_client/src/public/nacl_app.h" |
12 #include "native_client/src/trusted/desc/nacl_desc_io.h" | 12 #include "native_client/src/trusted/desc/nacl_desc_io.h" |
13 #include "native_client/src/trusted/service_runtime/include/sys/fcntl.h" | 13 #include "native_client/src/trusted/service_runtime/include/sys/fcntl.h" |
14 | 14 |
15 namespace mojo { | 15 namespace mojo { |
16 | 16 |
17 void LaunchNaCl(const char* nexe_file, const char* irt_file, | 17 void LaunchNaCl(const char* nexe_file, |
18 int app_argc, char* app_argv[]) { | 18 const char* irt_file, |
| 19 int app_argc, |
| 20 char* app_argv[], |
| 21 MojoHandle handle) { |
19 NaClChromeMainInit(); | 22 NaClChromeMainInit(); |
20 | 23 |
21 // Open the IRT. | 24 // Open the IRT. |
22 struct NaClDesc* irt_desc = (struct NaClDesc*) NaClDescIoDescOpen( | 25 struct NaClDesc* irt_desc = (struct NaClDesc*) NaClDescIoDescOpen( |
23 irt_file, NACL_ABI_O_RDONLY, 0); | 26 irt_file, NACL_ABI_O_RDONLY, 0); |
24 if (NULL == irt_desc) { | 27 if (NULL == irt_desc) { |
25 perror(irt_file); | 28 perror(irt_file); |
26 exit(1); | 29 exit(1); |
27 } | 30 } |
28 | 31 |
29 // Open the main executable. | 32 // Open the main executable. |
30 struct NaClDesc* nexe_desc = (struct NaClDesc*) NaClDescIoDescOpen( | 33 struct NaClDesc* nexe_desc = (struct NaClDesc*) NaClDescIoDescOpen( |
31 nexe_file, NACL_ABI_O_RDONLY, 0); | 34 nexe_file, NACL_ABI_O_RDONLY, 0); |
32 if (NULL == nexe_desc) { | 35 if (NULL == nexe_desc) { |
33 perror(nexe_file); | 36 perror(nexe_file); |
34 exit(1); | 37 exit(1); |
35 } | 38 } |
36 | 39 |
37 struct NaClChromeMainArgs* args = NaClChromeMainArgsCreate(); | 40 struct NaClChromeMainArgs* args = NaClChromeMainArgsCreate(); |
38 args->nexe_desc = nexe_desc; | 41 args->nexe_desc = nexe_desc; |
39 args->irt_desc = irt_desc; | 42 args->irt_desc = irt_desc; |
40 | 43 |
41 args->argc = app_argc; | 44 args->argc = app_argc; |
42 args->argv = app_argv; | 45 args->argv = app_argv; |
43 | 46 |
44 struct NaClApp* nap = NaClAppCreate(); | 47 struct NaClApp* nap = NaClAppCreate(); |
45 InjectMojo(nap); | 48 InjectMojo(nap, handle); |
46 | 49 |
47 int exit_status = 1; | 50 int exit_status = 1; |
48 NaClChromeMainStart(nap, args, &exit_status); | 51 NaClChromeMainStart(nap, args, &exit_status); |
49 NaClExit(exit_status); | 52 NaClExit(exit_status); |
50 } | 53 } |
51 | 54 |
52 } // namespace mojo | 55 } // namespace mojo |
OLD | NEW |