support the ugly and deprecated ucontext and sigcontext header stuff...
[musl] / arch / i386 / bits / signal.h
index 8827efd..60a0bb5 100644 (file)
@@ -1,6 +1,40 @@
 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
  || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
 
 #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
  || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE)
 
+struct __fpstate {
+       unsigned long __x[7];
+       unsigned char __y[80];
+       unsigned long __z;
+};
+
+typedef struct {
+       unsigned long __gregs[19];
+       void *__fpregs;
+       unsigned long __oldmask, __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;
+       struct __fpstate __fpregs_mem;
+} ucontext_t;
+
+#ifdef _GNU_SOURCE
+struct sigcontext {
+       unsigned short gs, __gsh, fs, __fsh, es, __esh, ds, __dsh;
+       unsigned long edi, esi, ebp, esp, ebx, edx, ecx, eax;
+       unsigned long trapno, err, eip;
+       unsigned short cs, __csh;
+       unsigned long eflags, esp_at_signal;
+       unsigned short ss, __ssh;
+       struct __fpstate *fpstate;
+       unsigned long oldmask, cr2;
+};
+#endif
+
 struct __siginfo
 {
        int si_signo;
 struct __siginfo
 {
        int si_signo;