1 /*
2  * Copyright (c) 2009 The Native Client Authors. All rights reserved.
3  * Use of this source code is governed by a BSD-style license that can be
4  * found in the LICENSE file.
5  */
6 
7 #ifndef NATIVE_CLIENT_SERVICE_RUNTIME_SEL_RT_H__
8 #define NATIVE_CLIENT_SERVICE_RUNTIME_SEL_RT_H__ 1
9 
10 #include "native_client/src/include/build_config.h"
11 #include "native_client/src/include/nacl_base.h"
12 
13 #if NACL_ARCH(NACL_BUILD_ARCH) == NACL_x86
14 #include "native_client/src/trusted/service_runtime/arch/x86/sel_rt.h"
15 #elif NACL_ARCH(NACL_BUILD_ARCH) == NACL_arm
16 #include "native_client/src/trusted/service_runtime/arch/arm/sel_rt.h"
17 #elif NACL_ARCH(NACL_BUILD_ARCH) == NACL_mips
18 #include "native_client/src/trusted/service_runtime/arch/mips/sel_rt.h"
19 #else
20 #error Unknown platform!
21 #endif
22 
23 EXTERN_C_BEGIN
24 
25 struct NaClApp;
26 struct NaClSignalContext;
27 
28 void NaClInitGlobals(void);
29 
30 uintptr_t NaClGetThreadCtxSp(struct NaClThreadContext *th_ctx);
31 
32 void NaClThreadContextToSignalContext(const struct NaClThreadContext *th_ctx,
33                                       struct NaClSignalContext *sig_ctx);
34 
35 void NaClSignalContextUnsetClobberedRegisters(
36     struct NaClSignalContext *sig_ctx);
37 
38 EXTERN_C_END
39 
40 #endif  /* NATIVE_CLIENT_SERVICE_RUNTIME_SEL_RT_H__ */
41