home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / os / kludge03.tz / kludge03 / mk74 / user / libmach / setjmp.h < prev    next >
C/C++ Source or Header  |  1991-09-04  |  4KB  |  131 lines

  1. /* 
  2.  * Mach Operating System
  3.  * Copyright (c) 1991,1990,1989 Carnegie Mellon University
  4.  * All Rights Reserved.
  5.  * 
  6.  * Permission to use, copy, modify and distribute this software and its
  7.  * documentation is hereby granted, provided that both the copyright
  8.  * notice and this permission notice appear in all copies of the
  9.  * software, derivative works or modified versions, and any portions
  10.  * thereof, and that both notices appear in supporting documentation.
  11.  * 
  12.  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
  13.  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
  14.  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
  15.  * 
  16.  * Carnegie Mellon requests users of this software to return to
  17.  * 
  18.  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
  19.  *  School of Computer Science
  20.  *  Carnegie Mellon University
  21.  *  Pittsburgh PA 15213-3890
  22.  * 
  23.  * any improvements or extensions that they make and grant Carnegie Mellon
  24.  * the rights to redistribute these changes.
  25.  */
  26. /*
  27.  * HISTORY
  28.  * $Log:    setjmp.h,v $
  29.  * Revision 2.8  91/09/04  11:29:03  jsb
  30.  *     From Intel SSD: added i860 support.
  31.  *     [91/09/04  10:14:32  jsb]
  32.  * 
  33.  * Revision 2.7  91/07/09  23:24:06  danner
  34.  *     Added luna88k support, some missing comments.
  35.  *     [91/06/27            danner]
  36.  * 
  37.  * Revision 2.6  91/05/14  17:54:56  mrt
  38.  *     Correcting copyright
  39.  * 
  40.  * Revision 2.5  91/02/14  14:18:43  mrt
  41.  *     Added new Mach copyright
  42.  *     [91/02/13  12:44:53  mrt]
  43.  * 
  44.  * Revision 2.4  90/11/05  14:36:03  rpd
  45.  *     Changed the mips jmp_buf definition to the normal size.
  46.  *     [90/10/30            rpd]
  47.  * 
  48.  * Revision 2.3  90/05/03  15:54:23  dbg
  49.  *     Add i386 definitions.
  50.  *     [90/02/05            dbg]
  51.  * 
  52.  * Revision 2.2  89/11/29  14:18:52  af
  53.  *     Added mips defs.  This file is only ok for standalone Mach use,
  54.  *     not inside U*x.
  55.  *     [89/10/28  10:23:02  af]
  56.  * 
  57.  * Revision 2.1  89/08/03  17:06:57  rwd
  58.  * Created.
  59.  * 
  60.  * Revision 2.3  88/12/22  17:06:02  mja
  61.  *     Correct __STDC__ return value type and allow for recursive inclusion.
  62.  *     [88/12/20            dld]
  63.  * 
  64.  * Revision 2.2  88/12/14  23:34:14  mja
  65.  *     Added ANSI-C (and C++) compatible argument declarations.
  66.  *     [88/01/18            dld@cs.cmu.edu]
  67.  * 
  68.  *  3-Sep-87  Michael Jones (mbj) at Carnegie-Mellon University
  69.  *    Added definition of jump buffer for Multimax.
  70.  *
  71.  * 29-May-87  Robert Baron (rvb) at Carnegie-Mellon University
  72.  *    ns32000 jmp_buf for sequent and possibly mmax
  73.  *
  74.  * 17-Nov-86  Jonathan Chew (jjc) at Carnegie-Mellon University
  75.  *    Added defintion of jump buffer for SUN.
  76.  *
  77.  * 22-Sep-86  Glenn Marcy (gm0w) at Carnegie-Mellon University
  78.  *    Added changes for IBM RT.
  79.  *
  80.  */
  81.  
  82. /*    setjmp.h    4.1    83/05/03    */
  83.  
  84. #ifndef _SETJMP_H_PROCESSED_
  85. #define _SETJMP_H_PROCESSED_ 1
  86.  
  87. #ifdef multimax
  88. typedef int jmp_buf[10];
  89. #endif /* multimax */
  90.  
  91. #ifdef    balance
  92. typedef int jmp_buf[11];    /* 4 regs, ... */
  93. #endif    /* balance */
  94.  
  95. #ifdef sun3
  96. typedef int jmp_buf[15];    /* pc, sigmask, onsstack, d2-7, a2-7 */
  97. #endif /* sun3 */
  98.  
  99. #ifdef ibmrt
  100. typedef int jmp_buf[16];
  101. #endif /* imbrt */
  102.  
  103. #ifdef vax
  104. typedef int jmp_buf[10];
  105. #endif /* vax */
  106.  
  107. #ifdef mips
  108. typedef int jmp_buf[75];
  109. #endif /* mips */
  110.  
  111. #ifdef i386
  112. typedef int jmp_buf[21];
  113. #endif /* i386 */
  114.  
  115. #ifdef luna88k
  116. typedef int jmp_buf[19]; /* r1, r14-r31 */
  117. #endif /* luna88k */
  118.  
  119. #ifdef i860
  120. typedef int jmp_buf[32];  /* f2 - f15, r1 - r16 registers */
  121. #endif /* i860 */
  122.  
  123. #if defined(CMUCS) && defined(__STDC__)
  124. extern int setjmp (jmp_buf);
  125. extern void longjmp (jmp_buf, int);
  126. extern int _setjmp (jmp_buf);
  127. extern void _longjmp (jmp_buf, int);
  128. #endif
  129.  
  130. #endif /* _SETJMP_H_PROCESSED_ */
  131.