2011-02-12 08:22:29 +03:00
|
|
|
#ifndef _UCONTEXT_H
|
|
|
|
#define _UCONTEXT_H
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <signal.h>
|
|
|
|
|
|
|
|
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;
|
|
|
|
|
2011-02-17 07:36:26 +03:00
|
|
|
typedef struct ucontext {
|
2011-02-12 08:22:29 +03:00
|
|
|
unsigned long uc_flags;
|
2011-02-17 07:36:26 +03:00
|
|
|
struct ucontext *uc_link;
|
2011-02-12 08:22:29 +03:00
|
|
|
stack_t uc_stack;
|
|
|
|
mcontext_t uc_mcontext;
|
|
|
|
sigset_t uc_sigmask;
|
|
|
|
struct __fpstate __fpregs_mem;
|
|
|
|
} ucontext_t;
|
|
|
|
|
|
|
|
int getcontext(ucontext_t *);
|
|
|
|
void makecontext(ucontext_t *, void (*)(void), int, ...);
|
|
|
|
int setcontext(const ucontext_t *);
|
|
|
|
int swapcontext(ucontext_t *, const ucontext_t *);
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|