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