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.

181 lines
3.1 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. BOOLEAN
  24. HalpInitMP (
  25. IN ULONG Phase,
  26. IN PLOADER_PARAMETER_BLOCK LoaderBlock
  27. );
  28. VOID
  29. HalpMcaInit (
  30. VOID
  31. );
  32. VOID
  33. HalpAcpiEnumerate (
  34. PUNICODE_STRING DriverName
  35. );
  36. VOID HalpInitOtherBuses (VOID);
  37. VOID HalpInitializePciBus (VOID);
  38. #ifdef ALLOC_PRAGMA
  39. #pragma alloc_text(INIT,HalpInitMP)
  40. #pragma alloc_text(INIT,HalStartNextProcessor)
  41. #pragma alloc_text(INIT,HalAllProcessorsStarted)
  42. #pragma alloc_text(INIT,HalReportResourceUsage)
  43. #pragma alloc_text(INIT,HalpInitOtherBuses)
  44. #endif
  45. BOOLEAN
  46. HalpInitMP (
  47. IN ULONG Phase,
  48. IN PLOADER_PARAMETER_BLOCK LoaderBlock
  49. )
  50. {
  51. // do nothing
  52. return TRUE;
  53. }
  54. VOID
  55. HalpResetAllProcessors (
  56. VOID
  57. )
  58. {
  59. // Just return, that will invoke the standard PC reboot code
  60. }
  61. BOOLEAN
  62. HalStartNextProcessor (
  63. IN PLOADER_PARAMETER_BLOCK pLoaderBlock,
  64. IN PKPROCESSOR_STATE pProcessorState
  65. )
  66. {
  67. // no other processors
  68. return FALSE;
  69. }
  70. BOOLEAN
  71. HalAllProcessorsStarted (
  72. VOID
  73. )
  74. {
  75. if (HalpFeatureBits & HAL_NO_SPECULATION) {
  76. //
  77. // Processor doesn't perform speculative execeution,
  78. // remove fences in critical code paths
  79. //
  80. HalpRemoveFences ();
  81. }
  82. return TRUE;
  83. }
  84. VOID
  85. HalReportResourceUsage (
  86. VOID
  87. )
  88. {
  89. INTERFACE_TYPE interfacetype;
  90. UNICODE_STRING UHalName;
  91. HalInitSystemPhase2 ();
  92. //
  93. // Turn on MCA support if present
  94. //
  95. HalpMcaInit();
  96. //
  97. // Registry is now intialized, see if there are any PCI buses
  98. //
  99. HalpInitializePciBus ();
  100. switch (HalpBusType) {
  101. case MACHINE_TYPE_ISA: interfacetype = Isa; break;
  102. case MACHINE_TYPE_EISA: interfacetype = Eisa; break;
  103. case MACHINE_TYPE_MCA: interfacetype = MicroChannel; break;
  104. default: interfacetype = Internal; break;
  105. }
  106. RtlInitUnicodeString (&UHalName, HalName);
  107. HalpReportResourceUsage (
  108. &UHalName, // descriptive name
  109. interfacetype // device space interface type
  110. );
  111. #if 0
  112. //
  113. // Display all buses & ranges
  114. //
  115. HalpDisplayAllBusRanges ();
  116. #endif
  117. HalpRegisterPciDebuggingDeviceInfo();
  118. }
  119. VOID
  120. HalpInitOtherBuses (
  121. VOID
  122. )
  123. {
  124. // no other internal buses supported
  125. }
  126. ULONG
  127. FASTCALL
  128. HalSystemVectorDispatchEntry (
  129. IN ULONG Vector,
  130. OUT PKINTERRUPT_ROUTINE **FlatDispatch,
  131. OUT PKINTERRUPT_ROUTINE *NoConnection
  132. )
  133. {
  134. return FALSE;
  135. }