Sync with trunk head (part 1 or 2)
[reactos.git] / hal / halx86 / generic / legacy / halpcat.c
1 /*
2 * PROJECT: ReactOS HAL
3 * LICENSE: BSD - See COPYING.ARM in the top level directory
4 * FILE: hal/halx86/generic/acpi/halpcat.c
5 * PURPOSE: HAL Legacy Support Code
6 * PROGRAMMERS: ReactOS Portable Systems Group
7 */
8
9 /* INCLUDES *******************************************************************/
10
11 #include <hal.h>
12 #define NDEBUG
13 #include <debug.h>
14
15 /* GLOBALS ********************************************************************/
16
17 /* This determines the HAL type */
18 BOOLEAN HalDisableFirmwareMapper = FALSE;
19 PWCHAR HalHardwareIdString = L"e_isa_up";
20 PWCHAR HalName = L"PC Compatible Eisa/Isa HAL";
21
22 /* PRIVATE FUNCTIONS **********************************************************/
23
24 NTSTATUS
25 NTAPI
26 HalpSetupAcpiPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
27 {
28 /* There is no ACPI on these HALs */
29 return STATUS_NO_SUCH_DEVICE;
30 }
31
32 VOID
33 NTAPI
34 HalpInitializePciBus(VOID)
35 {
36 /* FIXME: Should do legacy PCI bus detection */
37
38 /* FIXME: Should detect chipset hacks */
39
40 /* FIXME: Should detect broken PCI hardware and apply hacks */
41
42 /* FIXME: Should build resource ranges */
43 }
44
45 VOID
46 NTAPI
47 HalpBuildAddressMap(VOID)
48 {
49 /* FIXME: Inherit ROM blocks from the registry */
50 //HalpInheritROMBlocks();
51
52 /* FIXME: Add the ROM blocks to our ranges */
53 //HalpAddROMRanges();
54 }
55
56 BOOLEAN
57 NTAPI
58 HalpGetDebugPortTable(VOID)
59 {
60 /* No ACPI */
61 return FALSE;
62 }
63
64 ULONG
65 NTAPI
66 HalpIs16BitPortDecodeSupported(VOID)
67 {
68 /* Only EISA systems support this */
69 return (HalpBusType == MACHINE_TYPE_EISA) ? CM_RESOURCE_PORT_16_BIT_DECODE : 0;
70 }
71
72 /*
73 * @implemented
74 */
75 VOID
76 NTAPI
77 HalReportResourceUsage(VOID)
78 {
79 INTERFACE_TYPE InterfaceType;
80 UNICODE_STRING HalString;
81
82 /* FIXME: Initialize MCA bus */
83
84 /* Initialize PCI bus. */
85 HalpInitializePciBus();
86
87 /* Initialize the stubs */
88 HalpInitializePciStubs();
89
90 /* What kind of bus is this? */
91 switch (HalpBusType)
92 {
93 /* ISA Machine */
94 case MACHINE_TYPE_ISA:
95 InterfaceType = Isa;
96 break;
97
98 /* EISA Machine */
99 case MACHINE_TYPE_EISA:
100 InterfaceType = Eisa;
101 break;
102
103 /* MCA Machine */
104 case MACHINE_TYPE_MCA:
105 InterfaceType = MicroChannel;
106 break;
107
108 /* Unknown */
109 default:
110 InterfaceType = Internal;
111 break;
112 }
113
114 /* Build HAL usage */
115 RtlInitUnicodeString(&HalString, HalName);
116 HalpReportResourceUsage(&HalString, InterfaceType);
117
118 /* Setup PCI debugging and Hibernation */
119 HalpRegisterPciDebuggingDeviceInfo();
120 }
121
122 /* EOF */