Provide structures from <ucontext.h> for Android.

Patch from Ben Murdoch <benm@chromium.org>.

Review URL: https://chromiumcodereview.appspot.com/10001005

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
ulan@chromium.org 2012-04-16 10:42:39 +00:00
parent 17632e447c
commit 44516ce7d7

View File

@ -964,6 +964,46 @@ typedef struct ucontext {
__sigset_t uc_sigmask;
} ucontext_t;
#elif !defined(__GLIBC__) && defined(__i386__)
// x86 version for Android.
struct _libc_fpreg {
uint16_t significand[4];
uint16_t exponent;
};
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 struct ucontext {
uint64_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