home *** CD-ROM | disk | FTP | other *** search
- /* setjmp.h */
- /* PMTG - created April 10th 1990 */
- #ifndef SETJMP_H
- #define SETJMP_H 1
- /*
- The layout of jmp_buf variable after a call to setjump
- in this implementation is:
- Element Contents
- 0 return address
- 1 D2
- 2 D3
- 3 D4
- 4 D5
- 5 D6
- 6 D7
- 7 A2
- 8 A3
- 9 A4
- 10 A5 - frame pointer
- 11 A6 - used as library base pointer
- 12 A7 - stack pointer
-
- NOTE: the setjmp and longjmp routines do not fully comply with ANSI C.
- To do so would require saving the state of all local variables
- (ok not to save register variables) at the time of the call to
- setjmp and restore them when longjmp is called. This is left as an
- exercise for the gentle reader...
-
- */
- typedef unsigned long jmp_buf[13];
-
- int setjmp(jmp_buf env);
- void longjmp(jmp_buf env, int return_code);
-
- #endif
-
-