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

Unified Diff: ppapi/nacl_irt/irt_interfaces.cc

Issue 1245893002: Reland of NaCl cleanup: Split out irt_interfaces.cc from irt_ppapi.cc (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 5 years, 5 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
« no previous file with comments | « ppapi/nacl_irt/irt_interfaces.h ('k') | ppapi/nacl_irt/irt_ppapi.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ppapi/nacl_irt/irt_interfaces.cc
diff --git a/ppapi/nacl_irt/irt_interfaces.cc b/ppapi/nacl_irt/irt_interfaces.cc
new file mode 100644
index 0000000000000000000000000000000000000000..77ce9d8415e03f277b0853b40c01fa8373cfc949
--- /dev/null
+++ b/ppapi/nacl_irt/irt_interfaces.cc
@@ -0,0 +1,70 @@
+// Copyright 2015 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 "ppapi/nacl_irt/irt_interfaces.h"
+
+#include <unistd.h>
+
+#include "build/build_config.h"
+#include "native_client/src/public/irt_core.h"
+#include "native_client/src/trusted/service_runtime/include/sys/unistd.h"
+#include "native_client/src/untrusted/irt/irt.h"
+#include "ppapi/nacl_irt/irt_manifest.h"
+#include "ppapi/nacl_irt/public/irt_ppapi.h"
+#include "ppapi/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.h"
+
+#if defined(OS_NACL_SFI)
+static int ppapihook_pnacl_private_filter(void) {
+ int pnacl_mode = sysconf(NACL_ABI__SC_NACL_PNACL_MODE);
+ if (pnacl_mode == -1)
+ return 0;
+ return pnacl_mode;
+}
+#endif
+
+static const nacl_irt_resource_open kIrtResourceOpen = {
+ ppapi::IrtOpenResource,
+};
+
+#if defined(OS_NACL_SFI)
+static int not_pnacl_filter(void) {
+ int pnacl_mode = sysconf(NACL_ABI__SC_NACL_PNACL_MODE);
+ if (pnacl_mode == -1)
+ return 0;
+ return !pnacl_mode;
+}
+#endif
+
+static const struct nacl_irt_interface irt_interfaces[] = {
+ { NACL_IRT_PPAPIHOOK_v0_1, &nacl_irt_ppapihook, sizeof(nacl_irt_ppapihook),
+ NULL },
+#if defined(OS_NACL_SFI)
+ { NACL_IRT_PPAPIHOOK_PNACL_PRIVATE_v0_1,
+ &nacl_irt_ppapihook_pnacl_private, sizeof(nacl_irt_ppapihook_pnacl_private),
+ ppapihook_pnacl_private_filter },
+#endif
+ { NACL_IRT_RESOURCE_OPEN_v0_1, &kIrtResourceOpen,
+ sizeof(kIrtResourceOpen),
+#if defined(OS_NACL_SFI)
+ not_pnacl_filter,
+#else
+ // If we change PNaCl to use Non-SFI Mode on the open web,
+ // we should add a filter here.
+ NULL,
+#endif
+ },
+};
+
+size_t chrome_irt_query(const char* interface_ident,
+ void* table, size_t tablesize) {
+ size_t result = nacl_irt_query_list(interface_ident,
+ table,
+ tablesize,
+ irt_interfaces,
+ sizeof(irt_interfaces));
+ if (result != 0)
+ return result;
+
+ return nacl_irt_query_core(interface_ident, table, tablesize);
+}
« no previous file with comments | « ppapi/nacl_irt/irt_interfaces.h ('k') | ppapi/nacl_irt/irt_ppapi.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698