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.

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