setjmp.h
上传用户:luoyougen
上传日期:2008-05-12
资源大小:23136k
文件大小:2k
源码类别:

VxWorks

开发平台:

C/C++

  1. /* setjmp.h - setjmp/longjmp header */
  2. /* Copyright 1984-1992 Wind River Systems, Inc. */
  3. /*
  4. modification history
  5. --------------------
  6. 02j,09jul96,ms   fixed prototype of sigsetjmp (SPR 7002).
  7. 02i,27dec95,mem  removed macros for VxSim hppa
  8. 02h,27mar95,kkk  fixed multiple definition of jmp_buf & sigjmp_buf (SPR 4051)
  9. 02g,31mar94,cd   modified jmp_buf and sigjmp_buf structures for use
  10.  with 32/64 bit processors.
  11. 02g,12may94,ms   added macros for VxSim hppa
  12. 02f,22sep92,rrr  added support for c++
  13. 02e,31aug92,rrr  added setjmp
  14. 02d,10jul92,rrr  set it up to use the new signal code. One more pass is needed
  15.                  to make it ANSI.
  16. 02c,09jul92,jwt  removed structure version of jmp_buf for SPARC - merge error.
  17. 02b,09jul92,rrr  fixed sparc from having two typedefs for jmp_buf
  18. 02a,04jul92,jcf  cleaned up.
  19. 01l,26may92,rrr  the tree shuffle
  20. 01k,09jan92,jwt  converted CPU==SPARC to CPU_FAMILY==SPARC.
  21. 01j,04oct91,rrr  passed through the ansification filter
  22.   -fixed #else and #endif
  23.   -changed ASMLANGUAGE to _ASMLANGUAGE
  24.   -changed copyright notice
  25. 01i,20jul91,jwt  modified jmp_buf for SPARC; added #ifndef _ASMLANGUAGE.
  26. 01h,02aug91,ajm  added defines and macros for MIPS architecture.
  27. 01g,29apr91,hdn  added defines and macros for TRON architecture.
  28. 01f,20apr91,del  added I960 specifics.
  29. 01e,19oct90,shl  changed IMPORT to extern for ANSI compatibility,
  30.  fixed wrong type definition for longjmp().
  31. 01d,05oct90,shl  added ANSI function prototypes.
  32.  added copyright notice.
  33.                  made #endif ANSI style.
  34. 01c,25aug88,ecs  added SPARC version of jmp_buf.
  35. 01b,01jul88,rdc  changed order of stuff in jmp_buf.
  36. 01a,22jun88,dnw  written
  37. */
  38. #ifndef __INCsetjmph
  39. #define __INCsetjmph
  40. #ifdef __cplusplus
  41. extern "C" {
  42. #endif
  43. #include "regs.h"
  44. typedef struct _jmp_buf
  45.     {
  46.     REG_SET reg;
  47.     int extra[3];
  48.     } jmp_buf[1];
  49. typedef struct _sigjmp_buf
  50.     {
  51.     REG_SET regs;
  52.     int extra[3];
  53.     } sigjmp_buf[1];
  54. /* function declarations */
  55. #if defined(__STDC__) || defined(__cplusplus)
  56. extern int setjmp (jmp_buf __env);
  57. extern void  longjmp (jmp_buf __env, int __val);
  58. extern int sigsetjmp (sigjmp_buf __env, int __savemask);
  59. extern void  siglongjmp (sigjmp_buf __env, int __val);
  60. #else
  61. extern int setjmp ();
  62. extern void  longjmp ();
  63. extern int sigsetjmp ();
  64. extern void  siglongjmp ();
  65. #endif /* __STDC__ */
  66. #ifdef __cplusplus
  67. }
  68. #endif
  69. #endif /* __INCsetjmph */