os2cfg.h
上传用户:andy_li
上传日期:2007-01-06
资源大小:1019k
文件大小:4k
源码类别:

压缩解压

开发平台:

MultiPlatform

  1. /*---------------------------------------------------------------------------
  2.     OS/2 specific configuration section:
  3.   ---------------------------------------------------------------------------*/
  4. #ifndef __os2cfg_h
  5. #define __os2cfg_h
  6. #ifdef MSDOS
  7. #  include <dos.h>           /* for REGS macro (TC) or _dos_setftime (MSC) */
  8. #  ifdef __TURBOC__          /* includes Power C */
  9. #    include <sys/timeb.h>   /* for structure ftime */
  10. #    ifndef __BORLANDC__     /* there appears to be a bug (?) in Borland's */
  11. #      include <mem.h>       /*  MEM.H related to __STDC__ and far poin-   */
  12. #    endif                   /*  ters. (dpk)  [mem.h included for memcpy]  */
  13. #  endif
  14. #endif /* MSDOS */
  15. #ifdef __IBMC__
  16. #  define S_IFMT 0xF000
  17. #  define timezone _timezone            /* (underscore names work with    */
  18. #  define tzset _tzset                  /*  all versions of C Set)        */
  19. #  define PIPE_ERROR (errno == EERRSET || errno == EOS2ERR)
  20. #endif /* __IBMC__ */
  21. #ifdef __WATCOMC__
  22. #  ifdef __386__
  23. #    ifndef WATCOMC_386
  24. #      define WATCOMC_386
  25. #    endif
  26. #    define __32BIT__
  27. #    undef far
  28. #    define far
  29. #    undef near
  30. #    define near
  31. /* Get asm routines to link properly without using "__cdecl": */
  32. #    ifndef USE_ZLIB
  33. #      pragma aux crc32         "_*" parm caller [] value [eax] modify [eax]
  34. #      pragma aux get_crc_table "_*" parm caller [] value [eax] 
  35.                                       modify [eax ecx edx]
  36. #    endif /* !USE_ZLIB */
  37. #  else /* !__386__ */
  38. #    ifndef USE_ZLIB
  39. #      pragma aux crc32         "_*" parm caller [] value [ax dx] 
  40.                                       modify [ax cx dx bx]
  41. #      pragma aux get_crc_table "_*" parm caller [] value [ax] 
  42.                                       modify [ax cx dx bx]
  43. #    endif /* !USE_ZLIB */
  44. #  endif /* ?__386__ */
  45. #  ifndef EPIPE
  46. #    define EPIPE -1
  47. #  endif
  48. #  define PIPE_ERROR (errno == EPIPE)
  49. #endif /* __WATCOMC__ */
  50. #ifdef __EMX__
  51. #  ifndef __32BIT__
  52. #    define __32BIT__
  53. #  endif
  54. #  define far
  55. #endif
  56. #ifndef __32BIT__
  57. #  define __16BIT__
  58. #endif
  59. #ifdef MSDOS
  60. #  undef MSDOS
  61. #endif
  62. #if defined(M_I86CM) || defined(M_I86LM)
  63. #  define MED_MEM
  64. #endif
  65. #if (defined(__COMPACT__) || defined(__LARGE__) || defined(__HUGE__))
  66. #  define MED_MEM
  67. #endif
  68. #ifdef __16BIT__
  69. #  ifndef MED_MEM
  70. #    define SMALL_MEM
  71. #  endif
  72. #endif
  73. #ifdef __16BIT__
  74. # if defined(MSC) || defined(__WATCOMC__)
  75. #   include <malloc.h>
  76. #   define nearmalloc _nmalloc
  77. #   define nearfree _nfree
  78. # endif
  79. # if defined(__TURBOC__) && defined(DYNALLOC_CRCTAB)
  80. #   if defined(__COMPACT__) || defined(__LARGE__) || defined(__HUGE__)
  81. #     undef DYNALLOC_CRCTAB
  82. #   endif
  83. # endif
  84. # ifndef nearmalloc
  85. #   define nearmalloc malloc
  86. #   define nearfree free
  87. # endif
  88. #endif
  89. /* TIMESTAMP is now supported on OS/2, so enable it by default */
  90. #if (!defined(NOTIMESTAMP) && !defined(TIMESTAMP))
  91. #  define TIMESTAMP
  92. #endif
  93. /* check that TZ environment variable is defined before using UTC times */
  94. #if (!defined(NO_IZ_CHECK_TZ) && !defined(IZ_CHECK_TZ))
  95. #  define IZ_CHECK_TZ
  96. #endif
  97. #ifndef OS2_EAS
  98. #  define OS2_EAS    /* for -l and -v listings (list.c) */
  99. #endif
  100. #ifdef isupper
  101. #  undef isupper
  102. #endif
  103. #ifdef tolower
  104. #  undef tolower
  105. #endif
  106. #define isupper(x)   IsUpperNLS((unsigned char)(x))
  107. #define tolower(x)   ToLowerNLS((unsigned char)(x))
  108. #define USETHREADID
  109. /* handlers for OEM <--> ANSI string conversions */
  110. #ifndef _OS2_ISO_ANSI
  111.    /* use home-brewed conversion functions; internal charset is OEM */
  112. #  ifdef CRTL_CP_IS_ISO
  113. #    undef CRTL_CP_IS_ISO
  114. #  endif
  115. #  ifndef CRTL_CP_IS_OEM
  116. #    define CRTL_CP_IS_OEM
  117. #  endif
  118. #endif
  119. #endif /* !__os2cfg_h */