Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

154 lines
2.5 KiB

  1. /*++
  2. Copyright (c) 1990 Microsoft Corporation
  3. Module Name:
  4. Ulib.hxx
  5. Abstract:
  6. Environment:
  7. ULIB, User Mode
  8. --*/
  9. #if !defined ( _ULIB_DEFINED_ )
  10. #define _ULIB_DEFINED_
  11. //
  12. // Autocheck implies no windows header files so this helps make up the
  13. // difference. Autocheck also has a special Debug switch, since
  14. // it allows printing to the debugger but does not execute any other
  15. // debug-only code.
  16. //
  17. #if defined( _AUTOCHECK_ ) || defined( _EFICHECK_ )
  18. #define _NTAPI_ULIB_
  19. #if DBG
  20. #define _AUTOCHECK_DBG_
  21. #endif
  22. #undef DBG
  23. #define DBG 0
  24. #else
  25. #ifndef _NTAPI_ULIB_
  26. #define _NTAPI_ULIB_
  27. #endif
  28. #endif // _AUTOCHECK_
  29. extern "C" {
  30. // EFI utils don't include NT stuff
  31. #if defined( _NTAPI_ULIB_ ) && !defined( _EFICHECK_ )
  32. #include <nt.h>
  33. #include <ntrtl.h>
  34. #include <nturtl.h>
  35. #include <ntdddisk.h>
  36. #endif // _NTAPI_ULIB_
  37. #if !defined( _AUTOCHECK_ ) && !defined( _EFICHECK_ )
  38. #include <windows.h>
  39. #endif // _AUTOCHECK_
  40. #if defined(_EFICHECK_)
  41. // include the windows type definintions privately -- we don't want windows.h
  42. #include "efiwintypes.hxx"
  43. #endif
  44. }
  45. //
  46. // Function prototypes for Ulib non member functions (see ulib.cxx)
  47. //
  48. extern "C"
  49. BOOLEAN
  50. InitializeUlib(
  51. IN HANDLE DllHandle,
  52. IN ULONG Reason,
  53. IN PVOID Reserved
  54. );
  55. //
  56. // Intrinsic functions BUGBUG - turning off for EFI
  57. //
  58. #if DBG==0 && !defined(_EFICHECK_)
  59. #pragma intrinsic( memset, memcpy, memcmp )
  60. #endif
  61. //
  62. // Here's the scoop...ntdef.h defined NULL to be ( PVOID ) 0.
  63. // Cfront barfs on this if you try and assign NULL to any other pointer type.
  64. // This leaves two options (a) cast all NULL assignments or (b) define NULL
  65. // to be zero which is what C++ expects.
  66. //
  67. #if defined( NULL )
  68. #undef NULL
  69. #endif
  70. #define NULL ( 0 )
  71. //
  72. // Make sure const is not defined.
  73. //
  74. #if defined( const )
  75. #undef const
  76. #endif
  77. #include "ulibdef.hxx"
  78. #include "object.hxx"
  79. #include "clasdesc.hxx"
  80. //
  81. // External definitions for global objects (see ulib.cxx)
  82. //
  83. DECLARE_CLASS( PATH );
  84. #if !defined( _AUTOCHECK_ ) && !defined( _EFICHECK_ )
  85. DECLARE_CLASS( STREAM );
  86. //
  87. // Standard streams
  88. //
  89. extern PSTREAM Standard_Input_Stream;
  90. extern PSTREAM Standard_Output_Stream;
  91. extern PSTREAM Standard_Error_Stream;
  92. #endif // _AUTOCHECK
  93. #if !defined( _AUTOCHECK_ ) && !defined( _EFICHECK_ )
  94. NONVIRTUAL
  95. ULIB_EXPORT
  96. HANDLE
  97. FindFirstFile (
  98. IN PCPATH Path,
  99. OUT PWIN32_FIND_DATA FileFindData
  100. );
  101. #endif // _AUTOCHECK
  102. #endif // _ULIB_DEFINED_