diff --git a/src/platform-linux.cc b/src/platform-linux.cc index 5c05a3ad66..f6db423e42 100644 --- a/src/platform-linux.cc +++ b/src/platform-linux.cc @@ -966,43 +966,22 @@ typedef struct ucontext { #elif !defined(__GLIBC__) && defined(__i386__) // x86 version for Android. -struct _libc_fpreg { - uint16_t significand[4]; - uint16_t exponent; +struct sigcontext { + uint32_t gregs[19]; + void* fpregs; + uint32_t oldmask; + uint32_t cr2; }; -struct _libc_fpstate { - uint64_t cw; - uint64_t sw; - uint64_t tag; - uint64_t ipoff; - uint64_t cssel; - uint64_t dataoff; - uint64_t datasel; - struct _libc_fpreg _st[8]; - uint64_t status; -}; - -typedef struct _libc_fpstate *fpregset_t; - -typedef struct mcontext { - int32_t gregs[19]; - fpregset_t fpregs; - int64_t oldmask; - int64_t cr2; -} mcontext_t; - -typedef uint64_t __sigset_t; - +typedef uint32_t __sigset_t; +typedef struct sigcontext mcontext_t; typedef struct ucontext { - uint64_t uc_flags; - struct ucontext *uc_link; + uint32_t uc_flags; + struct ucontext* uc_link; stack_t uc_stack; mcontext_t uc_mcontext; __sigset_t uc_sigmask; - struct _libc_fpstate __fpregs_mem; } ucontext_t; - enum { REG_EBP = 6, REG_ESP = 7, REG_EIP = 14 }; #endif