[FREELDR] Cleanup some FldrCreateComponentKey() calls and archwsup.c

This commit is contained in:
Hermès Bélusca-Maïto 2023-06-05 13:31:20 +02:00
parent 0b695a6f70
commit 8061a6f6f4
No known key found for this signature in database
GPG key ID: 3B2539C65E7B93D0
10 changed files with 145 additions and 134 deletions

View file

@ -11,9 +11,57 @@
#include <freeldr.h> #include <freeldr.h>
#include <debug.h> #include <debug.h>
DBG_DEFAULT_CHANNEL(HWDETECT);
/* GLOBALS ********************************************************************/ /* GLOBALS ********************************************************************/
/* Strings corresponding to CONFIGURATION_TYPE */
const PCSTR ArcTypes[MaximumType + 1] = // CmTypeName
{
"System",
"CentralProcessor",
"FloatingPointProcessor",
"PrimaryICache",
"PrimaryDCache",
"SecondaryICache",
"SecondaryDCache",
"SecondaryCache",
"EisaAdapter",
"TcAdapter",
"ScsiAdapter",
"DtiAdapter",
"MultifunctionAdapter",
"DiskController",
"TapeController",
"CdRomController",
"WormController",
"SerialController",
"NetworkController",
"DisplayController",
"ParallelController",
"PointerController",
"KeyboardController",
"AudioController",
"OtherController",
"DiskPeripheral",
"FloppyDiskPeripheral",
"TapePeripheral",
"ModemPeripheral",
"MonitorPeripheral",
"PrinterPeripheral",
"PointerPeripheral",
"KeyboardPeripheral",
"TerminalPeripheral",
"OtherPeripheral",
"LinePeripheral",
"NetworkPeripheral",
"SystemMemory",
"DockingInformation",
"RealModeIrqRoutingTable",
"RealModePCIEnumeration",
"Undefined"
};
PCONFIGURATION_COMPONENT_DATA FldrArcHwTreeRoot; PCONFIGURATION_COMPONENT_DATA FldrArcHwTreeRoot;
// ARC Disk Information // ARC Disk Information
@ -51,12 +99,11 @@ AddReactOSArcDiskInfo(
// ARC Component Configuration Routines // ARC Component Configuration Routines
// //
VOID static VOID
NTAPI FldrSetIdentifier(
FldrSetIdentifier(IN PCONFIGURATION_COMPONENT_DATA ComponentData, _In_ PCONFIGURATION_COMPONENT Component,
IN PCHAR IdentifierString) _In_ PCSTR IdentifierString)
{ {
PCONFIGURATION_COMPONENT Component = &ComponentData->ComponentEntry;
SIZE_T IdentifierLength; SIZE_T IdentifierLength;
PCHAR Identifier; PCHAR Identifier;
@ -74,10 +121,10 @@ FldrSetIdentifier(IN PCONFIGURATION_COMPONENT_DATA ComponentData,
} }
VOID VOID
NTAPI FldrSetConfigurationData(
FldrSetConfigurationData(IN PCONFIGURATION_COMPONENT_DATA ComponentData, _Inout_ PCONFIGURATION_COMPONENT_DATA ComponentData,
IN PCM_PARTIAL_RESOURCE_LIST ResourceList, _In_ PCM_PARTIAL_RESOURCE_LIST ResourceList,
IN ULONG Size) _In_ ULONG Size)
{ {
/* Set component information */ /* Set component information */
ComponentData->ConfigurationData = ResourceList; ComponentData->ConfigurationData = ResourceList;
@ -85,8 +132,9 @@ FldrSetConfigurationData(IN PCONFIGURATION_COMPONENT_DATA ComponentData,
} }
VOID VOID
NTAPI FldrCreateSystemKey(
FldrCreateSystemKey(OUT PCONFIGURATION_COMPONENT_DATA *SystemNode) _Out_ PCONFIGURATION_COMPONENT_DATA* SystemNode,
_In_ PCSTR IdentifierString)
{ {
PCONFIGURATION_COMPONENT Component; PCONFIGURATION_COMPONENT Component;
@ -108,14 +156,18 @@ FldrCreateSystemKey(OUT PCONFIGURATION_COMPONENT_DATA *SystemNode)
Component->Key = 0; Component->Key = 0;
Component->AffinityMask = 0xFFFFFFFF; Component->AffinityMask = 0xFFFFFFFF;
/* Set identifier */
if (IdentifierString)
FldrSetIdentifier(Component, IdentifierString);
/* Return the node */ /* Return the node */
*SystemNode = FldrArcHwTreeRoot; *SystemNode = FldrArcHwTreeRoot;
} }
static VOID static VOID
NTAPI FldrLinkToParent(
FldrLinkToParent(IN PCONFIGURATION_COMPONENT_DATA Parent, _In_ PCONFIGURATION_COMPONENT_DATA Parent,
IN PCONFIGURATION_COMPONENT_DATA Child) _In_ PCONFIGURATION_COMPONENT_DATA Child)
{ {
PCONFIGURATION_COMPONENT_DATA Sibling; PCONFIGURATION_COMPONENT_DATA Sibling;
@ -143,17 +195,17 @@ FldrLinkToParent(IN PCONFIGURATION_COMPONENT_DATA Parent,
} }
VOID VOID
NTAPI FldrCreateComponentKey(
FldrCreateComponentKey(IN PCONFIGURATION_COMPONENT_DATA SystemNode, _In_ PCONFIGURATION_COMPONENT_DATA SystemNode,
IN CONFIGURATION_CLASS Class, _In_ CONFIGURATION_CLASS Class,
IN CONFIGURATION_TYPE Type, _In_ CONFIGURATION_TYPE Type,
IN IDENTIFIER_FLAG Flags, _In_ IDENTIFIER_FLAG Flags,
IN ULONG Key, _In_ ULONG Key,
IN ULONG Affinity, _In_ ULONG Affinity,
IN PCHAR IdentifierString, _In_ PCSTR IdentifierString,
IN PCM_PARTIAL_RESOURCE_LIST ResourceList, _In_ PCM_PARTIAL_RESOURCE_LIST ResourceList,
IN ULONG Size, _In_ ULONG Size,
OUT PCONFIGURATION_COMPONENT_DATA *ComponentKey) _Out_ PCONFIGURATION_COMPONENT_DATA* ComponentKey)
{ {
PCONFIGURATION_COMPONENT_DATA ComponentData; PCONFIGURATION_COMPONENT_DATA ComponentData;
PCONFIGURATION_COMPONENT Component; PCONFIGURATION_COMPONENT Component;
@ -180,12 +232,14 @@ FldrCreateComponentKey(IN PCONFIGURATION_COMPONENT_DATA SystemNode,
/* Set identifier */ /* Set identifier */
if (IdentifierString) if (IdentifierString)
FldrSetIdentifier(ComponentData, IdentifierString); FldrSetIdentifier(Component, IdentifierString);
/* Set configuration data */ /* Set configuration data */
if (ResourceList) if (ResourceList)
FldrSetConfigurationData(ComponentData, ResourceList, Size); FldrSetConfigurationData(ComponentData, ResourceList, Size);
TRACE("Created key: %s\\%d\n", ArcTypes[min(Type, MaximumType)], Key);
/* Return the child */ /* Return the child */
*ComponentKey = ComponentData; *ComponentKey = ComponentData;
} }

View file

@ -100,7 +100,7 @@ ArmHwDetect(VOID)
/* Create the root node */ /* Create the root node */
if (ArmHwDetectRan++) return RootNode; if (ArmHwDetectRan++) return RootNode;
FldrCreateSystemKey(&RootNode); FldrCreateSystemKey(&RootNode, "");
/* /*
* TODO: * TODO:

View file

@ -116,8 +116,8 @@ DetectAcpiBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
FldrCreateComponentKey(SystemKey, FldrCreateComponentKey(SystemKey,
AdapterClass, AdapterClass,
MultiFunctionAdapter, MultiFunctionAdapter,
0x0, 0,
0x0, 0,
0xFFFFFFFF, 0xFFFFFFFF,
"ACPI BIOS", "ACPI BIOS",
PartialResourceList, PartialResourceList,

View file

@ -73,7 +73,7 @@ DetectApmBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
FldrCreateComponentKey(SystemKey, FldrCreateComponentKey(SystemKey,
AdapterClass, AdapterClass,
MultiFunctionAdapter, MultiFunctionAdapter,
0x0, 0,
0, 0,
0xFFFFFFFF, 0xFFFFFFFF,
"APM", "APM",

View file

@ -161,8 +161,8 @@ DetectPciIrqRoutingTable(PCONFIGURATION_COMPONENT_DATA BusKey)
FldrCreateComponentKey(BusKey, FldrCreateComponentKey(BusKey,
PeripheralClass, PeripheralClass,
RealModeIrqRoutingTable, RealModeIrqRoutingTable,
0x0, 0,
0x0, 0,
0xFFFFFFFF, 0xFFFFFFFF,
"PCI Real-mode IRQ Routing Table", "PCI Real-mode IRQ Routing Table",
PartialResourceList, PartialResourceList,
@ -202,8 +202,8 @@ DetectPciBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
FldrCreateComponentKey(SystemKey, FldrCreateComponentKey(SystemKey,
AdapterClass, AdapterClass,
MultiFunctionAdapter, MultiFunctionAdapter,
0x0, 0,
0x0, 0,
0xFFFFFFFF, 0xFFFFFFFF,
"PCI BIOS", "PCI BIOS",
PartialResourceList, PartialResourceList,
@ -268,8 +268,8 @@ DetectPciBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
FldrCreateComponentKey(SystemKey, FldrCreateComponentKey(SystemKey,
AdapterClass, AdapterClass,
MultiFunctionAdapter, MultiFunctionAdapter,
0x0, 0,
0x0, 0,
0xFFFFFFFF, 0xFFFFFFFF,
"PCI", "PCI",
PartialResourceList, PartialResourceList,

View file

@ -357,8 +357,8 @@ DetectPnpBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
FldrCreateComponentKey(SystemKey, FldrCreateComponentKey(SystemKey,
AdapterClass, AdapterClass,
MultiFunctionAdapter, MultiFunctionAdapter,
0x0, 0,
0x0, 0,
0xFFFFFFFF, 0xFFFFFFFF,
"PNP BIOS", "PNP BIOS",
PartialResourceList, PartialResourceList,
@ -687,14 +687,12 @@ DetectSerialPointerPeripheral(PCONFIGURATION_COMPONENT_DATA ControllerKey,
PeripheralClass, PeripheralClass,
PointerPeripheral, PointerPeripheral,
Input, Input,
0x0, 0,
0xFFFFFFFF, 0xFFFFFFFF,
Identifier, Identifier,
PartialResourceList, PartialResourceList,
Size, Size,
&PeripheralKey); &PeripheralKey);
TRACE("Created key: PointerPeripheral\\0\n");
} }
} }
@ -723,7 +721,7 @@ DetectSerialPorts(PCONFIGURATION_COMPONENT_DATA BusKey, GET_SERIAL_PORT MachGetS
PCM_SERIAL_DEVICE_DATA SerialDeviceData; PCM_SERIAL_DEVICE_DATA SerialDeviceData;
ULONG Irq; ULONG Irq;
ULONG Base; ULONG Base;
CHAR Buffer[80]; CHAR Identifier[80];
ULONG ControllerNumber = 0; ULONG ControllerNumber = 0;
PCONFIGURATION_COMPONENT_DATA ControllerKey; PCONFIGURATION_COMPONENT_DATA ControllerKey;
ULONG i; ULONG i;
@ -740,7 +738,7 @@ DetectSerialPorts(PCONFIGURATION_COMPONENT_DATA BusKey, GET_SERIAL_PORT MachGetS
TRACE("Found COM%u port at 0x%x\n", i + 1, Base); TRACE("Found COM%u port at 0x%x\n", i + 1, Base);
/* Set 'Identifier' value */ /* Set 'Identifier' value */
sprintf(Buffer, "COM%ld", i + 1); RtlStringCbPrintfA(Identifier, sizeof(Identifier), "COM%ld", i + 1);
/* Build full device descriptor */ /* Build full device descriptor */
Size = sizeof(CM_PARTIAL_RESOURCE_LIST) + Size = sizeof(CM_PARTIAL_RESOURCE_LIST) +
@ -796,7 +794,7 @@ DetectSerialPorts(PCONFIGURATION_COMPONENT_DATA BusKey, GET_SERIAL_PORT MachGetS
Output | Input | ConsoleIn | ConsoleOut, Output | Input | ConsoleIn | ConsoleOut,
ControllerNumber, ControllerNumber,
0xFFFFFFFF, 0xFFFFFFFF,
Buffer, Identifier,
PartialResourceList, PartialResourceList,
Size, Size,
&ControllerKey); &ControllerKey);
@ -817,7 +815,7 @@ DetectParallelPorts(PCONFIGURATION_COMPONENT_DATA BusKey)
PCM_PARTIAL_RESOURCE_LIST PartialResourceList; PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor; PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor;
ULONG Irq[MAX_LPT_PORTS] = {7, 5, (ULONG) - 1}; ULONG Irq[MAX_LPT_PORTS] = {7, 5, (ULONG) - 1};
CHAR Buffer[80]; CHAR Identifier[80];
PCONFIGURATION_COMPONENT_DATA ControllerKey; PCONFIGURATION_COMPONENT_DATA ControllerKey;
PUSHORT BasePtr; PUSHORT BasePtr;
ULONG Base; ULONG Base;
@ -843,7 +841,7 @@ DetectParallelPorts(PCONFIGURATION_COMPONENT_DATA BusKey)
TRACE("Parallel port %u: %x\n", ControllerNumber, Base); TRACE("Parallel port %u: %x\n", ControllerNumber, Base);
/* Set 'Identifier' value */ /* Set 'Identifier' value */
sprintf(Buffer, "PARALLEL%ld", i + 1); RtlStringCbPrintfA(Identifier, sizeof(Identifier), "PARALLEL%ld", i + 1);
/* Build full device descriptor */ /* Build full device descriptor */
Size = sizeof(CM_PARTIAL_RESOURCE_LIST); Size = sizeof(CM_PARTIAL_RESOURCE_LIST);
@ -891,7 +889,7 @@ DetectParallelPorts(PCONFIGURATION_COMPONENT_DATA BusKey)
Output, Output,
ControllerNumber, ControllerNumber,
0xFFFFFFFF, 0xFFFFFFFF,
Buffer, Identifier,
PartialResourceList, PartialResourceList,
Size, Size,
&ControllerKey); &ControllerKey);
@ -1027,13 +1025,12 @@ DetectKeyboardPeripheral(PCONFIGURATION_COMPONENT_DATA ControllerKey)
PeripheralClass, PeripheralClass,
KeyboardPeripheral, KeyboardPeripheral,
Input | ConsoleIn, Input | ConsoleIn,
0x0, 0,
0xFFFFFFFF, 0xFFFFFFFF,
"PCAT_ENHANCED", "PCAT_ENHANCED",
PartialResourceList, PartialResourceList,
Size, Size,
&PeripheralKey); &PeripheralKey);
TRACE("Created key: KeyboardPeripheral\\0\n");
} }
} }
@ -1094,13 +1091,12 @@ DetectKeyboardController(PCONFIGURATION_COMPONENT_DATA BusKey)
ControllerClass, ControllerClass,
KeyboardController, KeyboardController,
Input | ConsoleIn, Input | ConsoleIn,
0x0, 0,
0xFFFFFFFF, 0xFFFFFFFF,
NULL, NULL,
PartialResourceList, PartialResourceList,
Size, Size,
&ControllerKey); &ControllerKey);
TRACE("Created key: KeyboardController\\0\n");
DetectKeyboardPeripheral(ControllerKey); DetectKeyboardPeripheral(ControllerKey);
} }
@ -1254,13 +1250,12 @@ DetectPS2Mouse(PCONFIGURATION_COMPONENT_DATA BusKey)
ControllerClass, ControllerClass,
PointerController, PointerController,
Input, Input,
0x0, 0,
0xFFFFFFFF, 0xFFFFFFFF,
NULL, NULL,
PartialResourceList, PartialResourceList,
sizeof(CM_PARTIAL_RESOURCE_LIST), sizeof(CM_PARTIAL_RESOURCE_LIST),
&ControllerKey); &ControllerKey);
TRACE("Created key: PointerController\\0\n");
if (DetectPS2AuxDevice()) if (DetectPS2AuxDevice())
{ {
@ -1286,13 +1281,12 @@ DetectPS2Mouse(PCONFIGURATION_COMPONENT_DATA BusKey)
ControllerClass, ControllerClass,
PointerPeripheral, PointerPeripheral,
Input, Input,
0x0, 0,
0xFFFFFFFF, 0xFFFFFFFF,
"MICROSOFT PS2 MOUSE", "MICROSOFT PS2 MOUSE",
PartialResourceList, PartialResourceList,
Size, Size,
&PeripheralKey); &PeripheralKey);
TRACE("Created key: PointerPeripheral\\0\n");
} }
} }
} }
@ -1306,7 +1300,7 @@ BOOLEAN BiosVesaReadEdid(VOID);
static VOID static VOID
DetectDisplayController(PCONFIGURATION_COMPONENT_DATA BusKey) DetectDisplayController(PCONFIGURATION_COMPONENT_DATA BusKey)
{ {
CHAR Buffer[80]; PCSTR Identifier;
PCONFIGURATION_COMPONENT_DATA ControllerKey; PCONFIGURATION_COMPONENT_DATA ControllerKey;
USHORT VesaVersion; USHORT VesaVersion;
@ -1325,25 +1319,20 @@ DetectDisplayController(PCONFIGURATION_COMPONENT_DATA BusKey)
} }
if (VesaVersion >= 0x0200) if (VesaVersion >= 0x0200)
{ Identifier = "VBE Display";
strcpy(Buffer, "VBE Display");
}
else else
{ Identifier = "VGA Display";
strcpy(Buffer, "VGA Display");
}
FldrCreateComponentKey(BusKey, FldrCreateComponentKey(BusKey,
ControllerClass, ControllerClass,
DisplayController, DisplayController,
0x0, Output | ConsoleOut,
0x0, 0,
0xFFFFFFFF, 0xFFFFFFFF,
Buffer, Identifier,
NULL, NULL,
0, 0,
&ControllerKey); &ControllerKey);
TRACE("Created key: DisplayController\\0\n");
/* FIXME: Add display peripheral (monitor) data */ /* FIXME: Add display peripheral (monitor) data */
if (VesaVersion != 0) if (VesaVersion != 0)
@ -1354,7 +1343,6 @@ DetectDisplayController(PCONFIGURATION_COMPONENT_DATA BusKey)
if (BiosVesaReadEdid()) if (BiosVesaReadEdid())
{ {
TRACE("EDID data read successfully!\n"); TRACE("EDID data read successfully!\n");
} }
} }
} }
@ -1388,8 +1376,8 @@ DetectIsaBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
FldrCreateComponentKey(SystemKey, FldrCreateComponentKey(SystemKey,
AdapterClass, AdapterClass,
MultiFunctionAdapter, MultiFunctionAdapter,
0x0, 0,
0x0, 0,
0xFFFFFFFF, 0xFFFFFFFF,
"ISA", "ISA",
PartialResourceList, PartialResourceList,
@ -1434,9 +1422,8 @@ PcHwDetect(VOID)
TRACE("DetectHardware()\n"); TRACE("DetectHardware()\n");
/* Create the 'System' key */ /* Create the 'System' key */
FldrCreateSystemKey(&SystemKey);
// TODO: Discover and set the other machine types // TODO: Discover and set the other machine types
FldrSetIdentifier(SystemKey, "AT/AT COMPATIBLE"); FldrCreateSystemKey(&SystemKey, "AT/AT COMPATIBLE");
GetHarddiskConfigurationData = PcGetHarddiskConfigurationData; GetHarddiskConfigurationData = PcGetHarddiskConfigurationData;
FindPciBios = PcFindPciBios; FindPciBios = PcFindPciBios;

View file

@ -223,7 +223,7 @@ DetectBiosFloppyPeripheral(PCONFIGURATION_COMPONENT_DATA ControllerKey)
Ptr = GetInt1eTable(); Ptr = GetInt1eTable();
/* Set 'Identifier' value */ /* Set 'Identifier' value */
sprintf(Identifier, "FLOPPY%d", FloppyNumber + 1); RtlStringCbPrintfA(Identifier, sizeof(Identifier), "FLOPPY%d", FloppyNumber + 1);
Size = sizeof(CM_PARTIAL_RESOURCE_LIST) + Size = sizeof(CM_PARTIAL_RESOURCE_LIST) +
sizeof(CM_FLOPPY_DEVICE_DATA); sizeof(CM_FLOPPY_DEVICE_DATA);
@ -333,7 +333,6 @@ DetectBiosFloppyController(PCONFIGURATION_COMPONENT_DATA BusKey)
PartialResourceList, PartialResourceList,
Size, Size,
&ControllerKey); &ControllerKey);
TRACE("Created key: DiskController\\0\n");
if (FloppyCount) if (FloppyCount)
DetectBiosFloppyPeripheral(ControllerKey); DetectBiosFloppyPeripheral(ControllerKey);
@ -414,7 +413,7 @@ DetectBiosDisks(PCONFIGURATION_COMPONENT_DATA SystemKey,
/* Create and fill subkey for each harddisk */ /* Create and fill subkey for each harddisk */
for (i = 0; i < DiskCount; i++) for (i = 0; i < DiskCount; i++)
{ {
PCHAR Identifier; PCSTR Identifier;
DriveNumber = 0x80 + i; DriveNumber = 0x80 + i;

View file

@ -220,7 +220,6 @@ DetectBiosFloppyPeripheral(PCONFIGURATION_COMPONENT_DATA ControllerKey)
PartialResourceList, PartialResourceList,
Size, Size,
&PeripheralKey); &PeripheralKey);
TRACE("Created key: FloppyDiskPeripheral\\%d\n", FloppyNumber);
} }
} }
@ -306,7 +305,6 @@ DetectBiosFloppyController(PCONFIGURATION_COMPONENT_DATA BusKey)
PartialResourceList, PartialResourceList,
Size, Size,
&ControllerKey); &ControllerKey);
TRACE("Created key: DiskController\\0\n");
if (FloppyCount) if (FloppyCount)
DetectBiosFloppyPeripheral(ControllerKey); DetectBiosFloppyPeripheral(ControllerKey);
@ -444,7 +442,7 @@ DetectBiosDisks(
/* Create and fill subkey for each harddisk */ /* Create and fill subkey for each harddisk */
for (i = 0; i < DiskCount; i++) for (i = 0; i < DiskCount; i++)
{ {
PCHAR Identifier; PCSTR Identifier;
DriveNumber = 0x80 + i; DriveNumber = 0x80 + i;
@ -463,7 +461,6 @@ DetectBiosDisks(
PartialResourceList, PartialResourceList,
Size, Size,
&DiskKey); &DiskKey);
TRACE("Created key: DiskPeripheral\\%d\n", i);
} }
} }
@ -501,7 +498,6 @@ DetectPointerPeripheral(PCONFIGURATION_COMPONENT_DATA ControllerKey)
PartialResourceList, PartialResourceList,
Size, Size,
&PeripheralKey); &PeripheralKey);
TRACE("Created key: PointerPeripheral\\0\n");
} }
static VOID static VOID
@ -577,7 +573,6 @@ DetectPointerController(PCONFIGURATION_COMPONENT_DATA BusKey)
PartialResourceList, PartialResourceList,
Size, Size,
&ControllerKey); &ControllerKey);
TRACE("Created key: PointerController\\0\n");
DetectPointerPeripheral(ControllerKey); DetectPointerPeripheral(ControllerKey);
} }
@ -589,7 +584,7 @@ DetectKeyboardPeripheral(PCONFIGURATION_COMPONENT_DATA ControllerKey)
PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor; PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor;
PCM_KEYBOARD_DEVICE_DATA KeyboardData; PCM_KEYBOARD_DEVICE_DATA KeyboardData;
PCONFIGURATION_COMPONENT_DATA PeripheralKey; PCONFIGURATION_COMPONENT_DATA PeripheralKey;
CHAR Identifier[80]; PCSTR Identifier;
ULONG Size; ULONG Size;
REGS Regs; REGS Regs;
UCHAR KeyboardType = ((*(PUCHAR)MEM_KEYB_TYPE & 0x40) >> 5) | UCHAR KeyboardType = ((*(PUCHAR)MEM_KEYB_TYPE & 0x40) >> 5) |
@ -636,11 +631,11 @@ DetectKeyboardPeripheral(PCONFIGURATION_COMPONENT_DATA ControllerKey)
((Regs.b.al & 0x01) << 1); ((Regs.b.al & 0x01) << 1);
if (KeyboardType == 0) if (KeyboardType == 0)
RtlStringCbPrintfA(Identifier, sizeof(Identifier), "PC98_NmodeKEY"); Identifier = "PC98_NmodeKEY";
else if (KeyboardType == 2) else if (KeyboardType == 2)
RtlStringCbPrintfA(Identifier, sizeof(Identifier), "PC98_106KEY"); Identifier = "PC98_106KEY";
else else
RtlStringCbPrintfA(Identifier, sizeof(Identifier), "PC98_LaptopKEY"); Identifier = "PC98_LaptopKEY";
/* Create controller key */ /* Create controller key */
FldrCreateComponentKey(ControllerKey, FldrCreateComponentKey(ControllerKey,
@ -653,7 +648,6 @@ DetectKeyboardPeripheral(PCONFIGURATION_COMPONENT_DATA ControllerKey)
PartialResourceList, PartialResourceList,
Size, Size,
&PeripheralKey); &PeripheralKey);
TRACE("Created key: KeyboardPeripheral\\0\n");
} }
static VOID static VOID
@ -714,7 +708,6 @@ DetectKeyboardController(PCONFIGURATION_COMPONENT_DATA BusKey)
PartialResourceList, PartialResourceList,
Size, Size,
&ControllerKey); &ControllerKey);
TRACE("Created key: KeyboardController\\0\n");
DetectKeyboardPeripheral(ControllerKey); DetectKeyboardPeripheral(ControllerKey);
} }
@ -801,7 +794,6 @@ DetectParallelPorts(PCONFIGURATION_COMPONENT_DATA BusKey)
PartialResourceList, PartialResourceList,
Size, Size,
&ControllerKey); &ControllerKey);
TRACE("Created key: ParallelController\\0\n");
} }
static VOID static VOID
@ -898,7 +890,6 @@ DetectSerialPorts(PCONFIGURATION_COMPONENT_DATA BusKey)
PartialResourceList, PartialResourceList,
Size, Size,
&ControllerKey); &ControllerKey);
TRACE("Created key: SerialController\\%d\n", ControllerNumber);
++ControllerNumber; ++ControllerNumber;
} }
@ -963,7 +954,6 @@ DetectSerialPorts(PCONFIGURATION_COMPONENT_DATA BusKey)
PartialResourceList, PartialResourceList,
Size, Size,
&ControllerKey); &ControllerKey);
TRACE("Created key: SerialController\\%d\n", ControllerNumber);
++ControllerNumber; ++ControllerNumber;
} }
@ -994,7 +984,7 @@ DetectCBusBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
FldrCreateComponentKey(SystemKey, FldrCreateComponentKey(SystemKey,
AdapterClass, AdapterClass,
MultiFunctionAdapter, MultiFunctionAdapter,
0x0, 0,
0, 0,
0xFFFFFFFF, 0xFFFFFFFF,
"ISA", "ISA",
@ -1043,7 +1033,7 @@ DetectNesaBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
FldrCreateComponentKey(SystemKey, FldrCreateComponentKey(SystemKey,
AdapterClass, AdapterClass,
MultiFunctionAdapter, MultiFunctionAdapter,
0x0, 0,
0, 0,
0xFFFFFFFF, 0xFFFFFFFF,
"EISA", "EISA",
@ -1178,8 +1168,8 @@ DetectPnpBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
FldrCreateComponentKey(SystemKey, FldrCreateComponentKey(SystemKey,
AdapterClass, AdapterClass,
MultiFunctionAdapter, MultiFunctionAdapter,
0x0, 0,
0x0, 0,
0xFFFFFFFF, 0xFFFFFFFF,
"PNP BIOS", "PNP BIOS",
PartialResourceList, PartialResourceList,
@ -1198,8 +1188,7 @@ Pc98HwDetect(VOID)
TRACE("DetectHardware()\n"); TRACE("DetectHardware()\n");
/* Create the 'System' key */ /* Create the 'System' key */
FldrCreateSystemKey(&SystemKey); FldrCreateSystemKey(&SystemKey, "NEC PC-98");
FldrSetIdentifier(SystemKey, "NEC PC-98");
GetHarddiskConfigurationData = Pc98GetHarddiskConfigurationData; GetHarddiskConfigurationData = Pc98GetHarddiskConfigurationData;
FindPciBios = PcFindPciBios; FindPciBios = PcFindPciBios;

View file

@ -157,7 +157,6 @@ XboxGetHarddiskConfigurationData(UCHAR DriveNumber, ULONG* pSize)
static VOID static VOID
DetectDisplayController(PCONFIGURATION_COMPONENT_DATA BusKey) DetectDisplayController(PCONFIGURATION_COMPONENT_DATA BusKey)
{ {
CHAR Buffer[80];
PCONFIGURATION_COMPONENT_DATA ControllerKey; PCONFIGURATION_COMPONENT_DATA ControllerKey;
PCM_PARTIAL_RESOURCE_LIST PartialResourceList; PCM_PARTIAL_RESOURCE_LIST PartialResourceList;
PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor; PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor;
@ -166,8 +165,6 @@ DetectDisplayController(PCONFIGURATION_COMPONENT_DATA BusKey)
if (FrameBufferSize == 0) if (FrameBufferSize == 0)
return; return;
strcpy(Buffer, "NV2A Framebuffer");
Size = sizeof(CM_PARTIAL_RESOURCE_LIST); Size = sizeof(CM_PARTIAL_RESOURCE_LIST);
PartialResourceList = FrLdrHeapAlloc(Size, TAG_HW_RESOURCE_LIST); PartialResourceList = FrLdrHeapAlloc(Size, TAG_HW_RESOURCE_LIST);
if (PartialResourceList == NULL) if (PartialResourceList == NULL)
@ -193,15 +190,13 @@ DetectDisplayController(PCONFIGURATION_COMPONENT_DATA BusKey)
FldrCreateComponentKey(BusKey, FldrCreateComponentKey(BusKey,
ControllerClass, ControllerClass,
DisplayController, DisplayController,
0x0, Output | ConsoleOut,
0x0, 0,
0xFFFFFFFF, 0xFFFFFFFF,
Buffer, "NV2A Framebuffer",
PartialResourceList, PartialResourceList,
Size, Size,
&ControllerKey); &ControllerKey);
TRACE("Created key: DisplayController\\0\n");
} }
static static
@ -232,8 +227,8 @@ DetectIsaBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
FldrCreateComponentKey(SystemKey, FldrCreateComponentKey(SystemKey,
AdapterClass, AdapterClass,
MultiFunctionAdapter, MultiFunctionAdapter,
0x0, 0,
0x0, 0,
0xFFFFFFFF, 0xFFFFFFFF,
"ISA", "ISA",
PartialResourceList, PartialResourceList,
@ -276,8 +271,7 @@ XboxHwDetect(VOID)
TRACE("DetectHardware()\n"); TRACE("DetectHardware()\n");
/* Create the 'System' key */ /* Create the 'System' key */
FldrCreateSystemKey(&SystemKey); FldrCreateSystemKey(&SystemKey, "Original Xbox (PC/AT like)");
FldrSetIdentifier(SystemKey, "Original Xbox (PC/AT like)");
GetHarddiskConfigurationData = XboxGetHarddiskConfigurationData; GetHarddiskConfigurationData = XboxGetHarddiskConfigurationData;
FindPciBios = XboxFindPciBios; FindPciBios = XboxFindPciBios;

View file

@ -33,39 +33,27 @@ AddReactOSArcDiskInfo(
// ARC Component Configuration Routines // ARC Component Configuration Routines
// //
VOID VOID
NTAPI
FldrSetIdentifier(
IN PCONFIGURATION_COMPONENT_DATA ComponentData,
IN PCHAR IdentifierString
);
VOID
NTAPI
FldrSetConfigurationData( FldrSetConfigurationData(
IN PCONFIGURATION_COMPONENT_DATA ComponentData, _Inout_ PCONFIGURATION_COMPONENT_DATA ComponentData,
IN PCM_PARTIAL_RESOURCE_LIST ResourceList, _In_ PCM_PARTIAL_RESOURCE_LIST ResourceList,
IN ULONG Size _In_ ULONG Size);
);
VOID VOID
NTAPI
FldrCreateSystemKey( FldrCreateSystemKey(
OUT PCONFIGURATION_COMPONENT_DATA *SystemKey _Out_ PCONFIGURATION_COMPONENT_DATA* SystemNode,
); _In_ PCSTR IdentifierString);
VOID VOID
NTAPI
FldrCreateComponentKey( FldrCreateComponentKey(
IN PCONFIGURATION_COMPONENT_DATA SystemKey, _In_ PCONFIGURATION_COMPONENT_DATA SystemNode,
IN CONFIGURATION_CLASS Class, _In_ CONFIGURATION_CLASS Class,
IN CONFIGURATION_TYPE Type, _In_ CONFIGURATION_TYPE Type,
IN IDENTIFIER_FLAG Flags, _In_ IDENTIFIER_FLAG Flags,
IN ULONG Key, _In_ ULONG Key,
IN ULONG Affinity, _In_ ULONG Affinity,
IN PCHAR IdentifierString, _In_ PCSTR IdentifierString,
IN PCM_PARTIAL_RESOURCE_LIST ResourceList, _In_ PCM_PARTIAL_RESOURCE_LIST ResourceList,
IN ULONG Size, _In_ ULONG Size,
OUT PCONFIGURATION_COMPONENT_DATA *ComponentKey _Out_ PCONFIGURATION_COMPONENT_DATA* ComponentKey);
);
/* EOF */ /* EOF */