4 FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
11 /** Saved return address */
13 /** Saved stack pointer */
25 /** A real-mode-extended jump buffer */
29 /** Real-mode stack pointer */
33 extern int __asmcall __attribute__ (( returns_twice ))
34 setjmp ( jmp_buf env );
36 extern void __asmcall __attribute__ (( noreturn ))
37 longjmp ( jmp_buf env, int val );
39 #define rmsetjmp( _env ) ( { \
40 (_env)->rm_stack.segment = rm_ss; \
41 (_env)->rm_stack.offset = rm_sp; \
42 setjmp ( (_env)->env ); } ) \
44 #define rmlongjmp( _env, _val ) do { \
45 rm_ss = (_env)->rm_stack.segment; \
46 rm_sp = (_env)->rm_stack.offset; \
47 longjmp ( (_env)->env, (_val) ); \
50 #endif /* _SETJMP_H */