| // Copyright 2014 The Chromium Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | #include "nacl_bindings/monacl_sel_main.h" | 
 |  | 
 | #include "nacl_bindings/mojo_syscall.h" | 
 | #include "native_client/src/public/chrome_main.h" | 
 | #include "native_client/src/public/nacl_app.h" | 
 |  | 
 | namespace mojo { | 
 |  | 
 | int LaunchNaCl(NaClDesc* nexe_desc, | 
 |                NaClDesc* irt_desc, | 
 |                int app_argc, | 
 |                char* app_argv[], | 
 |                MojoHandle handle) { | 
 |   NaClChromeMainInit(); | 
 |  | 
 |   struct NaClChromeMainArgs* args = NaClChromeMainArgsCreate(); | 
 |   args->nexe_desc = nexe_desc; | 
 |   args->irt_desc = irt_desc; | 
 |  | 
 |   args->argc = app_argc; | 
 |   args->argv = app_argv; | 
 |  | 
 |   struct NaClApp* nap = NaClAppCreate(); | 
 |   InjectMojo(nap, handle); | 
 |  | 
 |   int exit_status = 1; | 
 |   NaClChromeMainStart(nap, args, &exit_status); | 
 |   return exit_status; | 
 | } | 
 |  | 
 | void NaClExit(int code) { | 
 |   ::NaClExit(code); | 
 | } | 
 |  | 
 | }  // namespace mojo |