minix/include/sys/jmp_buf.h
2006-12-08 16:23:18 +00:00

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