summaryrefslogtreecommitdiff
path: root/usr/src/lib/libc/inc
diff options
context:
space:
mode:
authorKeith M Wesolowski <wesolows@foobazco.org>2013-07-18 00:49:01 +0000
committerKeith M Wesolowski <wesolows@foobazco.org>2013-07-18 00:49:04 +0000
commit8cb0d5d22925a6316ff1386fa13a6dbca34cfee7 (patch)
treed0c8fa919b1a107eee0f392be1ac3091bd23917c /usr/src/lib/libc/inc
parentccd723900c0b9504ba6263e7e9d4cdb73a234751 (diff)
parent3e7c6556c4272555ed6c5ecdbca2bf8a56df6ff5 (diff)
downloadillumos-joyent-8cb0d5d22925a6316ff1386fa13a6dbca34cfee7.tar.gz
[illumos-gate merge]
commit 3e7c6556c4272555ed6c5ecdbca2bf8a56df6ff5 3893 lvm: incorrect flag handling commit 5bc7ce93aca1e9026e3243221a9a0b1a3bc9a32e 3853 __cplusplus change and headers incompatipility with clang commit 5c069a6c4b95a7360294695998bf1d3b12473abf 3849 implement __cxa_atexit/__cxa_finalize
Diffstat (limited to 'usr/src/lib/libc/inc')
-rw-r--r--usr/src/lib/libc/inc/thr_uberdata.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/usr/src/lib/libc/inc/thr_uberdata.h b/usr/src/lib/libc/inc/thr_uberdata.h
index 2b8d000b29..5f67e760e2 100644
--- a/usr/src/lib/libc/inc/thr_uberdata.h
+++ b/usr/src/lib/libc/inc/thr_uberdata.h
@@ -858,16 +858,25 @@ typedef struct {
* atexit() data structures.
* See port/gen/atexit.c for details.
*/
-typedef void (*_exithdlr_func_t) (void);
+typedef void (*_exithdlr_func_t) (void*);
typedef struct _exthdlr {
struct _exthdlr *next; /* next in handler list */
_exithdlr_func_t hdlr; /* handler itself */
+ void *arg; /* argument to handler */
+ void *dso; /* DSO associated with handler */
} _exthdlr_t;
typedef struct {
mutex_t exitfns_lock;
_exthdlr_t *head;
+ /*
+ * exit_frame_monitor is part of a private contract between libc and
+ * the Sun C++ runtime.
+ *
+ * It should be NULL until exit() is called, and thereafter hold the
+ * frame pointer of the function implementing our exit processing.
+ */
void *exit_frame_monitor;
char exit_pad[64 - /* pad out to 64 bytes */
(sizeof (mutex_t) + sizeof (_exthdlr_t *) + sizeof (void *))];