Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(96)

Unified Diff: mojo/nacl/mojo_interface_nacl_nonsfi.cc

Issue 1323823002: Adding nonsfi content handler (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Responding to Code Review Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: mojo/nacl/mojo_interface_nacl_nonsfi.cc
diff --git a/mojo/nacl/monacl_shell_nonsfi.cc b/mojo/nacl/mojo_interface_nacl_nonsfi.cc
similarity index 52%
copy from mojo/nacl/monacl_shell_nonsfi.cc
copy to mojo/nacl/mojo_interface_nacl_nonsfi.cc
index 3bacf9642812107f66112334aa507b69553ae4e2..fe207fe6382643d3d63160426bf41d970e0bd41f 100644
--- a/mojo/nacl/monacl_shell_nonsfi.cc
+++ b/mojo/nacl/mojo_interface_nacl_nonsfi.cc
@@ -2,17 +2,24 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include <fcntl.h>
-#include <iostream>
-
-#include "mojo/edk/embedder/embedder.h"
-#include "mojo/edk/embedder/simple_platform_support.h"
-#include "mojo/public/platform/nacl/mojo_irt.h"
-#include "native_client/src/public/irt_core.h"
-#include "native_client/src/public/nonsfi/elf_loader.h"
+#include "mojo_interface_nacl_nonsfi.h"
namespace {
+MojoHandle g_mojo_handle = MOJO_HANDLE_INVALID;
Sean Klein 2015/09/01 20:24:48 Is there potentially an issue with having a single
Mark Seaborn 2015/09/01 21:05:46 Yes. We don't really want to run multiple nexes i
Sean Klein 2015/09/01 22:55:27 Acknowledged.
+
+MojoResult _MojoGetInitialHandle(MojoHandle* handle) {
+ // TODO(smklein): Test this handle
Mark Seaborn 2015/09/01 21:05:46 Nit: I would avoid TODOs where the TODO would be a
Sean Klein 2015/09/01 22:55:26 Done.
+ *handle = g_mojo_handle;
+ return MOJO_RESULT_OK;
+}
+
+} // namespace
+
+void mojo_set_initial_handle(MojoHandle handle) {
+ g_mojo_handle = handle;
+}
+
const struct nacl_irt_mojo kIrtMojo = {
MojoCreateSharedBuffer,
MojoDuplicateBufferHandle,
@@ -32,7 +39,7 @@ const struct nacl_irt_mojo kIrtMojo = {
MojoCreateMessagePipe,
MojoWriteMessage,
MojoReadMessage,
- nullptr, // TODO(smklein): Add _MojoGetInitialHandle.
+ _MojoGetInitialHandle,
};
const struct nacl_irt_interface kIrtInterfaces[] = {
@@ -50,28 +57,3 @@ size_t mojo_irt_nonsfi_query(const char* interface_ident,
return result;
return nacl_irt_query_core(interface_ident, table, tablesize);
}
-
-} // namespace
-
-int main(int argc, char** argv, char** environ) {
- nacl_irt_nonsfi_allow_dev_interfaces();
- if (argc < 2) {
- std::cerr << "Usage: " << argv[0] << " <executable> <args...>\n";
- return 1;
- }
- const char* nexe_filename = argv[1];
- int fd = open(nexe_filename, O_RDONLY);
- if (fd < 0) {
- std::cerr << "Failed to open " << nexe_filename << ": " <<
- strerror(errno) << "\n";
- return 1;
- }
- uintptr_t entry = NaClLoadElfFile(fd);
-
- mojo::embedder::Init(scoped_ptr<mojo::embedder::PlatformSupport>(
- new mojo::embedder::SimplePlatformSupport()));
-
- return nacl_irt_nonsfi_entry(argc - 1, argv + 1, environ,
- reinterpret_cast<nacl_entry_func_t>(entry),
- mojo_irt_nonsfi_query);
-}

Powered by Google App Engine
This is Rietveld 408576698