46 lines
		
	
	
		
			989 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
		
			989 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* This file is intended for use by program code (possibly written in
 | |
|  * assembly) that needs to manipulate a jmp_buf or sigjmp_buf. The JB_*
 | |
|  * values are byte offsets into the jmp_buf and sigjmp_buf structures.
 | |
|  */
 | |
| 
 | |
| #ifndef _JMP_BUF_H
 | |
| #define _JMP_BUF_H
 | |
| 
 | |
| #include <minix/config.h>
 | |
| 
 | |
| #if defined(__ACK__)
 | |
| /* as per lib/ack/rts/setjmp.e */
 | |
| 
 | |
| /* note the lack of parentheses, which would confuse 'as' */
 | |
| #define JB_PC		0
 | |
| #define JB_SP		JB_PC + _EM_PSIZE
 | |
| #define JB_LB		JB_SP + _EM_PSIZE
 | |
| #define JB_MASK		JB_LB + _EM_PSIZE
 | |
| #define JB_FLAGS	JB_MASK + _EM_LSIZE
 | |
| 
 | |
| #if (CHIP == INTEL)
 | |
| #define JB_BP		JB_LB
 | |
| #endif
 | |
| 
 | |
| #elif defined(__GNUC__)
 | |
| 
 | |
| #if (CHIP == INTEL) && (_WORD_SIZE == 4)
 | |
| /* as per lib/gnu/rts/__setjmp.gs */
 | |
| 
 | |
| #define JB_FLAGS	0
 | |
| #define JB_MASK		4
 | |
| #define JB_PC		8
 | |
| #define JB_SP		12
 | |
| #define JB_BP		16
 | |
| #define JB_BX		20
 | |
| #define JB_CX		24
 | |
| #define JB_DX		28
 | |
| #define JB_SI		32
 | |
| #define JB_DI		36
 | |
| 
 | |
| #endif /* (CHIP == INTEL) && (_WORD_SIZE == 4) */
 | |
| 
 | |
| #endif /* __GNU__ */
 | |
| 
 | |
| #endif /* _JMP_BUF_H */
 | 
