source: trunk/third/bash/unwind_prot.h @ 18290

Revision 18290, 1.9 KB checked in by zacheiss, 22 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r18289, which included commits to RCS files with non-trunk default branches.
Line 
1/* unwind_prot.h - Macros and functions for hacking unwind protection. */
2
3/* Copyright (C) 1993 Free Software Foundation, Inc.
4
5   This file is part of GNU Bash, the Bourne Again SHell.
6
7   Bash is free software; you can redistribute it and/or modify it under
8   the terms of the GNU General Public License as published by the Free
9   Software Foundation; either version 2, or (at your option) any later
10   version.
11
12   Bash is distributed in the hope that it will be useful, but WITHOUT ANY
13   WARRANTY; without even the implied warranty of MERCHANTABILITY or
14   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15   for more details.
16
17   You should have received a copy of the GNU General Public License along
18   with Bash; see the file COPYING.  If not, write to the Free Software
19   Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */
20
21#if !defined (_UNWIND_PROT_H)
22#define _UNWIND_PROT_H
23
24/* Run a function without interrupts. */
25extern void begin_unwind_frame __P((char *));
26extern void discard_unwind_frame __P((char *));
27extern void run_unwind_frame __P((char *));
28extern void add_unwind_protect (); /* Not portable to arbitrary C99 hosts.  */
29extern void remove_unwind_protect __P((void));
30extern void run_unwind_protects __P((void));
31extern void clear_unwind_protect_list __P((int));
32extern void uwp_init __P((void));
33
34/* Define for people who like their code to look a certain way. */
35#define end_unwind_frame()
36
37/* How to protect a variable.  */
38#define unwind_protect_var(X) unwind_protect_mem ((char *)&(X), sizeof (X))
39extern void unwind_protect_mem __P((char *, int));
40
41/* Backwards compatibility */
42#define unwind_protect_int      unwind_protect_var
43#define unwind_protect_short    unwind_protect_var
44#define unwind_protect_string   unwind_protect_var
45#define unwind_protect_pointer  unwind_protect_var
46#define unwind_protect_jmp_buf  unwind_protect_var
47
48#endif /* _UNWIND_PROT_H */
Note: See TracBrowser for help on using the repository browser.