home *** CD-ROM | disk | FTP | other *** search
- /* cleanup.h */
- /*
- *
- * $Author: Espie $
- * $Date: 91/04/24 02:40:48 $
- * $Revision: 1.1 $
- * $Log: cleanup.h,v $
- * Revision 1.1 91/04/24 02:40:48 Espie
- * Initial revision
- *
- *
- */
-
- #ifndef CUSTOM_CLEANUP_H
- #define CUSTOM_CLEANUP_H
-
- #ifndef NIL
- #define NIL (void *)0
- #endif
-
- typedef void *GENERIC;
- typedef long INTEGER;
- typedef struct clean *CLEAN;
- typedef void (*FUNC0)(void);
- typedef void (*FUNC1)(GENERIC);
- typedef void (*FUNC2)(GENERIC, INTEGER);
- typedef void (*FUNC3)(GENERIC, INTEGER, INTEGER);
-
- #define ToClean0(f) ToClean0L(NIL, f)
- #define ToClean(f, o) ToCleanL(NIL, f, o)
- #define ToClean2(f, o, i) ToClean2L(NIL, f, o, i)
- #define ToClean3(f, o, i, j) ToClean3L(NIL, f, o, i, j)
- #define ToClean0(f) ToClean0L(NIL, f)
- #define AllocClean(f) AllocCleanL(NIL, f)
-
- extern void ToClean0L(CLEAN stem, void (*f)(void));
- extern void ToCleanL(CLEAN stem, void (*f)(GENERIC), GENERIC o);
- extern void ToClean2L(CLEAN stem, void (*f)(GENERIC, INTEGER),
- GENERIC o, INTEGER i);
- extern void ToClean3L(CLEAN stem, void (*f)(GENERIC, INTEGER, INTEGER),
- GENERIC o, INTEGER i1, INTEGER i2);
- extern CLEAN AllocCleanL(CLEAN base, void (*panic)(char *));
-
- extern void CleanUp(CLEAN base);
- extern void SetUpCleanUp(void (*panic)(char *));
- extern void SafeCleanUp(CLEAN *base);
- extern CLEAN AllocPrivateClean(void (*panic)(char *));
-
- extern void PanicL(CLEAN stem, char *message);
- #define Panic(message) PanicL(NIL, message)
-
- /* should never be defined when compiling cleanup.c itself */
-
- #ifdef USE_ANSI_AT_EXIT
- extern int ANSIatexit(void (*func)(void));
- #define atexit ANSIatexit
- #define onexit ANSIatexit
- #endif
-
-
-
- #endif
-