summaryrefslogtreecommitdiffstats
path: root/newlib/libc/stdlib/atexit.h
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2004-09-09 19:46:54 +0000
committerJeff Johnston <jjohnstn@redhat.com>2004-09-09 19:46:54 +0000
commit0c8593cf11a16ca75c72977a6f5e3983896940c4 (patch)
tree8133764892ae91831d48980ef216fc4935e45b5f /newlib/libc/stdlib/atexit.h
parent582dde69f31fb0dbe4beca5461b2b08924ae4e20 (diff)
downloadcygnal-0c8593cf11a16ca75c72977a6f5e3983896940c4.tar.gz
cygnal-0c8593cf11a16ca75c72977a6f5e3983896940c4.tar.bz2
cygnal-0c8593cf11a16ca75c72977a6f5e3983896940c4.zip
2004-09-09 Paul Brook <paul@codesourcery.com>
* libc/include/sys/reent.h (struct _on_exit_args): Add _dso_handle and _is_cxa. (struct _atexit): Add _next when _REENT_SMALL. (struct _reent): Add _atexit0 when _REENT_SMALL. (_REENT_INIT_PTR): Adjust. * libc/stdlib/Makefile.am (GENERAL_SOURCES): Add __atexit.c and __call_exit.c. (EXTENDED_SOURCES): Add cxa_atexit.c and cxa_finalize.c. * libc/stdlib/Makefile.in: Regenerate. * libc/stdlib/__atexit.c: New file. * libc/stdlib/__call_atexit.c: New file. * libc/stdlib/atexit.h: Remove old definitions. Add new. * libc/stdlib/atexit.c (atexit): Use __register_exitproc. * libc/stdlib/cxa_atexit.c: New file. * libc/stdlib/cxa_finalize.c: New file. * libc/stdlib/exit.c (exit): Use __call_exitprocs. * libc/stdlib/on_exit.c (on_exit): Use __register_exitproc. 2004-09-09 Jeff Johnston <jjohnstn@redhat.com> * libc/reent/reent.c [_REENT_SMALL]: Fix reference to _on_exit_args_ptr.
Diffstat (limited to 'newlib/libc/stdlib/atexit.h')
-rw-r--r--newlib/libc/stdlib/atexit.h17
1 files changed, 9 insertions, 8 deletions
diff --git a/newlib/libc/stdlib/atexit.h b/newlib/libc/stdlib/atexit.h
index 44a928126..e37a146a0 100644
--- a/newlib/libc/stdlib/atexit.h
+++ b/newlib/libc/stdlib/atexit.h
@@ -1,13 +1,14 @@
/*
- * %G% (UofMD) %D%
+ * Common definitions for atexit-like routines
*/
-#define ATEXIT_SIZE 32 /* must be at least 32 to guarantee ANSI conformance */
-
-struct atexit {
- struct atexit *next; /* next in list */
- int ind; /* next index in this table */
- void (*fns[ATEXIT_SIZE])(); /* the table itself */
+enum __atexit_types
+{
+ __et_atexit,
+ __et_onexit,
+ __et_cxa
};
-struct atexit *__atexit; /* points to head of LIFO stack */
+void __call_exitprocs _PARAMS ((int, _PTR));
+int __register_exitproc _PARAMS ((int, void (*fn) (void), _PTR, _PTR));
+