Windows NT 4.0 source code leak
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.

223 lines
3.4 KiB

4 years ago
  1. /*++ BUILD Version: 0003 // Increment this if a change has global effects
  2. Copyright (c) 1991 Microsoft Corporation
  3. Copyright (c) 1992 Digital Equipment Corporation
  4. Module Name:
  5. halp.h
  6. Abstract:
  7. This header file defines the private Hardware Architecture Layer (HAL)
  8. interfaces.
  9. Author:
  10. David N. Cutler (davec) 25-Apr-1991
  11. Miche Baker-Harvey (miche) 22-Apr-1992
  12. Revision History:
  13. 09-Jul-1992 Jeff McLeman (mcleman)
  14. If processor is an Alpha, include XXHALP.C for Alpha.
  15. --*/
  16. #ifndef _HALP_
  17. #define _HALP_
  18. #include "nthal.h"
  19. #include "hal.h"
  20. //
  21. // Define function prototypes.
  22. //
  23. BOOLEAN
  24. HalpCalibrateStall (
  25. VOID
  26. );
  27. VOID
  28. HalpClockInterrupt (
  29. VOID
  30. );
  31. VOID
  32. HalpPerformanceCounter0Interrupt (
  33. VOID
  34. );
  35. VOID
  36. HalpPerformanceCounter1Interrupt (
  37. VOID
  38. );
  39. BOOLEAN
  40. HalpCreateDmaStructures (
  41. VOID
  42. );
  43. BOOLEAN
  44. HalpDmaDispatch(
  45. IN PKINTERRUPT Interrupt,
  46. IN PVOID ServiceContext
  47. );
  48. BOOLEAN
  49. HalpInitializeDisplay (
  50. IN PLOADER_PARAMETER_BLOCK LoaderBlock
  51. );
  52. BOOLEAN
  53. HalpInitializeInterrupts (
  54. VOID
  55. );
  56. VOID
  57. HalpInitializeProcessorParameters(
  58. VOID
  59. );
  60. VOID
  61. HalpInitializeProfiler(
  62. VOID
  63. );
  64. BOOLEAN
  65. HalpMapFixedTbEntries (
  66. VOID
  67. );
  68. BOOLEAN
  69. HalpMapIoSpace (
  70. VOID
  71. );
  72. PVOID
  73. HalpMapPhysicalMemory(
  74. IN PVOID PhysicalAddress,
  75. IN ULONG NumberOfPages
  76. );
  77. PVOID
  78. HalpRemapVirtualAddress(
  79. IN PVOID VirtualAddress,
  80. IN PVOID PhysicalAddress
  81. );
  82. ULONG
  83. HalpAllocPhysicalMemory(
  84. IN PLOADER_PARAMETER_BLOCK LoaderBlock,
  85. IN ULONG MaxPhysicalAddress,
  86. IN ULONG NumberOfPages,
  87. IN BOOLEAN bAlignOn64k
  88. );
  89. VOID
  90. HalpProgramIntervalTimer(
  91. IN ULONG RateSelect
  92. );
  93. VOID
  94. HalpStallInterrupt (
  95. VOID
  96. );
  97. VOID
  98. HalpVideoReboot(
  99. VOID
  100. );
  101. //
  102. // Define Bus Handler support function prototypes.
  103. //
  104. VOID
  105. HalpRegisterInternalBusHandlers (
  106. VOID
  107. );
  108. ULONG
  109. HalpGetSystemInterruptVector(
  110. IN PBUS_HANDLER BusHandler,
  111. IN PBUS_HANDLER RootHandler,
  112. IN ULONG BusInterruptLevel,
  113. IN ULONG BusInterruptVector,
  114. OUT PKIRQL Irql,
  115. OUT PKAFFINITY Affinity
  116. );
  117. BOOLEAN
  118. HalpTranslateSystemBusAddress(
  119. IN PBUS_HANDLER BusHandler,
  120. IN PBUS_HANDLER RootHandler,
  121. IN PHYSICAL_ADDRESS BusAddress,
  122. IN OUT PULONG AddressSpace,
  123. OUT PPHYSICAL_ADDRESS TranslatedAddress
  124. );
  125. NTSTATUS
  126. HalpAdjustEisaResourceList (
  127. IN PBUS_HANDLER BusHandler,
  128. IN PBUS_HANDLER RootHandler,
  129. IN OUT PIO_RESOURCE_REQUIREMENTS_LIST *pResourceList
  130. );
  131. NTSTATUS
  132. HalpAdjustIsaResourceList (
  133. IN PBUS_HANDLER BusHandler,
  134. IN PBUS_HANDLER RootHandler,
  135. IN OUT PIO_RESOURCE_REQUIREMENTS_LIST *pResourceList
  136. );
  137. #if defined(JENSEN)
  138. #include "jxhalp.h"
  139. #endif
  140. #if defined(FLAMINGO)
  141. #include "fxhalp.h"
  142. #endif
  143. //
  144. // Include alpha processor interfaces
  145. //
  146. #include "xxhalp.h"
  147. //
  148. // Define external references.
  149. //
  150. extern ULONG HalpCurrentTimeIncrement;
  151. extern ULONG HalpNextRateSelect;
  152. extern ULONG HalpNextTimeIncrement;
  153. extern ULONG HalpNewTimeIncrement;
  154. extern ULONG HalpClockFrequency;
  155. extern ULONG HalpClockMegaHertz;
  156. extern ULONG HalpProfileCountRate;
  157. extern PADAPTER_OBJECT MasterAdapterObject;
  158. extern BOOLEAN LessThan16Mb;
  159. //
  160. // Map buffer prameters. These are initialized in HalInitSystem
  161. //
  162. extern PHYSICAL_ADDRESS HalpMapBufferPhysicalAddress;
  163. extern ULONG HalpMapBufferSize;
  164. extern ULONG HalpBusType;
  165. extern ULONG HalpCpuType;
  166. #endif // _HALP_