home *** CD-ROM | disk | FTP | other *** search
/ Mac Magazin/MacEasy 79 / maccd 79.iso / multimedial / GL Tron / Source / Project / include / stdclib / setjmp.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-02-17  |  1.3 KB  |  65 lines  |  [TEXT/MPS ]

  1. /*
  2.    SetJmp.h
  3.  
  4.    Copyright Apple Computer, Inc.    1986-1990, 1993-1995, 1998
  5.    All rights reserved.
  6.  */
  7.  
  8.  
  9. #ifndef __SETJMP__
  10. #define __SETJMP__
  11.  
  12. #define __csetjmp__
  13.  
  14. #ifdef __CFM68K__
  15.     /* We MUST use the new, larger jmp_buf for CFM-68K */
  16.     #undef OLD_JMPBUF
  17. #endif
  18.  
  19. #if defined (powerc)
  20. #if defined (__VEC__)
  21.     typedef vector unsigned long jmp_buf[29]; /*  AltiVec: LR,CR,SP,TOC,VRSAVE,R13-R31,FP14-FP31,FPSCR,RESVD,RESVD,VR20-VR31,VSCR  */
  22. #else  /* !__VEC__*/
  23.     typedef long *jmp_buf[64];  /*  PowerPC: LR,CR,SP,TOC,RESVD,R13-R31,FP14-FP31,FPSCR,RESVD,RESVD  */
  24. #endif /* !__VEC__*/
  25. #elif defined (OLD_JMPBUF)
  26.     typedef long *jmp_buf[12];    /*    old 68K: D2-D7,PC,A2-A4,A6,SP  */
  27. #else
  28.     typedef long *jmp_buf[16];    /*    new 68K: D2-D7,PC,A2-A4,A6,SP,FLAGS,A5,RESVD,RESVD  */
  29. #endif
  30.  
  31. #ifdef __cplusplus
  32. extern "C" {
  33. #endif
  34.  
  35. #if defined (__powerc) || defined (powerc) || defined (__CFM68K__)
  36.     #pragma import on
  37. #endif
  38.  
  39. #if defined(__VEC__)
  40.  
  41.     extern int __vec_setjmp(jmp_buf env);
  42.     extern void __vec_longjmp(jmp_buf env, int val);
  43.     
  44.     #define setjmp(env) __vec_setjmp(env)
  45.     #define longjmp(env, val) __vec_longjmp(env, val)
  46.  
  47. #else
  48.  
  49.     extern int __setjmp(jmp_buf env);
  50.     
  51.     #define setjmp(env) __setjmp(env)
  52.     extern void longjmp(jmp_buf env, int val);
  53.  
  54. #endif
  55.  
  56. #if defined (__powerc) || defined (powerc) || defined (__CFM68K__)
  57.     #pragma import off
  58. #endif
  59.  
  60. #ifdef __cplusplus
  61. }
  62. #endif
  63.  
  64. #endif
  65.