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_ */
 | 
