summaryrefslogtreecommitdiff
path: root/sysdeps/unix/sysv/linux/tile/sys/ucontext.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/unix/sysv/linux/tile/sys/ucontext.h')
-rw-r--r--sysdeps/unix/sysv/linux/tile/sys/ucontext.h35
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