1 #pragma once 2 3 #ifdef __cplusplus 4 extern "C" { 5 #endif 6 7 #include <features.h> 8 9 #include <signal.h> 10 11 #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) 12 #define NGREG (sizeof(gregset_t) / sizeof(greg_t)) 13 #endif 14 15 struct __ucontext; 16 17 int getcontext(struct __ucontext*); 18 void makecontext(struct __ucontext*, void (*)(void), int, ...); 19 int setcontext(const struct __ucontext*); 20 int swapcontext(struct __ucontext*, const struct __ucontext*); 21 22 #ifdef __cplusplus 23 } 24 #endif 25