| 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 |