| Index: mojo/nacl/monacl_sel_main.cc
|
| diff --git a/mojo/nacl/monacl_sel_main.cc b/mojo/nacl/monacl_sel_main.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4fbc5757b6992004b27587f64c6cdfd5ac6a658b
|
| --- /dev/null
|
| +++ b/mojo/nacl/monacl_sel_main.cc
|
| @@ -0,0 +1,52 @@
|
| +// 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 "mojo/nacl/monacl_sel_main.h"
|
| +
|
| +#include <stdio.h>
|
| +
|
| +#include "mojo/nacl/mojo_syscall.h"
|
| +#include "native_client/src/public/chrome_main.h"
|
| +#include "native_client/src/public/nacl_app.h"
|
| +#include "native_client/src/trusted/desc/nacl_desc_io.h"
|
| +#include "native_client/src/trusted/service_runtime/include/sys/fcntl.h"
|
| +
|
| +namespace mojo {
|
| +
|
| +void LaunchNaCl(const char* nexe_file, const char* irt_file,
|
| + int app_argc, char* app_argv[]) {
|
| + NaClChromeMainInit();
|
| +
|
| + // Open the IRT.
|
| + struct NaClDesc* irt_desc = (struct NaClDesc*) NaClDescIoDescOpen(
|
| + irt_file, NACL_ABI_O_RDONLY, 0);
|
| + if (NULL == irt_desc) {
|
| + perror(irt_file);
|
| + exit(1);
|
| + }
|
| +
|
| + // Open the main executable.
|
| + struct NaClDesc* nexe_desc = (struct NaClDesc*) NaClDescIoDescOpen(
|
| + nexe_file, NACL_ABI_O_RDONLY, 0);
|
| + if (NULL == nexe_desc) {
|
| + perror(nexe_file);
|
| + exit(1);
|
| + }
|
| +
|
| + 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);
|
| +
|
| + int exit_status = 1;
|
| + NaClChromeMainStart(nap, args, &exit_status);
|
| + NaClExit(exit_status);
|
| +}
|
| +
|
| +} // namespace mojo
|
|
|