diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/tile/sys/ucontext.h')
-rw-r--r-- | sysdeps/unix/sysv/linux/tile/sys/ucontext.h | 35 |
1 files changed, 27 insertions, 8 deletions
diff --git a/sysdeps/unix/sysv/linux/tile/sys/ucontext.h b/sysdeps/unix/sysv/linux/tile/sys/ucontext.h index b70dae7768..7c5ed50977 100644 --- a/sysdeps/unix/sysv/linux/tile/sys/ucontext.h +++ b/sysdeps/unix/sysv/linux/tile/sys/ucontext.h @@ -22,10 +22,15 @@ #include <features.h> #include <bits/types/sigset_t.h> -#include <bits/sigcontext.h> #include <bits/types/stack_t.h> #ifdef __USE_MISC +# define __ctx(fld) fld +#else +# define __ctx(fld) __ ## fld +#endif + +#ifdef __USE_MISC /* Get register type and register names. */ # include <arch/abi.h> @@ -56,14 +61,28 @@ enum }; #endif -/* A machine context is exactly a sigcontext. */ -typedef struct sigcontext mcontext_t; +#define __need_int_reg_t +#include <arch/abi.h> -#ifdef __USE_MISC -# define __ctx(fld) fld -#else -# define __ctx(fld) __ ## fld -#endif +/* A machine context is exactly a sigcontext. */ +typedef struct + { + __extension__ union + { + __uint_reg_t __ctx(gregs)[56]; + __extension__ struct + { + __uint_reg_t __ctx(__gregs)[53]; + __uint_reg_t __ctx(tp); + __uint_reg_t __ctx(sp); + __uint_reg_t __ctx(lr); + }; + }; + __uint_reg_t __ctx(pc); + __uint_reg_t __ctx(ics); + __uint_reg_t __ctx(faultnum); + __uint_reg_t __glibc_reserved1[5]; + } mcontext_t; /* Userlevel context. */ typedef struct ucontext_t |