00001 extern "C" uint32 _StartApp();
00002
00003 extern "C" void _linux_init_thread(Thread *);
00004 extern "C" void _linux_sigpoll_fd(uint32);
00005 extern "C" void _linux_sigpoll();
00006 extern "C" void _linux_dispatch_timer(PTR);
00007 extern "C" Window *_linux_find_window(int);
00008 extern "C" void _linux_disable_signals();
00009 extern "C" void _linux_enable_signals();
00010 extern "C" void _linux_time_t_2_Time(uint32, Time&);
00011 extern "C" uint32 _linux_Time_2_time_t(Time&);
00012 extern "C" uint32 _linux_fork();
00013
00014 #ifdef _SERVICE
00015 #define STARTAPP(x,y) \
00016 x MainInstance; \
00017 uint32 _StartApp() { \
00018 uint32 id = _linux_fork(); \
00019 if (id) return 0; \
00020 MainInstance.ThreadHandle=SystemCode::GetCurrentThreadHandle(); \
00021 MainInstance.ThreadID=SystemCode::GetCurrentThreadId(); \
00022 MainInstance.ThreadMainParam = y; \
00023 SystemData->MainThread = &MainInstance; \
00024 _linux_init_thread(&MainInstance); \
00025 return MainInstance.__StartThread(); \
00026 }
00027 #else
00028 #define STARTAPP(x,y) \
00029 x MainInstance; \
00030 uint32 _StartApp() { \
00031 MainInstance.ThreadHandle=SystemCode::GetCurrentThreadHandle(); \
00032 MainInstance.ThreadID=SystemCode::GetCurrentThreadId(); \
00033 MainInstance.ThreadMainParam = y; \
00034 SystemData->MainThread = &MainInstance; \
00035 _linux_init_thread(&MainInstance); \
00036 return MainInstance.__StartThread(); \
00037 }
00038 #endif