Chromium Code Reviews| Index: sandbox/linux/services/android_arm_ucontext.h |
| diff --git a/sandbox/linux/services/android_arm_ucontext.h b/sandbox/linux/services/android_arm_ucontext.h |
| index 0c21e2092796d8ce83100bf8e9876c0a009cc00e..e05e8a8ceba5e2e6a6075d09fee21b108b7a894f 100644 |
| --- a/sandbox/linux/services/android_arm_ucontext.h |
| +++ b/sandbox/linux/services/android_arm_ucontext.h |
| @@ -5,10 +5,19 @@ |
| #ifndef SANDBOX_LINUX_SERVICES_ANDROID_ARM_UCONTEXT_H_ |
| #define SANDBOX_LINUX_SERVICES_ANDROID_ARM_UCONTEXT_H_ |
| +#if !defined(__BIONIC_HAVE_UCONTEXT_T) |
| #include <asm/sigcontext.h> |
| -typedef long int greg_t; |
| -typedef unsigned long sigset_t; |
| +// We also need greg_t for the sandbox, include it in this header as well. |
| +typedef unsigned long greg_t; |
|
palmer
2013/01/17 01:33:46
So, it was supposed to have been unsigned before?
jln (very slow on Chromium)
2013/01/17 01:53:28
It was wrong before. Someone nice added it to gree
|
| + |
| +// sigset_t from arch/arm/include/asm/signal.h in the Linux kernel. |
| +typedef struct { |
| + unsigned long sig[2]; // 2 is actually _NSIG_WORDS. |
|
Markus (顧孟勤)
2013/01/17 01:31:34
Is this correct for 64bit architectures. I thought
palmer
2013/01/17 01:33:46
Style nit: I'd align these comments. Or, preferabl
palmer
2013/01/17 01:33:46
I'd be surprised if that assumption holds for long
jln (very slow on Chromium)
2013/01/17 01:53:28
Yeah I tried to copy exactly what they were doing
|
| +} android_header_sigset_t; // Change name to avoid collissions if sigset_t |
| + // gets defined nower Android headers. |
|
palmer
2013/01/17 01:33:46
collisions (one s)
nower --> in newer
jln (very slow on Chromium)
2013/01/17 01:53:28
Done.
|
| + |
| +//typedef unsigned long sigset_t; |
| typedef struct ucontext { |
|
palmer
2013/01/17 01:33:46
Style nit: Since we are poking this code and not b
jln (very slow on Chromium)
2013/01/17 01:53:28
I'll keep it as is if you don't mind I would reall
|
| unsigned long uc_flags; |
| struct ucontext *uc_link; |
| @@ -16,9 +25,14 @@ typedef struct ucontext { |
| struct sigcontext uc_mcontext; |
| sigset_t uc_sigmask; |
| /* Allow for uc_sigmask growth. Glibc uses a 1024-bit sigset_t. */ |
| - int __not_used[32 - (sizeof (sigset_t) / sizeof (int))]; |
| + int __not_used[32 - (sizeof (android_header_sigset_t) / sizeof (int))]; |
| /* Last for extensibility. Eight byte aligned because some |
| coprocessors require eight byte alignment. */ |
| unsigned long uc_regspace[128] __attribute__((__aligned__(8))); |
| } ucontext_t; |
| + |
| +#else |
| +#include <sys/ucontext.h> |
| +#endif // __BIONIC_HAVE_UCONTEXT_T |
| + |
| #endif // SANDBOX_LINUX_SERVICES_ANDROID_ARM_UCONTEXT_H_ |