vx32

Local 9vx git repository for patches.
git clone git://r-36.net/vx32
Log | Files | Refs

setjmp.h (2522B)


      1 /*-
      2  * Copyright (c) 1998 John Birrell <jb@cimlogic.com.au>.
      3  * All rights reserved.
      4  *
      5  * Redistribution and use in source and binary forms, with or without
      6  * modification, are permitted provided that the following conditions
      7  * are met:
      8  * 1. Redistributions of source code must retain the above copyright
      9  *    notice, this list of conditions and the following disclaimer.
     10  * 2. Redistributions in binary form must reproduce the above copyright
     11  *    notice, this list of conditions and the following disclaimer in the
     12  *    documentation and/or other materials provided with the distribution.
     13  * 3. All advertising materials mentioning features or use of this software
     14  *    must display the following acknowledgement:
     15  *	This product includes software developed by John Birrell.
     16  * 4. Neither the name of the author nor the names of any co-contributors
     17  *    may be used to endorse or promote products derived from this software
     18  *    without specific prior written permission.
     19  *
     20  * THIS SOFTWARE IS PROVIDED BY JOHN BIRRELL AND CONTRIBUTORS ``AS IS'' AND
     21  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     23  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     24  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     25  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     26  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     27  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     28  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     29  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     30  * SUCH DAMAGE.
     31  *
     32  * $FreeBSD: src/sys/i386/include/setjmp.h,v 1.7 2002/10/05 05:47:55 mike Exp $
     33  */
     34 
     35 #ifndef _SETJMP_H_
     36 #define	_SETJMP_H_
     37 
     38 #define	_JBLEN	11		/* Size of the jmp_buf on x86. */
     39 
     40 /*
     41  * jmp_buf and sigjmp_buf are encapsulated in different structs to force
     42  * compile-time diagnostics for mismatches.  The structs are the same
     43  * internally to avoid some run-time errors for mismatches.
     44  */
     45 typedef	struct _sigjmp_buf { int _sjb[_JBLEN + 1]; } sigjmp_buf[1];
     46 typedef	struct _jmp_buf { int _jb[_JBLEN + 1]; } jmp_buf[1];
     47 
     48 
     49 int setjmp(jmp_buf env);
     50 void longjmp(jmp_buf env, int val);
     51 
     52 int _setjmp(jmp_buf env);
     53 void _longjmp(jmp_buf env, int val);
     54 
     55 int sigsetjmp(sigjmp_buf env, int savemask);
     56 void siglongjmp(sigjmp_buf env, int val);
     57 
     58 #endif /* !_SETJMP_H_ */