2 Copyright © 1995-2009, The AROS Development Team. All rights reserved.
5 Desc: autoinit library - arosc.library specific code
9 #include <aros/symbolsets.h>
10 #include <aros/startup.h>
13 #include <aros/debug.h>
15 #include "arosc_init.h"
18 void __arosc_program_startup(void);
19 void __arosc_program_end(void);
22 static int __arosc_libopen(struct Library
*aroscbase
)
24 return arosc_internalinit();
27 static void __arosc_libclose(struct Library
*aroscbase
)
32 ADD2OPENLIB(__arosc_libopen
, 0);
33 ADD2CLOSELIB(__arosc_libclose
, 0);
35 ADD2LIBS("arosc.library", 42, struct Library
*, aroscbase
);
37 static struct arosc_startup arosc_startup
;
39 static void __arosc_startup(void)
41 struct Process
*myproc
;
43 D(bug("[__arosc_startup] Start\n"));
45 __arosc_program_startup();
47 myproc
= (struct Process
*)FindTask(NULL
);
48 GetIntETask(FindTask(NULL
))->iet_startup
= &arosc_startup
;
49 arosc_startup
.as_startup_error
= __startup_error
;
51 if (setjmp(arosc_startup
.as_startup_jmp_buf
) == 0)
53 D(bug("[__arosc_startup] setjmp() called\n"));
54 __startup_entries_next();
58 D(bug("[__arosc_startup] setjmp() return from longjmp\n"));
59 __startup_error
= arosc_startup
.as_startup_error
;
62 __arosc_program_end();
64 D(bug("[__arosc_startup] Leave\n"));
67 ADD2SET(__arosc_startup
, program_entries
, 0);