1178172Simp/* From: NetBSD: setjmp.h,v 1.2 1997/04/06 08:47:41 cgd Exp */
2178172Simp
3178172Simp/*-
4178172Simp * Copyright (c) 1994, 1995 Carnegie-Mellon University.
5178172Simp * All rights reserved.
6178172Simp *
7178172Simp * Author: Chris G. Demetriou
8178172Simp *
9178172Simp * Permission to use, copy, modify and distribute this software and
10178172Simp * its documentation is hereby granted, provided that both the copyright
11178172Simp * notice and this permission notice appear in all copies of the
12178172Simp * software, derivative works or modified versions, and any portions
13178172Simp * thereof, and that both notices appear in supporting documentation.
14178172Simp *
15178172Simp * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
16178172Simp * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND
17178172Simp * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
18178172Simp *
19178172Simp * Carnegie Mellon requests users of this software to return to
20178172Simp *
21178172Simp *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
22178172Simp *  School of Computer Science
23178172Simp *  Carnegie Mellon University
24178172Simp *  Pittsburgh PA 15213-3890
25178172Simp *
26178172Simp * any improvements or extensions that they make and grant Carnegie the
27178172Simp * rights to redistribute these changes.
28178172Simp *
29178172Simp *	JNPR: setjmp.h,v 1.2 2006/12/02 09:53:41 katta
30178172Simp * $FreeBSD: releng/11.0/sys/mips/include/setjmp.h 209500 2010-06-24 08:08:43Z jchandra $
31178172Simp */
32178172Simp
33178172Simp#ifndef _MACHINE_SETJMP_H_
34178172Simp#define	_MACHINE_SETJMP_H_
35178172Simp
36178172Simp/*
37178172Simp * machine/setjmp.h: machine dependent setjmp-related information.
38178172Simp */
39178172Simp
40178172Simp#include <sys/cdefs.h>
41178172Simp
42209500Sjchandra#define	_JBLEN	95		/* size, in longs (or long longs), of a jmp_buf */
43178172Simp
44178172Simp/*
45178172Simp * jmp_buf and sigjmp_buf are encapsulated in different structs to force
46178172Simp * compile-time diagnostics for mismatches.  The structs are the same
47178172Simp * internally to avoid some run-time errors for mismatches.
48178172Simp */
49178172Simp#ifndef _LOCORE
50178172Simp#ifndef __ASSEMBLER__
51178172Simp#if __BSD_VISIBLE || __POSIX_VISIBLE || __XSI_VISIBLE
52209500Sjchandra#ifdef __mips_n32
53209500Sjchandratypedef struct _sigjmp_buf { long long _sjb[_JBLEN + 1]; } sigjmp_buf[1];
54209500Sjchandra#else
55178172Simptypedef struct _sigjmp_buf { long _sjb[_JBLEN + 1]; } sigjmp_buf[1];
56178172Simp#endif
57209500Sjchandra#endif
58178172Simp
59209500Sjchandra#ifdef __mips_n32
60209500Sjchandratypedef struct _jmp_buf { long long _jb[_JBLEN + 1]; } jmp_buf[1];
61209500Sjchandra#else
62178172Simptypedef struct _jmp_buf { long _jb[_JBLEN + 1]; } jmp_buf[1];
63209500Sjchandra#endif
64178172Simp#endif /* __ASSEMBLER__ */
65178172Simp#endif /* _LOCORE */
66178172Simp
67178172Simp#endif /* _MACHINE_SETJMP_H_ */
68