home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / famapi.zip / INCLUDE.ZIP / _STDDEF.H < prev    next >
C/C++ Source or Header  |  1993-01-06  |  5KB  |  154 lines

  1. //
  2. //      **************************************************************
  3. //       JdeBP C++ Library Routines      General Public Licence v1.00
  4. //          Copyright (c) 1991,1992  Jonathan de Boyne Pollard
  5. //      **************************************************************
  6. //
  7. //  Compiler Specifics
  8. //
  9.  
  10. #if !defined(___STDDEF_H_INCLUDED)
  11.  
  12. //
  13. //  Far pointer utilities
  14. //
  15. #if __BORLANDC__
  16. #define     _FP_SEG(p)  ( (unsigned short)(void _seg *)(void far *)(p) )
  17. #define     _FP_OFF(p)  ( (unsigned short)(void near *)            (p) )
  18. #define     _MK_FP(s,o) ( (void _seg *) (s) + (void near *) (o) )
  19. #elif __MSC__
  20. #define     _FP_OFF(p)  ( ((unsigned short _far *)&(p)) [0] )
  21. #define     _FP_SEG(p)  ( ((unsigned short _far *)&(p)) [1] )
  22. #define     _MK_FP(s,o) ( (void _far *) ( (unsigned long)(o) + ( ((unsigned long)(s)) << 16 ) ) )
  23. #endif
  24.  
  25. //
  26. //  Bases for standard types declared in multiple headers
  27. //
  28. typedef unsigned long   _Nobjectid_t;    // Network object ID type
  29. typedef unsigned long    _Fpos_t;        // fpos_t                (ANSI)
  30. typedef unsigned int    _Wchar_t;        // wchar_t                (ANSI)
  31. typedef unsigned long    _Time_t;        // time_t                (ANSI)
  32. typedef long            _Clock_t;        // clock_t                (ANSI)
  33. #if defined(__HUGE__)||defined(__LARGE__)||defined(__COMPACT__)
  34. typedef signed short    _Ptrdiff_t;        // ptrdiff_t (signed)    (ANSI)
  35. #else
  36. typedef signed long        _Ptrdiff_t;        // ptrdiff_t (signed)    (ANSI)
  37. #endif
  38. typedef unsigned int    _Size_t;        // size_t (unsigned)    (ANSI)
  39. typedef signed int        _Ssize_t;        // ssize_t (signed)        (POSIX.1)
  40. typedef unsigned short    _Dev_t;            // dev_t                (POSIX.1)
  41. typedef _Nobjectid_t    _Gid_t;            // gid_t                (POSIX.1)
  42. typedef unsigned short    _Ino_t;            // ino_t                (POSIX.1)
  43. typedef unsigned short    _Mode_t;        // mode_t                (POSIX.1)
  44. typedef unsigned short    _Nlink_t;        // nlink_t                (POSIX.1)
  45. typedef long            _Off_t;            // off_t (signed)        (POSIX.1)
  46. typedef short            _Pid_t;            // pid_t (signed)        (POSIX.1)
  47. typedef _Nobjectid_t    _Uid_t;            // uid_t                (POSIX.1)
  48. typedef unsigned long    _Sigset_t;        // sigset_t                (POSIX.1)
  49.  
  50. //
  51. //  Basis for standard macros declared in multiple headers
  52. //
  53. #ifndef _NULL
  54. #define _NULL   ((void *)0)
  55. #define    _FARNULL    0L
  56. #endif
  57.  
  58. //
  59. //  _CDECL              Force C style calling in function declarations
  60. //  _LOADDS             Force load DS segment
  61. //  _FARFUNC            Force far calling in DLL function definitions
  62. //  _FAR                Force far data    in DLL function declarations
  63. //  _FARCALL            Force far calling in DLL function declarations
  64. //  _DLLCLASS           Force far classes in DLL class    declarations
  65. //
  66.  
  67. //
  68. // Borland C++
  69. //
  70. //  _BUILDRTLDLL        When compiling source for DLL standard library
  71. //  _RTLDLL             When compiling headers for DLL standard library
  72. //  _CLASSDLL           When compiling DLL class library
  73. //
  74.  
  75. #if __BORLANDC__
  76.  
  77. #if defined(__COMPACT__) || defined(__LARGE__) || defined(__HUGE__)
  78. #    define    __FARDATA__
  79. #else
  80. #    define    __NEARDATA__
  81. #endif
  82. #if defined(__MEDIUM__) || defined(__LARGE__) || defined(__HUGE__)
  83. #    define    __FARCODE__
  84. #else
  85. #    define    __NEARCODE__
  86. #endif
  87.  
  88. #   if __STDC__
  89. #       define _CDECL
  90. #       define _LOADDS
  91. #       define _FARFUNC
  92. #       define _FAR
  93. #       define _FARCALL
  94. #       define _DLLCLASS
  95. #   else
  96. #
  97. #       define _CDECL _cdecl
  98. #       define _LOADDS _loadds
  99. #
  100. #       if defined(_BUILDRTLDLL)
  101. #           define _FARFUNC _export
  102. #       elif defined(_RTLDLL)
  103. #           define _FARFUNC far
  104. #       else
  105. #           define _FARFUNC
  106. #       endif
  107. #       if defined(__DLL__)
  108. #           if defined(_RTLDLL) || defined(_CLASSDLL)
  109. #               define _DLLCLASS _export
  110. #           else
  111. #               define _DLLCLASS far
  112. #           endif
  113. #           define _FAR far
  114. #       elif defined(_RTLDLL) || defined(_CLASSDLL)
  115. #           define _DLLCLASS huge
  116. #           define _FAR far
  117. #       else
  118. #           define _FAR
  119. #           if defined(__TINY__) || defined(__SMALL__) || defined(__MEDIUM__)
  120. #               define _DLLCLASS  near
  121. #           elif defined(__COMPACT__) || defined(__LARGE__)
  122. #               define _DLLCLASS  far
  123. #           else
  124. #               define _DLLCLASS  huge
  125. #           endif
  126. #       endif
  127. #   endif
  128. #
  129. #   if defined(_BUILDRTLDLL)
  130. #       define _FARCALL _export
  131. #   else
  132. #       define _FARCALL far
  133. #   endif
  134. #
  135. #endif
  136.  
  137. // The following macros control the behaviour of the standard headers :
  138. //
  139. // _POSIX_SOURCE        Causes definition of _POSIX1_SOURCE and _POSIX2_...
  140. //                      that reflect the compliancy of this library
  141. // _POSIX1_SOURCE       Controls POSIX.1 compliancy
  142. // _POSIX2_SOURCE       Controls POSIX.2 compliancy
  143. // _MSDOS_SOURCE        Controls MS-DOS API compliancy
  144. // _BSD_SOURCE          Controls BSD **IX library support
  145.  
  146. #if _POSIX_SOURCE && !defined(_POSIX1_SOURCE) && !defined(_POSIX2_SOURCE)
  147. #define _POSIX1_SOURCE  1
  148. #undef  _POSIX2_SOURCE
  149. #endif
  150.  
  151. #define ___STDDEF_H_INCLUDED
  152.  
  153. #endif
  154.