• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * This is the entry point for the Python 2.3 core DLL.
3  */
4 
5 #define NULL 0
6 
7 #define REF(s)  extern void s(); void *____ref_##s = &s;
8 
9 /* Make references to imported symbols to pull them from static library */
10 REF(Py_Main);
11 
12 #include <signal.h>
13 
14 extern int _CRT_init(void);
15 extern void _CRT_term(void);
16 extern void __ctordtorInit(void);
17 extern void __ctordtorTerm(void);
18 
_DLL_InitTerm(unsigned long mod_handle,unsigned long flag)19 unsigned long _DLL_InitTerm(unsigned long mod_handle, unsigned long flag)
20 {
21     switch (flag)
22     {
23         case 0:
24             if (_CRT_init())
25                 return 0;
26             __ctordtorInit();
27 
28             /* Ignore fatal signals */
29             signal(SIGSEGV, SIG_IGN);
30             signal(SIGFPE, SIG_IGN);
31 
32             return 1;
33 
34         case 1:
35             __ctordtorTerm();
36             _CRT_term();
37             return 1;
38 
39         default:
40             return 0;
41     }
42 }
43