#define setcontext(u) _setmcontext(&(u)->mc) | |
#define getcontext(u) _getmcontext(&(u)->mc) | |
typedef struct mcontext mcontext_t; | |
typedef struct ucontext ucontext_t; | |
struct mcontext | |
{ | |
int r[16]; | |
}; | |
struct ucontext | |
{ | |
struct { | |
void *ss_sp; | |
uint ss_size; | |
} uc_stack; | |
sigset_t uc_sigmask; | |
mcontext_t mc; | |
}; | |
void makecontext(ucontext_t*, void(*)(void), int, ...); | |
int swapcontext(ucontext_t*, ucontext_t*); | |
int _getmcontext(mcontext_t*); | |
void _setmcontext(mcontext_t*); | |