DBG_DEFAULT_CHANNEL(HWDETECT);
+FIND_PCI_BIOS FindPciBios = NULL;
+
static
PPCI_IRQ_ROUTING_TABLE
GetPciIrqRoutingTable(VOID)
}
-static BOOLEAN
-FindPciBios(PPCI_REGISTRY_INFO BusData)
+BOOLEAN
+PcFindPciBios(PPCI_REGISTRY_INFO BusData)
{
REGS RegsIn;
REGS RegsOut;
// TODO: Discover and set the machine type as the Component->Identifier
GetHarddiskConfigurationData = PcGetHarddiskConfigurationData;
+ FindPciBios = PcFindPciBios;
/* Detect buses */
DetectPciBios(SystemKey, &BusNumber);
DBG_DEFAULT_CHANNEL(HWDETECT);
+BOOLEAN
+XboxFindPciBios(PPCI_REGISTRY_INFO BusData)
+{
+ /* We emulate PCI BIOS here, there are 2 known working PCI buses on an original Xbox */
+
+ BusData->NoBuses = 2;
+ BusData->MajorRevision = 1;
+ BusData->MinorRevision = 0;
+ BusData->HardwareMechanism = 1;
+ return TRUE;
+}
+
VOID
XboxGetExtendedBIOSData(PULONG ExtendedBIOSDataArea, PULONG ExtendedBIOSDataSize)
{
FldrCreateSystemKey(&SystemKey);
GetHarddiskConfigurationData = XboxGetHarddiskConfigurationData;
+ FindPciBios = XboxFindPciBios;
/* TODO: Build actual xbox's hardware configuration tree */
+ DetectPciBios(SystemKey, &BusNumber);
DetectIsaBios(SystemKey, &BusNumber);
TRACE("DetectHardware() Done\n");
extern GET_HARDDISK_CONFIG_DATA GetHarddiskConfigurationData;
+typedef
+BOOLEAN
+(*FIND_PCI_BIOS)(PPCI_REGISTRY_INFO BusData);
+
+extern FIND_PCI_BIOS FindPciBios;
+
VOID
DetectBiosDisks(PCONFIGURATION_COMPONENT_DATA SystemKey,
PCONFIGURATION_COMPONENT_DATA BusKey);
VOID PcPrepareForReactOS(VOID);
PFREELDR_MEMORY_DESCRIPTOR PcMemGetMemoryMap(ULONG *MemoryMapSize);
+BOOLEAN PcFindPciBios(PPCI_REGISTRY_INFO BusData);
BOOLEAN DiskResetController(UCHAR DriveNumber);
BOOLEAN DiskGetExtendedDriveParameters(UCHAR DriveNumber, PVOID Buffer, USHORT BufferSize);