1 //
\8eQ
\8dlURL
\r//http://wiki.monaos.org/pukiwiki.php?%B5%C4%CF%C0%2Fstatic%CA%D1%BF%F4%A4%CE%BD%E9%B4%FC%B2%BD
\r#include <stdio.h>
\r#include "typedefs.h"
\r\rtypedef void (*PFV)(void);
\r\r#ifdef __cplusplus
\rextern "C" {
\r#endif
\rextern PFV __CTOR_LIST__[];
\rextern PFV __DTOR_LIST__[];
\r#ifdef __cplusplus
\r}
\r#endif
\r\rextern "C" int _main(int,char*[],char*[]);
\r\rstatic void __finit(const PFV *list) {
\r DWORD cnt;
\r\r cnt = (DWORD)list[0];
\r list++;
\r list = (PFV *)((((DWORD)list) + 3) & (~3)); // align bug?
\r if (cnt == -1) {
\r while(*list != NULL) {
\r (**list++)();
\r }
\r }
\r else {
\r while(cnt) {
\r cnt--;
\r (**list++)();
\r }
\r }
\r}
\r\rextern "C" int user_start(void) {
\r int r;
\r\r //memmng_initialize(0xC0000000, 8 * 1024 * 1024);
\r //__fsio_initialize();
\r //makearg();
\r __finit(__CTOR_LIST__);
\r r = _main(0, 0, 0);
\r __finit(__DTOR_LIST__);
\r //free(__argv);
\r //memmng_deinitialize();
\r //syscall_kill();
\r return(r);
\r}