From e247e1c89e068f5c1e1d235157d7f60c50c67d0c Mon Sep 17 00:00:00 2001 From: Faraz Shahbazker Date: Mon, 5 Jan 2015 13:27:30 -0800 Subject: [PATCH] [MIPS64] Add correct mcontext_t for 64-bit MIPS Change-Id: I76d503860d0e1d937b6913bf2c1c6ebb531617da --- libc/include/sys/ucontext.h | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/libc/include/sys/ucontext.h b/libc/include/sys/ucontext.h index dd2a0bba6..b68d704b0 100644 --- a/libc/include/sys/ucontext.h +++ b/libc/include/sys/ucontext.h @@ -180,6 +180,25 @@ typedef struct fpregset { } fp_r; } fpregset_t; +#ifdef __LP64__ +typedef struct { + gregset_t gregs; + fpregset_t fpregs; + greg_t mdhi; + greg_t hi1; + greg_t hi2; + greg_t hi3; + greg_t mdlo; + greg_t lo1; + greg_t lo2; + greg_t lo3; + greg_t pc; + uint32_t fpc_csr; + uint32_t used_math; + uint32_t dsp; + uint32_t reserved; +} mcontext_t; +#else typedef struct { unsigned regmask; unsigned status; @@ -200,6 +219,7 @@ typedef struct { unsigned long hi3; unsigned long lo3; } mcontext_t; +#endif typedef struct ucontext { unsigned long uc_flags; @@ -209,10 +229,6 @@ typedef struct ucontext { sigset_t uc_sigmask; } ucontext_t; -#elif defined(__mips64__) - -#error TODO - #elif defined(__x86_64__) enum {