error.h (127958) | error.h (199660) |
---|---|
1/*- 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Kenneth Almquist. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 16 unchanged lines hidden (view full) --- 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 * @(#)error.h 8.2 (Berkeley) 5/4/95 | 1/*- 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Kenneth Almquist. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 16 unchanged lines hidden (view full) --- 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 * @(#)error.h 8.2 (Berkeley) 5/4/95 |
33 * $FreeBSD: head/bin/sh/error.h 127958 2004-04-06 20:06:54Z markm $ | 33 * $FreeBSD: head/bin/sh/error.h 199660 2009-11-22 18:23:30Z jilles $ |
34 */ 35 36/* 37 * We enclose jmp_buf in a structure so that we can declare pointers to 38 * jump locations. The global variable handler contains the location to 39 * jump to when an exception occurs, and the global variable exception 40 * contains a code identifying the exception. To implement nested 41 * exception handlers, the user should save the value of handler on entry --- 25 unchanged lines hidden (view full) --- 67 * more fun than worrying about efficiency and portability. :-)) 68 */ 69 70extern volatile sig_atomic_t suppressint; 71extern volatile sig_atomic_t intpending; 72 73#define INTOFF suppressint++ 74#define INTON { if (--suppressint == 0 && intpending) onint(); } | 34 */ 35 36/* 37 * We enclose jmp_buf in a structure so that we can declare pointers to 38 * jump locations. The global variable handler contains the location to 39 * jump to when an exception occurs, and the global variable exception 40 * contains a code identifying the exception. To implement nested 41 * exception handlers, the user should save the value of handler on entry --- 25 unchanged lines hidden (view full) --- 67 * more fun than worrying about efficiency and portability. :-)) 68 */ 69 70extern volatile sig_atomic_t suppressint; 71extern volatile sig_atomic_t intpending; 72 73#define INTOFF suppressint++ 74#define INTON { if (--suppressint == 0 && intpending) onint(); } |
75#define is_int_on() suppressint 76#define SETINTON(s) suppressint = (s) |
|
75#define FORCEINTON {suppressint = 0; if (intpending) onint();} 76#define CLEAR_PENDING_INT intpending = 0 77#define int_pending() intpending 78 79void exraise(int); 80void onint(void); 81void error(const char *, ...) __printf0like(1, 2); 82void exerror(int, const char *, ...) __printf0like(2, 3); 83 84 85/* 86 * BSD setjmp saves the signal mask, which violates ANSI C and takes time, 87 * so we use _setjmp instead. 88 */ 89 90#define setjmp(jmploc) _setjmp(jmploc) 91#define longjmp(jmploc, val) _longjmp(jmploc, val) | 77#define FORCEINTON {suppressint = 0; if (intpending) onint();} 78#define CLEAR_PENDING_INT intpending = 0 79#define int_pending() intpending 80 81void exraise(int); 82void onint(void); 83void error(const char *, ...) __printf0like(1, 2); 84void exerror(int, const char *, ...) __printf0like(2, 3); 85 86 87/* 88 * BSD setjmp saves the signal mask, which violates ANSI C and takes time, 89 * so we use _setjmp instead. 90 */ 91 92#define setjmp(jmploc) _setjmp(jmploc) 93#define longjmp(jmploc, val) _longjmp(jmploc, val) |