Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(898)

Side by Side Diff: src/nonsfi/linux/nonsfi_signal.h

Issue 1212613002: Non-SFI mode: Add Linux asynchronous signal support (Closed) Base URL: https://chromium.googlesource.com/native_client/src/native_client.git@master
Patch Set: Disabled the async signal test for glibc Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright (c) 2015 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_SRC_NONSFI_LINUX_NONSFI_SIGNAL_H_
8 #define NATIVE_CLIENT_SRC_NONSFI_LINUX_NONSFI_SIGNAL_H_ 1
9
10 #include "native_client/src/include/nacl/nacl_exception.h"
11
12 EXTERN_C_BEGIN
13
14 #if defined(__i386__)
15
16 /* From linux/arch/x86/include/uapi/asm/sigcontext32.h */
17 struct sigcontext_ia32 {
18 uint16_t gs, __gsh;
19 uint16_t fs, __fsh;
20 uint16_t es, __esh;
21 uint16_t ds, __dsh;
22 uint32_t di;
23 uint32_t si;
24 uint32_t bp;
25 uint32_t sp;
26 uint32_t bx;
27 uint32_t dx;
28 uint32_t cx;
29 uint32_t ax;
30 uint32_t trapno;
31 uint32_t err;
32 uint32_t ip;
33 uint16_t cs, __csh;
34 uint32_t flags;
35 uint32_t sp_at_signal;
36 uint16_t ss, __ssh;
37 uint32_t fpstate;
38 uint32_t oldmask;
39 uint32_t cr2;
40 };
41
42 typedef struct sigcontext_ia32 linux_mcontext_t;
43
44 #elif defined(__arm__)
45
46 /* From linux/arch/arm/include/uapi/asm/sigcontext.h */
47 struct sigcontext_arm {
48 uint32_t trap_no;
49 uint32_t error_code;
50 uint32_t oldmask;
51 uint32_t arm_r0;
52 uint32_t arm_r1;
53 uint32_t arm_r2;
54 uint32_t arm_r3;
55 uint32_t arm_r4;
56 uint32_t arm_r5;
57 uint32_t arm_r6;
58 uint32_t arm_r7;
59 uint32_t arm_r8;
60 uint32_t arm_r9;
61 uint32_t arm_r10;
62 uint32_t arm_r11; /* fp */
63 uint32_t arm_r12; /* ip */
64 uint32_t arm_sp;
65 uint32_t arm_lr;
66 uint32_t arm_pc;
67 uint32_t arm_cpsr;
68 uint32_t fault_address;
69 };
70
71 typedef struct sigcontext_arm linux_mcontext_t;
72
73 #else
74 #error "unsupported architecture"
75 #endif
76
77 struct NonSfiExceptionFrame {
78 struct NaClExceptionContext context;
79 struct NaClExceptionPortableContext portable;
80 };
81
82 extern pthread_mutex_t g_signal_handler_mutex;
83 void nonsfi_initialize_signal_handler_locked(void);
84 void nonsfi_install_exception_handler_locked(void);
85 void exception_frame_from_signal_context(
Mark Seaborn 2015/08/12 01:43:07 How about prefixing this with "nonsfi_" too?
Luis Héctor Chávez 2015/08/12 22:14:27 Done.
86 struct NonSfiExceptionFrame *frame,
87 const void *raw_ctx);
88
89 EXTERN_C_END
90
91 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698