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.

150 lines
3.3 KiB

  1. /* title "IA64 Hal static data"
  2. ;++
  3. ;
  4. ; Copyright (c) 1998 Intel Corporation
  5. ;
  6. ; Module Name:
  7. ;
  8. ; i64dat.c (derived from nthals\halx86\ixdat.c)
  9. ;
  10. ; Abstract:
  11. ;
  12. ; Declares various INIT or pagable data
  13. ;
  14. ; Author:
  15. ;
  16. ; Todd Kjos (v-tkjos) 5-Mar-1998
  17. ;
  18. ; Environment:
  19. ;
  20. ; Kernel mode only.
  21. ;
  22. ; Revision History:
  23. ;
  24. ;--
  25. */
  26. #include "halp.h"
  27. #include "pci.h"
  28. #include "pcip.h"
  29. #include "iosapic.h"
  30. #ifdef ALLOC_DATA_PRAGMA
  31. #pragma data_seg("INIT")
  32. #endif
  33. //
  34. // The following data is only valid during system initialiation
  35. // and the memory will be re-claimed by the system afterwards
  36. //
  37. ADDRESS_USAGE HalpDefaultPcIoSpace = {
  38. NULL, CmResourceTypePort, InternalUsage,
  39. {
  40. 0x000, 0x10, // ISA DMA
  41. 0x0C0, 0x10, // ISA DMA
  42. 0x080, 0x10, // DMA
  43. 0x020, 0x2, // PIC
  44. 0x0A0, 0x2, // Cascaded PIC
  45. 0x040, 0x4, // Timer1, Referesh, Speaker, Control Word
  46. 0x048, 0x4, // Timer2, Failsafe
  47. 0x092, 0x1, // system control port A
  48. 0x070, 0x2, // Cmos/NMI enable
  49. 0x0F0, 0x10, // coprocessor ports
  50. 0xCF8, 0x8, // PCI Config Space Access Pair
  51. 0,0
  52. }
  53. };
  54. //
  55. // From usage.c
  56. //
  57. ADDRESS_USAGE *HalpAddressUsageList;
  58. IDTUsage HalpIDTUsage[MAXIMUM_IDTVECTOR+1];
  59. //
  60. // Strings used for boot.ini options
  61. // from mphal.c
  62. //
  63. UCHAR HalpSzBreak[] = "BREAK";
  64. UCHAR HalpSzOneCpu[] = "ONECPU";
  65. UCHAR HalpSzPciLock[] = "PCILOCK";
  66. UCHAR HalpSzTimerRes[] = "TIMERES";
  67. UCHAR HalpGenuineIntel[]= "GenuineIntel";
  68. UCHAR HalpSzInterruptAffinity[]= "INTAFFINITY";
  69. UCHAR HalpSzForceClusterMode[]= "MAXPROCSPERCLUSTER";
  70. //
  71. // Error messages
  72. //
  73. UCHAR rgzNoMpsTable[] = "HAL: No MPS Table Found\n";
  74. UCHAR rgzNoApic[] = "HAL: No IO SAPIC Found\n";
  75. UCHAR rgzBadApicVersion[] = "HAL: Bad SAPIC Version\n";
  76. UCHAR rgzApicNotVerified[] = "HAL: IO SAPIC not verified\n";
  77. UCHAR rgzRTCNotFound[] = "HAL: No RTC device interrupt\n";
  78. //
  79. // From ixmca.c
  80. //
  81. UCHAR MsgCMCPending[] = MSG_CMC_PENDING;
  82. UCHAR MsgCPEPending[] = MSG_CPE_PENDING;
  83. WCHAR rgzSessionManager[] = L"Session Manager";
  84. WCHAR rgzEnableMCA[] = L"EnableMCA";
  85. WCHAR rgzEnableCMC[] = L"EnableCMC";
  86. WCHAR rgzEnableCPE[] = L"EnableCPE";
  87. WCHAR rgzNoMCABugCheck[] = L"NoMCABugCheck";
  88. WCHAR rgzEnableMCEOemDrivers[] = L"EnableMCEOemDrivers";
  89. WCHAR rgzCMCThresholdCount[] = L"CMCThresholdCount";
  90. WCHAR rgzCMCThresholdTime[] = L"CMCThresholdSeconds";
  91. WCHAR rgzCPEThresholdCount[] = L"CPEThresholdCount";
  92. WCHAR rgzCPEThresholdTime[] = L"CPEThresholdSeconds";
  93. #ifdef ALLOC_DATA_PRAGMA
  94. #pragma data_seg()
  95. #endif
  96. ULONG HalpFeatureBits = HALP_FEATURE_INIT;
  97. volatile BOOLEAN HalpHiberInProgress = FALSE;
  98. //
  99. // Stuff that we only need while we
  100. // sleep or hibernate.
  101. //
  102. #ifdef notyet
  103. MOTHERBOARD_CONTEXT HalpMotherboardState = {0};
  104. #endif //notyet
  105. //
  106. // PAGELK handle
  107. //
  108. PVOID HalpSleepPageLock = NULL;
  109. USHORT HalpPciIrqMask = 0;
  110. USHORT HalpEisaIrqIgnore = 0x1000;
  111. PULONG_PTR *HalEOITable[HAL_MAXIMUM_PROCESSOR];
  112. PROCESSOR_INFO HalpProcessorInfo[HAL_MAXIMUM_PROCESSOR];
  113. //
  114. // HAL private Mask of all of the active processors.
  115. //
  116. // The specific processors bits are based on their _KPCR.Number values.
  117. KAFFINITY HalpActiveProcessors;