summaryrefslogtreecommitdiff
path: root/src/lib/libc/stdlib/atexit.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libc/stdlib/atexit.h')
-rw-r--r--src/lib/libc/stdlib/atexit.h14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/lib/libc/stdlib/atexit.h b/src/lib/libc/stdlib/atexit.h
index 21b0c2e532..1b23565dd0 100644
--- a/src/lib/libc/stdlib/atexit.h
+++ b/src/lib/libc/stdlib/atexit.h
@@ -1,4 +1,4 @@
1/* $OpenBSD: atexit.h,v 1.6 2003/07/31 07:08:42 deraadt Exp $ */ 1/* $OpenBSD: atexit.h,v 1.7 2007/09/03 14:40:16 millert Exp $ */
2 2
3/* 3/*
4 * Copyright (c) 2002 Daniel Hartmeier 4 * Copyright (c) 2002 Daniel Hartmeier
@@ -34,8 +34,18 @@ struct atexit {
34 struct atexit *next; /* next in list */ 34 struct atexit *next; /* next in list */
35 int ind; /* next index in this table */ 35 int ind; /* next index in this table */
36 int max; /* max entries >= ATEXIT_SIZE */ 36 int max; /* max entries >= ATEXIT_SIZE */
37 void (*fns[1])(void); /* the table itself */ 37 struct atexit_fn {
38 union {
39 void (*std_func)(void);
40 void (*cxa_func)(void *);
41 } fn_ptr;
42 void *fn_arg; /* argument for CXA callback */
43 void *fn_dso; /* shared module handle */
44 } fns[1]; /* the table itself */
38}; 45};
39 46
40extern int __atexit_invalid; 47extern int __atexit_invalid;
41extern struct atexit *__atexit; /* points to head of LIFO stack */ 48extern struct atexit *__atexit; /* points to head of LIFO stack */
49
50int __cxa_atexit(void (*)(void *), void *, void *);
51void __cxa_finalize(void *);