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.
5 #include "build/build_config.h"
7 // We need nacl_irt_start injection in SFI mode. Non-SFI has a different
8 // start up procedure so we just exclude it.
9 #if defined(OS_NACL_SFI)
11 #include "base/at_exit.h"
12 #include "native_client/src/public/chrome_main.h"
13 #include "native_client/src/public/irt_core.h"
14 #include "ppapi/nacl_irt/irt_interfaces.h"
15 #include "ppapi/nacl_irt/plugin_startup.h"
17 void nacl_irt_start(uint32_t* info
) {
20 // Though it isn't referenced here, we must instantiate an AtExitManager.
21 base::AtExitManager exit_manager
;
23 // In SFI mode, the FDs of IPC channels are NACL_CHROME_DESC_BASE and its
24 // successor, which is set in nacl_listener.cc.
25 ppapi::SetIPCFileDescriptors(
26 NACL_CHROME_DESC_BASE
,
27 NACL_CHROME_DESC_BASE
+ 1,
28 NACL_CHROME_DESC_BASE
+ 2);
29 ppapi::StartUpPlugin();
31 nacl_irt_enter_user_code(info
, chrome_irt_query
);
34 #endif // defined(OS_NACL_SFI)