home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / py2s152.zip / PC / os2vacpp / config.h < prev    next >
C/C++ Source or Header  |  1999-06-27  |  28KB  |  627 lines

  1. #ifndef Py_CONFIG_H
  2. #define Py_CONFIG_H
  3.  
  4. /**********************************************************************
  5.  * config.h.  NOT Generated automatically by configure.
  6.  *
  7.  * This is a manually maintained version used for the IBM VisualAge
  8.  * C/C++ compiler on the OS/2 platform.  It is a standard part of
  9.  * the Python distribution.
  10.  *
  11.  * FILESYSTEM DEFINES:
  12.  * The code specific to a particular way of naming files and
  13.  * directory paths should be wrapped around one of the following
  14.  * #defines:
  15.  *
  16.  *     DOSFILESYS   PCDOS-Style (for PCDOS, Windows and OS/2)
  17.  *     MACFILESYS   Macintosh-Style
  18.  *     UNIXFILESYS  Unix-Style
  19.  * 
  20.  * Because of the different compilers and operating systems in
  21.  * use on the Intel platform, neither the compiler name nor
  22.  * the operating system name is sufficient.
  23.  *
  24.  * OS/2 DEFINES:
  25.  * The code specific to OS/2's Program API should be wrapped around
  26.  *
  27.  * __TOS_OS2__   Target Operating System, OS/2
  28.  *
  29.  * Any code specific to the compiler itself should be wrapped with
  30.  *
  31.  * __IBMC__      IBM C Compiler
  32.  * __IBMCPP__    IBM C++ Compiler
  33.  *
  34.  * Note that since the VisualAge C/C++ compiler is also available
  35.  * for the Windows platform, it may be necessary to use both a
  36.  * __TOS_OS2__ and a __IBMC__ to select a very specific environment.
  37.  *
  38.  **********************************************************************/
  39.  
  40. /*
  41.  * Some systems require special declarations for data items imported
  42.  * or exported from dynamic link libraries.  Note that the definition
  43.  * of DL_IMPORT covers both cases.  Define USE_DL_IMPORT for the client
  44.  * of a DLL.  Define USE_DL_EXPORT when making a DLL.
  45.  */
  46.  
  47. #include <io.h>
  48.  
  49. /* Configuration Options for Finding Modules */
  50. #define PREFIX                 ""
  51. #define EXEC_PREFIX            ""
  52.  
  53. /* Provide a default library so writers of extension modules
  54.  * won't have to explicitly specify it anymore
  55.  */
  56. #pragma library("Python15.lib")
  57.  
  58. /***************************************************/
  59. /*    32-Bit IBM VisualAge C/C++ v3.0 for OS/2     */
  60. /*  (Convert Compiler Flags into Useful Switches)  */
  61. /***************************************************/
  62. #define PLATFORM    "os2"
  63. #define COMPILER    "[VisualAge C/C++]"
  64. #define PYOS_OS2    /* Define Indicator of Operating System */
  65. #define PYCC_VACPP  /* Define Indicator of C Compiler */
  66.  
  67.   /* Platform Filesystem */
  68. #define PYTHONPATH  ".;.\\lib;.\\lib\\plat-win;.\\lib\\lib-tk;.\\lib\\lib-dynload;.\\lib\\site-packages;.\\lib\\dos-8x3"
  69. #define DOSFILESYS  /* OS/2 Uses the DOS File Naming Conventions */
  70. #define IMPORT_8x3_NAMES
  71.  
  72.   /* Platform CPU-Mode Dependencies */
  73. #define WORD_BIT                32 /* OS/2 is a 32-Bit Operating System */
  74. #define LONG_BIT                32
  75. #define SIZEOF_INT               4 /* Count of Bytes in an (int)            */
  76. #define SIZEOF_LONG              4 /* Count of Bytes in a (long)            */
  77. #define SIZEOF_VOID_P            4 /* Count of Bytes in a (void *)          */
  78. /* #define HAVE_LONG_LONG     1 */ /* VAC++ does not support (long long)    */
  79. /* #define SIZEOF_LONG_LONG   8 */ /* Count of Bytes in a (long long)       */
  80.  
  81. /* Define if type char is unsigned and you are not using gcc.  */
  82. #ifndef __CHAR_UNSIGNED__
  83. /* #undef __CHAR_UNSIGNED__ */
  84. #endif
  85.  
  86. typedef int mode_t;
  87. typedef int uid_t;
  88. typedef int gid_t;
  89. typedef int pid_t;
  90.  
  91. #if defined(__MULTI__)     /* If Compiler /Gt+ Multithread Option Enabled,  */
  92.   #define WITH_THREAD            1 /* Enable Threading Throughout Python    */
  93.   #define OS2_THREADS            1 /* And Use the OS/2 Flavor of Threads    */
  94. /* #define _REENTRANT 1 */ /* Use thread-safe errno, h_errno, and other fns */
  95. #endif
  96.  
  97.   /* Compiler Runtime Library Capabilities */
  98. #include <ctype.h>
  99. #include <direct.h>
  100. /* #undef BAD_STATIC_FORWARD */ /* if compiler botches static fwd decls */
  101.  
  102. #define STDC_HEADERS             1 /* VAC++ is an ANSI C Compiler           */
  103. #define HAVE_LIMITS_H            1 /* #include <limits.h>                   */
  104. #define HAVE_STDLIB_H            1 /* #include <stdlib.h>                   */
  105. #define HAVE_HYPOT               1 /* hypot()                               */
  106. #define HAVE_PUTENV              1 /* putenv()                              */
  107. #define HAVE_STDDEF_H            1 /* #include <stddef.h>                   */
  108. /* #define VA_LIST_IS_ARRAY   1 */ /* if va_list is an array of some kind   */
  109.  
  110.   /* Variable-Arguments/Prototypes */
  111. #define HAVE_PROTOTYPES          1 /* VAC++ supports C Function Prototypes  */
  112. #define HAVE_STDARG_H            1 /* #include <stdarg.h>                   */
  113. #define HAVE_STDARG_PROTOTYPES   1 /* Our <stdarg.h> has prototypes         */
  114.  
  115.   /* String/Memory/Locale Operations */
  116. #define HAVE_STRDUP              1 /* strdup()                              */
  117. #define HAVE_MEMMOVE             1 /* memmove()                             */
  118. #define HAVE_STRERROR            1 /* strerror()                            */
  119. #define HAVE_SETLOCALE           1 /* setlocale()                           */
  120. #define HAVE_LOCALE_H            1 /* #include <locale.h>                   */
  121. #define MALLOC_ZERO_RETURNS_NULL 1 /* Our malloc(0) returns a NULL ptr      */
  122.  
  123.   /* Signal Handling */
  124. #define RETSIGTYPE            void /* Return type of handlers (int or void) */
  125. #define HAVE_SIGNAL_H            1 /* #include <signal.h>                   */
  126. /* #undef WANT_SIGFPE_HANDLER   */ /* Handle SIGFPE (see Include/pyfpe.h)   */
  127. /* #define HAVE_ALARM         1 */ /* alarm()                               */
  128. /* #define HAVE_SIGINTERRUPT  1 */ /* siginterrupt()                        */
  129. /* #define HAVE_SIGRELSE      1 */ /* sigrelse()                            */
  130. #define DONT_HAVE_SIG_ALARM      1
  131. #define DONT_HAVE_SIG_PAUSE      1
  132.  
  133.   /* Clock/Time Support */
  134. #define HAVE_FTIME               1 /* We have ftime() in <sys/timeb.h>      */
  135. #define HAVE_CLOCK               1 /* clock()                               */
  136. #define HAVE_STRFTIME            1 /* strftime()                            */
  137. #define HAVE_STRPTIME            1 /* strptime()                            */
  138. #define HAVE_MKTIME              1 /* mktime()                              */
  139. #define HAVE_TZNAME              1 /* No tm_zone but do have tzname[]       */
  140. #define HAVE_TIMES               1 /* #include <sys/times.h>                */
  141. #define HAVE_SYS_UTIME_H         1 /* #include <sys/utime.h>                */
  142. /* #define HAVE_UTIME_H       1 */ /* #include <utime.h>                    */
  143. #define HAVE_SYS_TIME_H          1 /* #include <sys/time.h>                 */
  144. /* #define TM_IN_SYS_TIME     1 */ /* <sys/time.h> declares struct tm       */
  145. #define HAVE_GETTIMEOFDAY        1 /* gettimeofday()                        */
  146. /* #define GETTIMEOFDAY_NO_TZ 1 */ /* gettimeofday() does not have 2nd arg  */
  147. /* #define HAVE_TIMEGM        1 */ /* timegm()                              */
  148. #define TIME_WITH_SYS_TIME       1 /* Mix <sys/time.h> and <time.h>         */
  149. #define SYS_SELECT_WITH_SYS_TIME 1 /* Mix <sys/select.h> and <sys/time.h>   */
  150. /* #define HAVE_ALTZONE       1 */ /* if <time.h> defines altzone           */
  151.  
  152.   /* Network/Sockets Support */
  153. #define HAVE_SYS_SELECT_H       1 /* #include <sys/select.h>                */
  154. #define BSD_SELECT              1 /* Use BSD versus OS/2 form of select()   */
  155. #define HAVE_SELECT             1 /* select()                               */
  156. #define HAVE_GETPEERNAME        1 /* getpeername()                          */
  157. /* #undef HAVE_GETHOSTNAME_R 1 */ /* gethostname_r()                        */
  158.  
  159.   /* File I/O */
  160. #define HAVE_DUP2                1 /* dup2()                                */
  161. #define HAVE_EXECV               1 /* execv()                               */
  162. #define HAVE_SETVBUF             1 /* setvbuf()                             */
  163. #define HAVE_GETCWD              1 /* getcwd()                              */
  164. #define HAVE_PIPE                1 /* pipe()     [OS/2-specific code added] */
  165. #define HAVE_FCNTL_H             1 /* #include <fcntl.h>                    */
  166. /* #define HAVE_FLOCK         1 */ /* flock()                               */
  167. /* #define HAVE_TRUNCATE      1 */ /* truncate()                            */
  168. /* #define HAVE_FTRUNCATE     1 */ /* ftruncate()                           */
  169. /* #define HAVE_LSTAT         1 */ /* lstat()                               */
  170. /* #define HAVE_DIRENT_H      1 */ /* #include <dirent.h>                   */
  171. /* #define HAVE_OPENDIR       1 */ /* opendir()                             */
  172.  
  173.   /* Process Operations */
  174. #define HAVE_GETPID              1 /* getpid()                              */
  175. #define HAVE_SYSTEM              1 /* system()                              */
  176. #define HAVE_WAIT                1 /* wait()                                */
  177. #define HAVE_KILL                1 /* kill()     [OS/2-specific code added] */
  178. #define HAVE_POPEN               1 /* popen()    [OS/2-specific code added] */
  179. /* #define HAVE_GETPPID       1 */ /* getppid()                             */
  180. /* #define HAVE_WAITPID       1 */ /* waitpid()                             */
  181. /* #define HAVE_FORK          1 */ /* fork()                                */
  182.  
  183.   /* User/Group ID Queries */
  184. /* #define HAVE_GETEGID       1 */
  185. /* #define HAVE_GETEUID       1 */
  186. /* #define HAVE_GETGID        1 */
  187. /* #define HAVE_GETUID        1 */
  188.  
  189.   /* Unix-Specific */
  190. #define HAVE_SYS_UN_H         1    /* #include <sys/un.h>                   */
  191. /* #define HAVE_SYS_UTSNAME_H 1 */ /* #include <sys/utsname.h>              */
  192. /* #define HAVE_SYS_WAIT_H    1 */ /* #include <sys/wait.h>                 */
  193. /* #define HAVE_UNISTD_H      1 */ /* #include <unistd.h>                   */
  194. /* #define HAVE_UNAME         1 */ /* uname ()                              */
  195.  
  196. #ifdef USE_DL_EXPORT
  197.   #define DL_IMPORT(RTYPE) RTYPE _System
  198. #endif
  199.  
  200. /*
  201.  * Declare the calling convention of all externally accessible entry
  202.  * points to be the standard OS/2 form, so that code other than that
  203.  * compiled with IBM's Visualage C/C++ can use the Python DLL.
  204.  *
  205.  *      (still being debugged -- tricky to get ALL entrypoints)
  206.  */
  207.  
  208. #pragma linkage(PyArg_Parse, system)
  209. #pragma linkage(PyArg_ParseTuple, system)
  210. #pragma linkage(PyArg_ParseTupleAndKeywords, system)
  211. #pragma linkage(PyArg_VaParse, system)
  212. #pragma linkage(PyBuffer_FromMemory, system)
  213. #pragma linkage(PyBuffer_FromObject, system)
  214. #pragma linkage(PyBuffer_FromReadWriteMemory, system)
  215. #pragma linkage(PyBuffer_FromReadWriteObject, system)
  216. #pragma linkage(PyBuffer_New, system)
  217. #pragma linkage(PyCFunction_Fini, system)
  218. #pragma linkage(PyCFunction_GetFlags, system)
  219. #pragma linkage(PyCFunction_GetFunction, system)
  220. #pragma linkage(PyCFunction_GetSelf, system)
  221. #pragma linkage(PyCFunction_New, system)
  222. #pragma linkage(PyCObject_AsVoidPtr, system)
  223. #pragma linkage(PyCObject_FromVoidPtrAndDesc, system)
  224. #pragma linkage(PyCObject_FromVoidPtr, system)
  225. #pragma linkage(PyCObject_GetDesc, system)
  226. #pragma linkage(PyCObject_Import, system)
  227. #pragma linkage(PyCallable_Check, system)
  228. #pragma linkage(PyClass_IsSubclass, system)
  229. #pragma linkage(PyClass_New, system)
  230. #pragma linkage(PyCode_Addr2Line, system)
  231. #pragma linkage(PyCode_New, system)
  232. #pragma linkage(PyComplex_AsCComplex, system)
  233. #pragma linkage(PyComplex_FromCComplex, system)
  234. #pragma linkage(PyComplex_FromDoubles, system)
  235. #pragma linkage(PyComplex_ImagAsDouble, system)
  236. #pragma linkage(PyComplex_RealAsDouble, system)
  237. #pragma linkage(PyDict_Clear, system)
  238. #pragma linkage(PyDict_DelItem, system)
  239. #pragma linkage(PyDict_DelItemString, system)
  240. #pragma linkage(PyDict_GetItem, system)
  241. #pragma linkage(PyDict_GetItemString, system)
  242. #pragma linkage(PyDict_Items, system)
  243. #pragma linkage(PyDict_Keys, system)
  244. #pragma linkage(PyDict_New, system)
  245. #pragma linkage(PyDict_Next, system)
  246. #pragma linkage(PyDict_SetItem, system)
  247. #pragma linkage(PyDict_SetItemString, system)
  248. #pragma linkage(PyDict_Size, system)
  249. #pragma linkage(PyDict_Values, system)
  250. #pragma linkage(PyErr_BadArgument, system)
  251. #pragma linkage(PyErr_BadInternalCall, system)
  252. #pragma linkage(PyErr_CheckSignals, system)
  253. #pragma linkage(PyErr_Clear, system)
  254. #pragma linkage(PyErr_ExceptionMatches, system)
  255. #pragma linkage(PyErr_Fetch, system)
  256. #pragma linkage(PyErr_Format, system)
  257. #pragma linkage(PyErr_GivenExceptionMatches, system)
  258. #pragma linkage(PyErr_NewException, system)
  259. #pragma linkage(PyErr_NoMemory, system)
  260. #pragma linkage(PyErr_NormalizeException, system)
  261. #pragma linkage(PyErr_Occurred, system)
  262. #pragma linkage(PyErr_Print, system)
  263. #pragma linkage(PyErr_PrintEx, system)
  264. #pragma linkage(PyErr_Restore, system)
  265. #pragma linkage(PyErr_SetFromErrno, system)
  266. #pragma linkage(PyErr_SetFromErrnoWithFilename, system)
  267. #pragma linkage(PyErr_SetInterrupt, system)
  268. #pragma linkage(PyErr_SetNone, system)
  269. #pragma linkage(PyErr_SetObject, system)
  270. #pragma linkage(PyErr_SetString, system)
  271. #pragma linkage(PyEval_AcquireLock, system)
  272. #pragma linkage(PyEval_AcquireThread, system)
  273. #pragma linkage(PyEval_CallFunction, system)
  274. #pragma linkage(PyEval_CallMethod, system)
  275. #pragma linkage(PyEval_CallObject, system)
  276. #pragma linkage(PyEval_CallObjectWithKeywords, system)
  277. #pragma linkage(PyEval_EvalCode, system)
  278. #pragma linkage(PyEval_GetBuiltins, system)
  279. #pragma linkage(PyEval_GetFrame, system)
  280. #pragma linkage(PyEval_GetGlobals, system)
  281. #pragma linkage(PyEval_GetLocals, system)
  282. #pragma linkage(PyEval_GetRestricted, system)
  283. #pragma linkage(PyEval_InitThreads, system)
  284. #pragma linkage(PyEval_ReleaseLock, system)
  285. #pragma linkage(PyEval_ReleaseThread, system)
  286. #pragma linkage(PyEval_RestoreThread, system)
  287. #pragma linkage(PyEval_SaveThread, system)
  288. #pragma linkage(PyFile_AsFile, system)
  289. #pragma linkage(PyFile_FromFile, system)
  290. #pragma linkage(PyFile_FromString, system)
  291. #pragma linkage(PyFile_GetLine, system)
  292. #pragma linkage(PyFile_Name, system)
  293. #pragma linkage(PyFile_SetBufSize, system)
  294. #pragma linkage(PyFile_SoftSpace, system)
  295. #pragma linkage(PyFile_WriteObject, system)
  296. #pragma linkage(PyFile_WriteString, system)
  297. #pragma linkage(PyFloat_AsDouble, system)
  298. #pragma linkage(PyFloat_AsString, system)
  299. #pragma linkage(PyFloat_Fini, system)
  300. #pragma linkage(PyFloat_FromDouble, system)
  301. #pragma linkage(PyFrame_BlockPop, system)
  302. #pragma linkage(PyFrame_BlockSetup, system)
  303. #pragma linkage(PyFrame_FastToLocals, system)
  304. #pragma linkage(PyFrame_Fini, system)
  305. #pragma linkage(PyFrame_LocalsToFast, system)
  306. #pragma linkage(PyFrame_New, system)
  307. #pragma linkage(PyFunction_GetCode, system)
  308. #pragma linkage(PyFunction_GetDefaults, system)
  309. #pragma linkage(PyFunction_GetGlobals, system)
  310. #pragma linkage(PyFunction_New, system)
  311. #pragma linkage(PyFunction_SetDefaults, system)
  312. #pragma linkage(PyGrammar_AddAccelerators, system)
  313. #pragma linkage(PyGrammar_FindDFA, system)
  314. #pragma linkage(PyGrammar_LabelRepr, system)
  315. #pragma linkage(PyGrammar_RemoveAccelerators, system)
  316. #pragma linkage(PyImport_AddModule, system)
  317. #pragma linkage(PyImport_AppendInittab, system)
  318. #pragma linkage(PyImport_Cleanup, system)
  319. #pragma linkage(PyImport_ExecCodeModule, system)
  320. #pragma linkage(PyImport_ExecCodeModuleEx, system)
  321. #pragma linkage(PyImport_ExtendInittab, system)
  322. #pragma linkage(PyImport_GetMagicNumber, system)
  323. #pragma linkage(PyImport_GetModuleDict, system)
  324. #pragma linkage(PyImport_Import, system)
  325. #pragma linkage(PyImport_ImportFrozenModule, system)
  326. #pragma linkage(PyImport_ImportModule, system)
  327. #pragma linkage(PyImport_ImportModuleEx, system)
  328. #pragma linkage(PyImport_ReloadModule, system)
  329. #pragma linkage(PyInstance_DoBinOp, system)
  330. #pragma linkage(PyInstance_New, system)
  331. #pragma linkage(PyInt_AsLong, system)
  332. #pragma linkage(PyInt_Fini, system)
  333. #pragma linkage(PyInt_FromLong, system)
  334. #pragma linkage(PyInt_GetMax, system)
  335. #pragma linkage(PyInterpreterState_Clear, system)
  336. #pragma linkage(PyInterpreterState_Delete, system)
  337. #pragma linkage(PyInterpreterState_New, system)
  338. #pragma linkage(PyList_Append, system)
  339. #pragma linkage(PyList_AsTuple, system)
  340. /* #pragma linkage(PyList_GetItem, system) */
  341. #pragma linkage(PyList_GetSlice, system)
  342. #pragma linkage(PyList_Insert, system)
  343. #pragma linkage(PyList_New, system)
  344. #pragma linkage(PyList_Reverse, system)
  345. #pragma linkage(PyList_SetItem, system)
  346. #pragma linkage(PyList_SetSlice, system)
  347. #pragma linkage(PyList_Size, system)
  348. #pragma linkage(PyList_Sort, system)
  349. #pragma linkage(PyLong_AsDouble, system)
  350. #pragma linkage(PyLong_AsLong, system)
  351. /*              PyLong_AsLongLong */
  352. #pragma linkage(PyLong_AsUnsignedLong, system)
  353. /*              PyLong_AsUnsignedLongLong */
  354. #pragma linkage(PyLong_AsVoidPtr, system)
  355. #pragma linkage(PyLong_FromDouble, system)
  356. #pragma linkage(PyLong_FromLong, system)
  357. /*              PyLong_FromLongLong */
  358. #pragma linkage(PyLong_FromString, system)
  359. #pragma linkage(PyLong_FromUnsignedLong, system)
  360. /*              PyLong_FromUnsignedLongLong */
  361. #pragma linkage(PyLong_FromVoidPtr, system)
  362. #pragma linkage(PyMapping_Check, system)
  363. #pragma linkage(PyMapping_GetItemString, system)
  364. #pragma linkage(PyMapping_HasKey, system)
  365. #pragma linkage(PyMapping_HasKeyString, system)
  366. #pragma linkage(PyMapping_Length, system)
  367. #pragma linkage(PyMapping_SetItemString, system)
  368. /* #pragma linkage(PyMarshal_Init, system) */
  369. #pragma linkage(PyMarshal_ReadLongFromFile, system)
  370. #pragma linkage(PyMarshal_ReadObjectFromFile, system)
  371. #pragma linkage(PyMarshal_ReadObjectFromString, system)
  372. #pragma linkage(PyMarshal_WriteLongToFile, system)
  373. #pragma linkage(PyMarshal_WriteObjectToFile, system)
  374. #pragma linkage(PyMarshal_WriteObjectToString, system)
  375. #pragma linkage(PyMem_Free, system)
  376. #pragma linkage(PyMem_Malloc, system)
  377. #pragma linkage(PyMem_Realloc, system)
  378. #pragma linkage(PyMember_Get, system)
  379. #pragma linkage(PyMember_Set, system)
  380. #pragma linkage(PyMethod_Class, system)
  381. #pragma linkage(PyMethod_Fini, system)
  382. #pragma linkage(PyMethod_Function, system)
  383. #pragma linkage(PyMethod_New, system)
  384. #pragma linkage(PyMethod_Self, system)
  385. #pragma linkage(PyModule_GetDict, system)
  386. #pragma linkage(PyModule_GetName, system)
  387. #pragma linkage(PyModule_New, system)
  388. #pragma linkage(PyNode_AddChild, system)
  389. #pragma linkage(PyNode_Compile, system)
  390. #pragma linkage(PyNode_Free, system)
  391. /*              PyNode_ListTree */
  392. #pragma linkage(PyNode_New, system)
  393. #pragma linkage(PyNumber_Absolute, system)
  394. /* #pragma linkage(PyNumber_Add, system) */
  395. /* #pragma linkage(PyNumber_And, system) */
  396. #pragma linkage(PyNumber_Check, system)
  397. #pragma linkage(PyNumber_Coerce, system)
  398. #pragma linkage(PyNumber_CoerceEx, system)
  399. /* #pragma linkage(PyNumber_Divide, system) */
  400. /* #pragma linkage(PyNumber_Divmod, system) */
  401. #pragma linkage(PyNumber_Float, system)
  402. #pragma linkage(PyNumber_Int, system)
  403. #pragma linkage(PyNumber_Invert, system)
  404. #pragma linkage(PyNumber_Long, system)
  405. /* #pragma linkage(PyNumber_Lshift, system) */
  406. /* #pragma linkage(PyNumber_Multiply, system) */
  407. #pragma linkage(PyNumber_Negative, system)
  408. /* #pragma linkage(PyNumber_Or, system) */
  409. #pragma linkage(PyNumber_Positive, system)
  410. #pragma linkage(PyNumber_Power, system)
  411. /* #pragma linkage(PyNumber_Remainder, system) */
  412. /* #pragma linkage(PyNumber_Rshift, system) */
  413. /* #pragma linkage(PyNumber_Subtract, system) */
  414. /* #pragma linkage(PyNumber_Xor, system) */
  415. #pragma linkage(PyOS_AfterFork, system)
  416. #pragma linkage(PyOS_FiniInterrupts, system)
  417. #pragma linkage(PyOS_GetLastModificationTime, system)
  418. #pragma linkage(PyOS_InitInterrupts, system)
  419. #pragma linkage(PyOS_InterruptOccurred, system)
  420. #pragma linkage(PyOS_Readline, system)
  421. /* #pragma linkage(PyOS_StdioReadline, system) */
  422. #pragma linkage(PyOS_strtol, system)
  423. #pragma linkage(PyOS_strtoul, system)
  424. #pragma linkage(PyObject_CallFunction, system)
  425. #pragma linkage(PyObject_CallMethod, system)
  426. #pragma linkage(PyObject_CallObject, system)
  427. #pragma linkage(PyObject_Cmp, system)
  428. #pragma linkage(PyObject_Compare, system)
  429. #pragma linkage(PyObject_DelItem, system)
  430. #pragma linkage(PyObject_GetAttr, system)
  431. #pragma linkage(PyObject_GetAttrString, system)
  432. #pragma linkage(PyObject_GetItem, system)
  433. #pragma linkage(PyObject_HasAttr, system)
  434. #pragma linkage(PyObject_HasAttrString, system)
  435. #pragma linkage(PyObject_Hash, system)
  436. #pragma linkage(PyObject_IsTrue, system)
  437. #pragma linkage(PyObject_Length, system)
  438. #pragma linkage(PyObject_Not, system)
  439. #pragma linkage(PyObject_Print, system)
  440. #pragma linkage(PyObject_Repr, system)
  441. #pragma linkage(PyObject_SetAttr, system)
  442. #pragma linkage(PyObject_SetAttrString, system)
  443. #pragma linkage(PyObject_SetItem, system)
  444. #pragma linkage(PyObject_Str, system)
  445. #pragma linkage(PyObject_Type, system)
  446. #pragma linkage(PyParser_AddToken, system)
  447. #pragma linkage(PyParser_Delete, system)
  448. #pragma linkage(PyParser_New, system)
  449. #pragma linkage(PyParser_ParseFile, system)
  450. #pragma linkage(PyParser_ParseString, system)
  451. #pragma linkage(PyParser_SimpleParseFile, system)
  452. #pragma linkage(PyParser_SimpleParseString, system)
  453. #pragma linkage(PyRange_New, system)
  454. #pragma linkage(PyRun_AnyFile, system)
  455. #pragma linkage(PyRun_File, system)
  456. #pragma linkage(PyRun_InteractiveLoop, system)
  457. #pragma linkage(PyRun_InteractiveOne, system)
  458. #pragma linkage(PyRun_SimpleFile, system)
  459. #pragma linkage(PyRun_SimpleString, system)
  460. #pragma linkage(PyRun_String, system)
  461. #pragma linkage(PySequence_Check, system)
  462. #pragma linkage(PySequence_Concat, system)
  463. #pragma linkage(PySequence_Contains, system)
  464. #pragma linkage(PySequence_Count, system)
  465. #pragma linkage(PySequence_DelItem, system)
  466. #pragma linkage(PySequence_DelSlice, system)
  467. #pragma linkage(PySequence_GetItem, system)
  468. #pragma linkage(PySequence_GetSlice, system)
  469. #pragma linkage(PySequence_In, system)
  470. #pragma linkage(PySequence_Index, system)
  471. #pragma linkage(PySequence_Length, system)
  472. #pragma linkage(PySequence_List, system)
  473. #pragma linkage(PySequence_Repeat, system)
  474. #pragma linkage(PySequence_SetItem, system)
  475. #pragma linkage(PySequence_SetSlice, system)
  476. #pragma linkage(PySequence_Tuple, system)
  477. #pragma linkage(PySlice_GetIndices, system)
  478. #pragma linkage(PySlice_New, system)
  479. #pragma linkage(PyString_AsString, system)
  480. #pragma linkage(PyString_Concat, system)
  481. #pragma linkage(PyString_ConcatAndDel, system)
  482. #pragma linkage(PyString_Fini, system)
  483. #pragma linkage(PyString_Format, system)
  484. #pragma linkage(PyString_FromString, system)
  485. #pragma linkage(PyString_FromStringAndSize, system)
  486. #pragma linkage(PyString_InternFromString, system)
  487. #pragma linkage(PyString_InternInPlace, system)
  488. #pragma linkage(PyString_Size, system)
  489. #pragma linkage(PySys_GetFile, system)
  490. #pragma linkage(PySys_GetObject, system)
  491. #pragma linkage(PySys_SetArgv, system)
  492. #pragma linkage(PySys_SetObject, system)
  493. #pragma linkage(PySys_SetPath, system)
  494. #pragma linkage(PySys_WriteStderr, system)
  495. #pragma linkage(PySys_WriteStdout, system)
  496. #pragma linkage(PyThreadState_Clear, system)
  497. #pragma linkage(PyThreadState_Delete, system)
  498. #pragma linkage(PyThreadState_Get, system)
  499. #pragma linkage(PyThreadState_GetDict, system)
  500. #pragma linkage(PyThreadState_New, system)
  501. #pragma linkage(PyThreadState_Swap, system)
  502. #pragma linkage(PyThread__exit_thread, system)
  503. #pragma linkage(PyThread_acquire_lock, system)
  504. #pragma linkage(PyThread_allocate_lock, system)
  505. #pragma linkage(PyThread_allocate_sema, system)
  506. #pragma linkage(PyThread_down_sema, system)
  507. #pragma linkage(PyThread_exit_thread, system)
  508. #pragma linkage(PyThread_free_lock, system)
  509. #pragma linkage(PyThread_free_sema, system)
  510. #pragma linkage(PyThread_get_thread_ident, system)
  511. #pragma linkage(PyThread_init_thread, system)
  512. #pragma linkage(PyThread_release_lock, system)
  513. #pragma linkage(PyThread_start_new_thread, system)
  514. #pragma linkage(PyThread_up_sema, system)
  515. #pragma linkage(PyToken_OneChar, system)
  516. #pragma linkage(PyToken_TwoChars, system)
  517. #pragma linkage(PyTokenizer_Free, system)
  518. #pragma linkage(PyTokenizer_FromFile, system)
  519. #pragma linkage(PyTokenizer_FromString, system)
  520. #pragma linkage(PyTokenizer_Get, system)
  521. #pragma linkage(PyTraceBack_Here, system)
  522. #pragma linkage(PyTraceBack_Print, system)
  523. #pragma linkage(PyTuple_Fini, system)
  524. /*              PyTuple_GetItem */
  525. #pragma linkage(PyTuple_GetSlice, system)
  526. #pragma linkage(PyTuple_New, system)
  527. #pragma linkage(PyTuple_SetItem, system)
  528. #pragma linkage(PyTuple_Size, system)
  529. #pragma linkage(Py_AddPendingCall, system)
  530. #pragma linkage(Py_AtExit, system)
  531. #pragma linkage(Py_BuildValue, system)
  532. #pragma linkage(Py_CompileString, system)
  533. #pragma linkage(Py_EndInterpreter, system)
  534. #pragma linkage(Py_Exit, system)
  535. #pragma linkage(Py_FatalError, system)
  536. #pragma linkage(Py_FdIsInteractive, system)
  537. #pragma linkage(Py_Finalize, system)
  538. #pragma linkage(Py_FindMethod, system)
  539. #pragma linkage(Py_FindMethodInChain, system)
  540. #pragma linkage(Py_FlushLine, system)
  541. #pragma linkage(Py_Free, system)
  542. #pragma linkage(Py_GetArgcArgv, system)
  543. #pragma linkage(Py_GetBuildInfo, system)
  544. #pragma linkage(Py_GetCompiler, system)
  545. #pragma linkage(Py_GetCopyright, system)
  546. #pragma linkage(Py_GetExecPrefix, system)
  547. #pragma linkage(Py_GetPath, system)
  548. #pragma linkage(Py_GetPlatform, system)
  549. #pragma linkage(Py_GetPrefix, system)
  550. #pragma linkage(Py_GetProgramFullPath, system)
  551. #pragma linkage(Py_GetProgramName, system)
  552. #pragma linkage(Py_GetPythonHome, system)
  553. #pragma linkage(Py_GetVersion, system)
  554. #pragma linkage(Py_InitModule4, system)
  555. #pragma linkage(Py_Initialize, system)
  556. #pragma linkage(Py_IsInitialized, system)
  557. #pragma linkage(Py_Main, system)
  558. #pragma linkage(Py_MakePendingCalls, system)
  559. #pragma linkage(Py_Malloc, system)
  560. #pragma linkage(Py_NewInterpreter, system)
  561. #pragma linkage(Py_Realloc, system)
  562. #pragma linkage(Py_ReprEnter, system)
  563. #pragma linkage(Py_ReprLeave, system)
  564. #pragma linkage(Py_SetProgramName, system)
  565. #pragma linkage(Py_SetPythonHome, system)
  566. #pragma linkage(Py_VaBuildValue, system)
  567. #pragma linkage(_PyBuiltin_Fini_1, system)
  568. #pragma linkage(_PyBuiltin_Fini_2, system)
  569. #pragma linkage(_PyBuiltin_Init_1, system)
  570. #pragma linkage(_PyBuiltin_Init_2, system)
  571. #pragma linkage(_PyImport_FindExtension, system)
  572. #pragma linkage(_PyImport_Fini, system)
  573. #pragma linkage(_PyImport_FixupExtension, system)
  574. #pragma linkage(_PyImport_Init, system)
  575. #pragma linkage(_PyImport_LoadDynamicModule, system)
  576. #pragma linkage(_PyLong_New, system)
  577. #pragma linkage(_PyModule_Clear, system)
  578. #pragma linkage(_PyObject_New, system)
  579. #pragma linkage(_PyObject_NewVar, system)
  580. #pragma linkage(_PyString_Resize, system)
  581. #pragma linkage(_PySys_Init, system)
  582. #pragma linkage(_PyTuple_Resize, system)
  583. #pragma linkage(_Py_MD5Final, system)
  584. #pragma linkage(_Py_MD5Init, system)
  585. #pragma linkage(_Py_MD5Update, system)
  586. /*obsolete      _Py_addbit */
  587. #pragma linkage(_Py_c_diff, system)
  588. #pragma linkage(_Py_c_neg, system)
  589. #pragma linkage(_Py_c_pow, system)
  590. #pragma linkage(_Py_c_prod, system)
  591. #pragma linkage(_Py_c_quot, system)
  592. #pragma linkage(_Py_c_sum, system)
  593. /*obsolete      _Py_delbitset */
  594. /*obsolete      _Py_mergebitset */
  595. /*obsolete      _Py_meta_grammar */
  596. /*obsolete      _Py_newbitset */
  597. #pragma linkage(_Py_re_compile_fastmap, system)
  598. #pragma linkage(_Py_re_compile_initialize, system)
  599. #pragma linkage(_Py_re_compile_pattern, system)
  600. #pragma linkage(_Py_re_match, system)
  601. #pragma linkage(_Py_re_search, system)
  602. #pragma linkage(_Py_re_set_syntax, system)
  603. /*obsolete      _Py_samebitset */
  604.  
  605. #include <stdlib.h>
  606.  
  607. #if FALSE
  608.  
  609. /* Experimental malloc/free caching system (gains 10% performance) */
  610.  
  611. void * _IMPORT _LNK_CONV _jcalloc( size_t, size_t );
  612. void   _IMPORT _LNK_CONV _jfree( void * );
  613. void * _IMPORT _LNK_CONV _jmalloc( size_t );
  614. void * _IMPORT _LNK_CONV _jrealloc( void *, size_t );
  615. void * _IMPORT _LNK_CONV _jheapmin(void);
  616.  
  617. #pragma map( calloc , "_jcalloc"  )
  618. #pragma map( free   , "_jfree"    )
  619. #pragma map( malloc , "_jmalloc"  )
  620. #pragma map( realloc, "_jrealloc" )
  621. #pragma map( heapmin, "_jheapmin" )
  622.  
  623. #endif
  624.  
  625. #endif /* !Py_CONFIG_H */
  626.  
  627.