39 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			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_ */
 |