/* * Implementation of __cxa_atexit. */ #include #include #include #include #include "atexit.h" #ifdef _REENT_SMALL #include "on_exit_args.h" /* force linking of static instance of _on_exit_args */ const void * const __cxa_atexit_dummy = &__on_exit_args; #endif /* def _REENT_SMALL */ /* * Register a function to be performed at exit or DSO unload. */ int _DEFUN (__cxa_atexit, (fn, arg, d), void (*fn) (void *) _AND void *arg _AND void *d) { #ifdef _LITE_EXIT /* Refer to comments in __atexit.c for more details of lite exit. */ int __register_exitproc _PARAMS ((int, void (*fn) (void), _PTR, _PTR)) __attribute__ ((weak)); if (!__register_exitproc) return 0; else #endif return __register_exitproc (__et_cxa, (void (*)(void)) fn, arg, d); }