OLD | NEW |
| (Empty) |
1 /* | |
2 * Copyright 2010 The Native Client Authors. All rights reserved. | |
3 * Use of this source code is governed by a BSD-style license that can | |
4 * be found in the LICENSE file. | |
5 */ | |
6 | |
7 // Routines for determining the most appropriate NaCl executable for | |
8 // the current CPU's architecture. | |
9 | |
10 #ifndef NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_NEXE_ARCH_H_ | |
11 #define NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_NEXE_ARCH_H_ | |
12 | |
13 #include "native_client/src/include/portability.h" | |
14 | |
15 namespace plugin { | |
16 // Returns the kind of SFI sandbox implemented by sel_ldr on this | |
17 // platform. See the implementation in nexe_arch.cc for possible values. | |
18 // | |
19 // This is a function of the current CPU, OS, browser, installed | |
20 // sel_ldr(s). It is not sufficient to derive the result only from | |
21 // build-time parameters since, for example, an x86-32 plugin is | |
22 // capable of launching a 64-bit NaCl sandbox if a 64-bit sel_ldr is | |
23 // installed (and indeed, may only be capable of launching a 64-bit | |
24 // sandbox). | |
25 // | |
26 // Note: The platform-sepcific implementations for this are under | |
27 // <platform>/nexe_arch.cc | |
28 const char* GetSandboxISA(); | |
29 } // namespace plugin | |
30 | |
31 #if defined(NACL_STANDALONE) | |
32 // These symbols are for linking with things like unit test frameworks that | |
33 // want to get at the C++ symbol names defined above in an un-mangled way. | |
34 // TODO(dspringer): Figure out how to link the shared libs with the test | |
35 // harness directly, and get rid of these wrappers. | |
36 EXTERN_C_BEGIN | |
37 DLLEXPORT const char* NaClPluginGetSandboxISA(); | |
38 EXTERN_C_END | |
39 #endif | |
40 | |
41 #endif // NATIVE_CLIENT_SRC_TRUSTED_PLUGIN_NEXE_ARCH_H_ | |
OLD | NEW |