irt_ppapi.cc revision c5cede9ae108bb15f6b7a8aea21c7e1fefa2834c
1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "base/logging.h"
6#include "components/nacl/loader/nonsfi/irt_interfaces.h"
7#include "ppapi/c/ppp.h"
8#include "ppapi/nacl_irt/plugin_main.h"
9#include "ppapi/nacl_irt/public/irt_ppapi.h"
10
11namespace nacl {
12namespace nonsfi {
13namespace {
14
15struct PP_StartFunctions g_pp_functions;
16
17int IrtPpapiStart(const struct PP_StartFunctions* funcs) {
18  g_pp_functions = *funcs;
19  return PpapiPluginMain();
20}
21
22}  // namespace
23
24const struct nacl_irt_ppapihook kIrtPpapiHook = {
25  IrtPpapiStart,
26  PpapiPluginRegisterThreadCreator,
27};
28
29}  // namespace nonsfi
30}  // namespace nacl
31
32int32_t PPP_InitializeModule(PP_Module module_id,
33                             PPB_GetInterface get_browser_interface) {
34  return nacl::nonsfi::g_pp_functions.PPP_InitializeModule(
35      module_id, get_browser_interface);
36}
37
38void PPP_ShutdownModule(void) {
39  nacl::nonsfi::g_pp_functions.PPP_ShutdownModule();
40}
41
42const void *PPP_GetInterface(const char *interface_name) {
43  return nacl::nonsfi::g_pp_functions.PPP_GetInterface(interface_name);
44}
45