2 Copyright © 1995-2002, The AROS Development Team. All rights reserved.
6 #include "__arosc_privdata.h"
8 #include <aros/symbolsets.h>
9 #include <aros/startup.h>
10 #include <exec/lists.h>
11 #include "__exitfunc.h"
13 int __addexitfunc(struct AtExitNode
*aen
)
15 ADDHEAD((struct List
*)&__atexit_list
, (struct Node
*)aen
);
20 void __callexitfuncs(void)
22 struct AtExitNode
*aen
;
25 (aen
= (struct AtExitNode
*) REMHEAD((struct List
*) &__atexit_list
))
28 switch (aen
->node
.ln_Type
)
35 aen
->func
.fptr(__aros_startup_error
, aen
->ptr
);
41 int __init_atexit(void)
43 NEWLIST((struct List
*)&__atexit_list
);
48 void __exit_atexit(void)
50 if (!(__get_arosc_privdata()->acpd_flags
& ACPD_NEWSTARTUP
))
54 ADD2INIT(__init_atexit
, 100);
55 ADD2EXIT(__exit_atexit
, 100);