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.

185 lines
3.3 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. const WCHAR HalHardwareIdString[] = L"acpipic_up";
  18. #ifdef ALLOC_DATA_PRAGMA
  19. #pragma data_seg()
  20. #endif // ALLOC_DATA_PRAGMA
  21. const UCHAR HalName[] = "ACPI Compatible Eisa/Isa HAL"; // This is placed in .text for debugging
  22. #define HalName L"ACPI Compatible Eisa/Isa HAL"
  23. const ULONG HalDisableFirmwareMapper = 1;
  24. BOOLEAN
  25. HalpInitMP (
  26. IN ULONG Phase,
  27. IN PLOADER_PARAMETER_BLOCK LoaderBlock
  28. );
  29. VOID
  30. HalpMcaInit (
  31. VOID
  32. );
  33. VOID
  34. HalpAcpiEnumerate (
  35. PUNICODE_STRING DriverName
  36. );
  37. VOID HalpInitOtherBuses (VOID);
  38. VOID HalpInitializePciBus (VOID);
  39. #ifdef ALLOC_PRAGMA
  40. #pragma alloc_text(INIT,HalpInitMP)
  41. #pragma alloc_text(INIT,HalStartNextProcessor)
  42. #pragma alloc_text(INIT,HalAllProcessorsStarted)
  43. #pragma alloc_text(INIT,HalReportResourceUsage)
  44. #pragma alloc_text(INIT,HalpInitOtherBuses)
  45. #endif
  46. BOOLEAN
  47. HalpInitMP (
  48. IN ULONG Phase,
  49. IN PLOADER_PARAMETER_BLOCK LoaderBlock
  50. )
  51. {
  52. // do nothing
  53. return TRUE;
  54. }
  55. VOID
  56. HalpResetAllProcessors (
  57. VOID
  58. )
  59. {
  60. // Just return, that will invoke the standard PC reboot code
  61. }
  62. BOOLEAN
  63. HalStartNextProcessor (
  64. IN PLOADER_PARAMETER_BLOCK pLoaderBlock,
  65. IN PKPROCESSOR_STATE pProcessorState
  66. )
  67. {
  68. // no other processors
  69. return FALSE;
  70. }
  71. BOOLEAN
  72. HalAllProcessorsStarted (
  73. VOID
  74. )
  75. {
  76. #if !defined(_WIN64)
  77. if (HalpFeatureBits & HAL_NO_SPECULATION) {
  78. //
  79. // Processor doesn't perform speculative execeution,
  80. // remove fences in critical code paths
  81. //
  82. HalpRemoveFences ();
  83. }
  84. #endif
  85. return TRUE;
  86. }
  87. VOID
  88. HalReportResourceUsage (
  89. VOID
  90. )
  91. {
  92. INTERFACE_TYPE interfacetype;
  93. UNICODE_STRING UHalName;
  94. HalInitSystemPhase2 ();
  95. //
  96. // Turn on MCA support if present
  97. //
  98. HalpMcaInit();
  99. //
  100. // Registry is now intialized, see if there are any PCI buses
  101. //
  102. HalpInitializePciBus ();
  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 0
  115. //
  116. // Display all buses & ranges
  117. //
  118. HalpDisplayAllBusRanges ();
  119. #endif
  120. HalpRegisterPciDebuggingDeviceInfo();
  121. }
  122. VOID
  123. HalpInitOtherBuses (
  124. VOID
  125. )
  126. {
  127. // no other internal buses supported
  128. }
  129. ULONG
  130. FASTCALL
  131. HalSystemVectorDispatchEntry (
  132. IN ULONG Vector,
  133. OUT PKINTERRUPT_ROUTINE **FlatDispatch,
  134. OUT PKINTERRUPT_ROUTINE *NoConnection
  135. )
  136. {
  137. return FALSE;
  138. }