home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / win3 / patches / symantec / rtlinc.exe / STDDEF.H < prev    next >
C/C++ Source or Header  |  1993-05-19  |  1KB  |  72 lines

  1. /*_ stddef.h   Tue May  9 1989   Modified by: Walter Bright */
  2.  
  3. #ifndef __STDDEF_H
  4. #define __STDDEF_H    1
  5.  
  6. #if __cplusplus
  7. extern "C" {
  8. #endif
  9.  
  10. #ifdef __STDC__
  11. #define __CDECL
  12. #define __STDCALL
  13. #else
  14. #define __CDECL __cdecl
  15. #define __STDCALL __stdcall
  16. #endif
  17.  
  18. #if __OS2__ && __INTSIZE == 4
  19. #define __CLIB    __STDCALL
  20. #else
  21. #define __CLIB    __CDECL
  22. #endif
  23.  
  24. #if _MT
  25. extern int * __CLIB _errno(void);
  26. #define errno (*_errno())
  27.  
  28. #if __INTSIZE == 4
  29. unsigned long * __CLIB __threadid(void);
  30. #if __NT__
  31. #define _threadid    (__threadid())
  32. #else
  33.             /* MOV EAX,FS:[0Ch] */
  34. #define _threadid    ((unsigned long *)__emit__(0x64,0xA1,0x0C,0,0,0))
  35. #endif
  36. #else
  37. extern int __far * __CDECL _threadid;
  38. #endif
  39.  
  40. #else
  41. extern int __CDECL errno;
  42. #endif
  43.  
  44. typedef int ptrdiff_t;
  45. typedef unsigned size_t;
  46. typedef unsigned short wchar_t;
  47.  
  48. #define offsetof(t,i)    ((size_t)((char *)&((t *)0)->i - (char *)0))
  49.  
  50. #ifndef NULL
  51. #if __COMPACT__ || __LARGE__ || __VCM__
  52. #define NULL 0L
  53. #else
  54. #define NULL 0
  55. #endif
  56. #endif
  57.  
  58. #if __cplusplus && !__NEW_H
  59. extern "C++" {
  60.     inline void *operator new(size_t s, void *at)
  61.     { return at; }
  62. }
  63. #endif
  64.  
  65. #if __cplusplus
  66. }
  67. #endif
  68.  
  69. #endif
  70.  
  71.  
  72.