diff options
-rw-r--r-- | components/nacl/loader/nonsfi/nonsfi_main.cc | 2 | ||||
-rw-r--r-- | ppapi/nacl_irt/irt_interfaces.cc | 70 | ||||
-rw-r--r-- | ppapi/nacl_irt/irt_interfaces.h | 15 | ||||
-rw-r--r-- | ppapi/nacl_irt/irt_ppapi.cc | 65 | ||||
-rw-r--r-- | ppapi/nacl_irt/irt_ppapi.h | 3 | ||||
-rw-r--r-- | ppapi/nacl_irt/irt_start.cc | 2 | ||||
-rw-r--r-- | ppapi/ppapi_proxy.gypi | 2 | ||||
-rw-r--r-- | ppapi/proxy/BUILD.gn | 2 |
8 files changed, 68 insertions, 93 deletions
diff --git a/components/nacl/loader/nonsfi/nonsfi_main.cc b/components/nacl/loader/nonsfi/nonsfi_main.cc index 4fdb77a..6781514a 100644 --- a/components/nacl/loader/nonsfi/nonsfi_main.cc +++ b/components/nacl/loader/nonsfi/nonsfi_main.cc @@ -11,7 +11,7 @@ #if defined(OS_NACL_NONSFI) #include "native_client/src/public/nonsfi/elf_loader.h" -#include "ppapi/nacl_irt/irt_interfaces.h" +#include "ppapi/nacl_irt/irt_ppapi.h" #else #include "base/memory/scoped_ptr.h" #include "components/nacl/loader/nonsfi/elf_loader.h" diff --git a/ppapi/nacl_irt/irt_interfaces.cc b/ppapi/nacl_irt/irt_interfaces.cc deleted file mode 100644 index 77ce9d8..0000000 --- a/ppapi/nacl_irt/irt_interfaces.cc +++ /dev/null @@ -1,70 +0,0 @@ -// 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); -} diff --git a/ppapi/nacl_irt/irt_interfaces.h b/ppapi/nacl_irt/irt_interfaces.h deleted file mode 100644 index 0971900..0000000 --- a/ppapi/nacl_irt/irt_interfaces.h +++ /dev/null @@ -1,15 +0,0 @@ -// 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. - -#ifndef PPAPI_NACL_IRT_IRT_INTERFACES_H_ -#define PPAPI_NACL_IRT_IRT_INTERFACES_H_ - -#include <stdlib.h> - -extern const struct nacl_irt_ppapihook nacl_irt_ppapihook; - -size_t chrome_irt_query(const char* interface_ident, - void* table, size_t tablesize); - -#endif // PPAPI_NACL_IRT_IRT_INTERFACES_H_ diff --git a/ppapi/nacl_irt/irt_ppapi.cc b/ppapi/nacl_irt/irt_ppapi.cc index 7cdf589..a9c13eb 100644 --- a/ppapi/nacl_irt/irt_ppapi.cc +++ b/ppapi/nacl_irt/irt_ppapi.cc @@ -2,11 +2,17 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include <unistd.h> + #include "build/build_config.h" -#include "ppapi/nacl_irt/irt_interfaces.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/irt_ppapi.h" #include "ppapi/nacl_irt/plugin_main.h" #include "ppapi/nacl_irt/public/irt_ppapi.h" +#include "ppapi/native_client/src/untrusted/pnacl_irt_shim/irt_shim_ppapi.h" static struct PP_StartFunctions g_pp_functions; @@ -28,7 +34,62 @@ const void* PPP_GetInterface(const char* interface_name) { return g_pp_functions.PPP_GetInterface(interface_name); } -const struct nacl_irt_ppapihook nacl_irt_ppapihook = { +static const struct nacl_irt_ppapihook nacl_irt_ppapihook = { irt_ppapi_start, PpapiPluginRegisterThreadCreator, }; + +#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); +} diff --git a/ppapi/nacl_irt/irt_ppapi.h b/ppapi/nacl_irt/irt_ppapi.h index d65bede2..bc2e74c 100644 --- a/ppapi/nacl_irt/irt_ppapi.h +++ b/ppapi/nacl_irt/irt_ppapi.h @@ -7,4 +7,7 @@ extern "C" int irt_ppapi_start(const struct PP_StartFunctions* funcs); +size_t chrome_irt_query(const char* interface_ident, + void* table, size_t tablesize); + #endif // PPAPI_NACL_IRT_IRT_PPAPI_H_ diff --git a/ppapi/nacl_irt/irt_start.cc b/ppapi/nacl_irt/irt_start.cc index 82765c8..f199de1 100644 --- a/ppapi/nacl_irt/irt_start.cc +++ b/ppapi/nacl_irt/irt_start.cc @@ -11,7 +11,7 @@ #include "base/at_exit.h" #include "native_client/src/public/chrome_main.h" #include "native_client/src/public/irt_core.h" -#include "ppapi/nacl_irt/irt_interfaces.h" +#include "ppapi/nacl_irt/irt_ppapi.h" #include "ppapi/nacl_irt/plugin_startup.h" void nacl_irt_start(uint32_t* info) { diff --git a/ppapi/ppapi_proxy.gypi b/ppapi/ppapi_proxy.gypi index bfb3b5c..d099e0a 100644 --- a/ppapi/ppapi_proxy.gypi +++ b/ppapi/ppapi_proxy.gypi @@ -253,8 +253,6 @@ 'target_conditions': [ ['>(nacl_untrusted_build)==1', { 'sources': [ - 'nacl_irt/irt_interfaces.cc', - 'nacl_irt/irt_interfaces.h', 'nacl_irt/irt_ppapi.cc', 'nacl_irt/irt_ppapi.h', 'nacl_irt/irt_start.cc', diff --git a/ppapi/proxy/BUILD.gn b/ppapi/proxy/BUILD.gn index c9de244..8e26008 100644 --- a/ppapi/proxy/BUILD.gn +++ b/ppapi/proxy/BUILD.gn @@ -196,8 +196,6 @@ component("proxy") { if (is_nacl) { sources += [ - "../nacl_irt/irt_interfaces.cc", - "../nacl_irt/irt_interfaces.h", "../nacl_irt/irt_ppapi.cc", "../nacl_irt/irt_ppapi.h", "../nacl_irt/irt_start.cc", |