2012-02-11 19:31:25 +01:00
|
|
|
#ifndef _SYS_UCONTEXT_H_
|
|
|
|
#define _SYS_UCONTEXT_H_
|
2010-03-12 16:58:41 +01:00
|
|
|
|
2012-02-11 19:31:25 +01:00
|
|
|
#include <sys/sigtypes.h>
|
2010-03-12 16:58:41 +01:00
|
|
|
#include <machine/mcontext.h>
|
|
|
|
|
|
|
|
typedef struct __ucontext ucontext_t;
|
2012-02-11 19:31:25 +01:00
|
|
|
|
2010-03-12 16:58:41 +01:00
|
|
|
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 */
|
|
|
|
};
|
|
|
|
|
2012-02-11 19:31:25 +01:00
|
|
|
#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 */
|
2010-03-12 16:58:41 +01:00
|
|
|
|
2012-02-11 19:31:25 +01:00
|
|
|
#endif /* !_SYS_UCONTEXT_H_ */
|