Index: components/nacl/loader/nonsfi/irt_ppapi.cc |
diff --git a/components/nacl/loader/nonsfi/irt_ppapi.cc b/components/nacl/loader/nonsfi/irt_ppapi.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..e208f901c3e28fb2690b11b6712fb6a1067f2cde |
--- /dev/null |
+++ b/components/nacl/loader/nonsfi/irt_ppapi.cc |
@@ -0,0 +1,62 @@ |
+// 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 "base/logging.h" |
+ |
+#include "components/nacl/loader/nonsfi/irt_interfaces.h" |
+#include "native_client/src/untrusted/irt/irt_ppapi.h" |
+#include "ppapi/native_client/src/shared/ppapi_proxy/ppruntime.h" |
+#include "ppapi/shared_impl/ppb_audio_shared.h" |
+ |
+ |
+namespace nacl { |
+namespace nonsfi { |
+namespace { |
+ |
+struct PP_StartFunctions g_pp_functions; |
+ |
+int IrtPpapiStart(const struct PP_StartFunctions* funcs) { |
+ LOG(ERROR) << "NACL-PLUGIN: IrtPpapiStart"; |
+ g_pp_functions = *funcs; |
+ // TODO: g_is_main_thread = 1 ? |
+ return PpapiPluginMain(); |
+} |
+ |
+void PpapiPluginRegisterThreadCreator( |
+ const struct PP_ThreadFunctions* thread_functions) { |
+ // TODO |
+#if 0 |
+ ppapi::PPB_Audio_Shared::SetThreadFunctions(thread_functions); |
+#endif |
+} |
+ |
+} // namespace |
+ |
+const struct nacl_irt_ppapihook kIrtPpapiHook = { |
+ IrtPpapiStart, |
+ PpapiPluginRegisterThreadCreator, |
+}; |
+ |
+} // namespace nonsfi |
+} // namespace nacl |
+ |
+extern "C" { |
+int32_t PPP_InitializeModule(PP_Module module_id, |
+ PPB_GetInterface get_browser_interface) { |
+ return nacl::nonsfi::g_pp_functions.PPP_InitializeModule( |
+ module_id, get_browser_interface); |
+} |
+ |
+void PPP_ShutdownModule(void) { |
+ nacl::nonsfi::g_pp_functions.PPP_ShutdownModule(); |
+} |
+ |
+const void *PPP_GetInterface(const char *interface_name) { |
+ LOG(ERROR) << "NACL-PLUGIN: PPP_GetInterface: " << interface_name; |
+ const void* result = nacl::nonsfi::g_pp_functions.PPP_GetInterface( |
+ interface_name); |
+ LOG(ERROR) << "NACL-PLUGIN: PPP_GetInterface done: " << (uintptr_t)(result); |
+ return result; |
+} |
+} // extern "C" |