minix/nbsd_include/sys/ucontext.h
2011-02-21 13:13:55 +00:00

39 lines
1.1 KiB
C

#ifndef _SYS_UCONTEXT_H_
#define _SYS_UCONTEXT_H_
#include <sys/sigtypes.h>
#include <machine/mcontext.h>
typedef struct __ucontext ucontext_t;
struct __ucontext {
unsigned int uc_flags; /* Properties of ucontext */
ucontext_t *uc_link; /* Next context to resume when current is finished */
mcontext_t uc_mcontext; /* Machine state */
sigset_t uc_sigmask; /* Signals blocked in this context */
stack_t uc_stack; /* The stack used by this context */
};
#ifndef _UC_UCONTEXT_ALIGN
#define _UC_UCONTEXT_ALIGN (~0)
#endif
#define UCF_SWAPPED 001 /* Context has been swapped in by swapcontext(3) */
#define UCF_IGNFPU 002 /* Ignore FPU context by get or setcontext(3) */
#define UCF_IGNSIGM 004 /* Ignore signal mask by get or setcontext(3) */
#define NCARGS 6
#ifdef __minix
__BEGIN_DECLS
void resumecontext(ucontext_t *ucp);
/* These functions get and set ucontext structure through PM/kernel. They don't
* manipulate the stack. */
int getuctx(ucontext_t *ucp);
int setuctx(const ucontext_t *ucp);
__END_DECLS
#endif /* __minix */
#endif /* !_SYS_UCONTEXT_H_ */