Add x86 <sys/ucontext.h>.
Change-Id: I43e72604f7a932f134733b78094b577415a5edb7
This commit is contained in:
parent
972c39c4fe
commit
677a07cb9a
@ -34,7 +34,86 @@
|
|||||||
|
|
||||||
__BEGIN_DECLS
|
__BEGIN_DECLS
|
||||||
|
|
||||||
#if defined(__x86_64__)
|
#if defined(__arm__)
|
||||||
|
|
||||||
|
#error TODO
|
||||||
|
|
||||||
|
#elif defined(__arm64__)
|
||||||
|
|
||||||
|
#error TODO
|
||||||
|
|
||||||
|
#elif defined(__i386__)
|
||||||
|
|
||||||
|
enum {
|
||||||
|
REG_GS = 0,
|
||||||
|
REG_FS,
|
||||||
|
REG_ES,
|
||||||
|
REG_DS,
|
||||||
|
REG_EDI,
|
||||||
|
REG_ESI,
|
||||||
|
REG_EBP,
|
||||||
|
REG_ESP,
|
||||||
|
REG_EBX,
|
||||||
|
REG_EDX,
|
||||||
|
REG_ECX,
|
||||||
|
REG_EAX,
|
||||||
|
REG_TRAPNO,
|
||||||
|
REG_ERR,
|
||||||
|
REG_EIP,
|
||||||
|
REG_CS,
|
||||||
|
REG_EFL,
|
||||||
|
REG_UESP,
|
||||||
|
REG_SS,
|
||||||
|
NGREG
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef int greg_t;
|
||||||
|
typedef greg_t gregset_t[NGREG];
|
||||||
|
|
||||||
|
struct _libc_fpreg {
|
||||||
|
unsigned short significand[4];
|
||||||
|
unsigned short exponent;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _libc_fpstate {
|
||||||
|
unsigned long cw;
|
||||||
|
unsigned long sw;
|
||||||
|
unsigned long tag;
|
||||||
|
unsigned long ipoff;
|
||||||
|
unsigned long cssel;
|
||||||
|
unsigned long dataoff;
|
||||||
|
unsigned long datasel;
|
||||||
|
struct _libc_fpreg _st[8];
|
||||||
|
unsigned long status;
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _libc_fpstate* fpregset_t;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
gregset_t gregs;
|
||||||
|
fpregset_t fpregs;
|
||||||
|
unsigned long oldmask;
|
||||||
|
unsigned long cr2;
|
||||||
|
} mcontext_t;
|
||||||
|
|
||||||
|
typedef struct ucontext {
|
||||||
|
unsigned long uc_flags;
|
||||||
|
struct ucontext* uc_link;
|
||||||
|
stack_t uc_stack;
|
||||||
|
mcontext_t uc_mcontext;
|
||||||
|
sigset_t uc_sigmask;
|
||||||
|
/* TODO: __fpregs_mem? */
|
||||||
|
} ucontext_t;
|
||||||
|
|
||||||
|
#elif defined(__mips__)
|
||||||
|
|
||||||
|
#error TODO
|
||||||
|
|
||||||
|
#elif defined(__mips64__)
|
||||||
|
|
||||||
|
#error TODO
|
||||||
|
|
||||||
|
#elif defined(__x86_64__)
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
REG_R8 = 0,
|
REG_R8 = 0,
|
||||||
@ -83,7 +162,7 @@ typedef struct ucontext {
|
|||||||
/* TODO: __fpregs_mem? */
|
/* TODO: __fpregs_mem? */
|
||||||
} ucontext_t;
|
} ucontext_t;
|
||||||
|
|
||||||
#endif /* x86_64 */
|
#endif
|
||||||
|
|
||||||
__END_DECLS
|
__END_DECLS
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user