Leaked source code of windows server 2003
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.

192 lines
3.5 KiB

  1. /*++
  2. Copyright (c) 1991 Microsoft Corporation
  3. Module Name:
  4. ixsproc.c
  5. Abstract:
  6. Stub functions for UP hals.
  7. Author:
  8. Ken Reneris (kenr) 22-Jan-1991
  9. Environment:
  10. Kernel mode only.
  11. Revision History:
  12. --*/
  13. #include "halp.h"
  14. #ifdef ALLOC_DATA_PRAGMA
  15. #pragma data_seg("INITCONST") // INITCONST is OK to use for data_seg
  16. #endif // ALLOC_DATA_PRAGMA
  17. WCHAR HalHardwareIdString[] = L"e_isa_up\0";
  18. #ifdef ALLOC_DATA_PRAGMA
  19. #pragma data_seg()
  20. #endif // ALLOC_DATA_PRAGMA
  21. const ULONG HalDisableFirmwareMapper = 0;
  22. const UCHAR HalName[] = "PC Compatible Eisa/Isa HAL";
  23. #define HalName L"PC Compatible Eisa/Isa HAL"
  24. ULONG HalDisplayBusRanges;
  25. BOOLEAN
  26. HalpInitMP (
  27. IN ULONG Phase,
  28. IN PLOADER_PARAMETER_BLOCK LoaderBlock
  29. );
  30. VOID
  31. HalpMcaInit (
  32. VOID
  33. );
  34. VOID HalpInitOtherBuses (VOID);
  35. VOID HalpInitializePciBus (VOID);
  36. VOID HalpInitializePciStubs (VOID);
  37. #ifdef ALLOC_PRAGMA
  38. #pragma alloc_text(INIT,HalpInitMP)
  39. #pragma alloc_text(INIT,HalStartNextProcessor)
  40. #pragma alloc_text(INIT,HalAllProcessorsStarted)
  41. #pragma alloc_text(INIT,HalReportResourceUsage)
  42. #pragma alloc_text(INIT,HalpInitOtherBuses)
  43. #endif
  44. BOOLEAN
  45. HalpInitMP (
  46. IN ULONG Phase,
  47. IN PLOADER_PARAMETER_BLOCK LoaderBlock
  48. )
  49. {
  50. // do nothing
  51. return TRUE;
  52. }
  53. VOID
  54. HalpResetAllProcessors (
  55. VOID
  56. )
  57. {
  58. // Just return, that will invoke the standard PC reboot code
  59. }
  60. BOOLEAN
  61. HalStartNextProcessor (
  62. IN PLOADER_PARAMETER_BLOCK pLoaderBlock,
  63. IN PKPROCESSOR_STATE pProcessorState
  64. )
  65. {
  66. // no other processors
  67. return FALSE;
  68. }
  69. BOOLEAN
  70. HalAllProcessorsStarted (
  71. VOID
  72. )
  73. {
  74. if (HalpFeatureBits & HAL_NO_SPECULATION) {
  75. //
  76. // Processor doesn't perform speculative execeution,
  77. // remove fences in critical code paths
  78. //
  79. HalpRemoveFences ();
  80. }
  81. return TRUE;
  82. }
  83. VOID
  84. HalReportResourceUsage (
  85. VOID
  86. )
  87. {
  88. INTERFACE_TYPE interfacetype;
  89. UNICODE_STRING UHalName;
  90. HalInitSystemPhase2 ();
  91. //
  92. // Turn on MCA support if present
  93. //
  94. HalpMcaInit();
  95. //
  96. // Registry is now intialized, see if there are any PCI buses
  97. //
  98. HalpInitializePciBus ();
  99. HalpInitializePciStubs ();
  100. //
  101. // Complete ALL bus initialization before reporting resource usage.
  102. //
  103. switch (HalpBusType) {
  104. case MACHINE_TYPE_ISA: interfacetype = Isa; break;
  105. case MACHINE_TYPE_EISA: interfacetype = Eisa; break;
  106. case MACHINE_TYPE_MCA: interfacetype = MicroChannel; break;
  107. default: interfacetype = Internal; break;
  108. }
  109. RtlInitUnicodeString (&UHalName, HalName);
  110. HalpReportResourceUsage (
  111. &UHalName, // descriptive name
  112. interfacetype // device space interface type
  113. );
  114. #if DBG
  115. //
  116. // Display all buses & ranges
  117. //
  118. if (HalDisplayBusRanges) {
  119. HalpDisplayAllBusRanges ();
  120. }
  121. #endif
  122. //
  123. // Declare that we are capable of
  124. // hibernation.
  125. //
  126. HalpRegisterHibernate ();
  127. HalpRegisterPciDebuggingDeviceInfo();
  128. }
  129. VOID
  130. HalpInitOtherBuses (
  131. VOID
  132. )
  133. {
  134. // no other internal buses supported
  135. }
  136. ULONG
  137. FASTCALL
  138. HalSystemVectorDispatchEntry (
  139. IN ULONG Vector,
  140. OUT PKINTERRUPT_ROUTINE **FlatDispatch,
  141. OUT PKINTERRUPT_ROUTINE *NoConnection
  142. )
  143. {
  144. return FALSE;
  145. }