- Make HwDetect routine return a pointer to the root of a configuration tree (instead...
authorAleksey Bragin <aleksey@reactos.org>
Fri, 25 Jan 2008 12:22:51 +0000 (12:22 +0000)
committerAleksey Bragin <aleksey@reactos.org>
Fri, 25 Jan 2008 12:22:51 +0000 (12:22 +0000)
svn path=/trunk/; revision=31987

reactos/boot/freeldr/freeldr/arch/i386/hardware.c
reactos/boot/freeldr/freeldr/arch/i386/xboxhw.c
reactos/boot/freeldr/freeldr/arch/powerpc/mach.c
reactos/boot/freeldr/freeldr/arch/powerpc/prep.c
reactos/boot/freeldr/freeldr/include/arch/i386/machpc.h
reactos/boot/freeldr/freeldr/include/arch/i386/machxbox.h
reactos/boot/freeldr/freeldr/include/machine.h
reactos/boot/freeldr/freeldr/reactos/reactos.c
reactos/boot/freeldr/freeldr/reactos/setupldr.c

index 829975a..60c7d03 100644 (file)
@@ -1861,7 +1861,7 @@ DetectIsaBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
 }
 
 
-VOID
+PCONFIGURATION_COMPONENT_DATA
 PcHwDetect(VOID)
 {
   PCONFIGURATION_COMPONENT_DATA SystemKey;
@@ -1886,6 +1886,8 @@ PcHwDetect(VOID)
   DetectAcpiBios(SystemKey, &BusNumber);
   
   DbgPrint((DPRINT_HWDETECT, "DetectHardware() Done\n"));
+
+  return SystemKey;
 }
 
 /* EOF */
index 91092eb..3df71f8 100644 (file)
@@ -349,7 +349,7 @@ DetectIsaBios(PCONFIGURATION_COMPONENT_DATA SystemKey, ULONG *BusNumber)
   /* FIXME: Detect more ISA devices */
 }
 
-VOID
+PCONFIGURATION_COMPONENT_DATA
 XboxHwDetect(VOID)
 {
   PCONFIGURATION_COMPONENT_DATA SystemKey;
@@ -370,6 +370,7 @@ XboxHwDetect(VOID)
   DetectIsaBios(SystemKey, &BusNumber);
 
   DbgPrint((DPRINT_HWDETECT, "DetectHardware() Done\n"));
+  return SystemKey;
 }
 
 /* EOF */
index 45d7da0..37f6adb 100644 (file)
@@ -446,7 +446,7 @@ VOID OfwCopyDeviceTree
     }
 }
 
-VOID PpcHwDetect() {
+PCONFIGURATION_COMPONENT_DATA PpcHwDetect() {
     PCONFIGURATION_COMPONENT_DATA RootKey;
     ULONG BusNumber = 0, DiskController = 0, DiskNumber = 0;
     int node = ofw_finddevice("/");
@@ -456,6 +456,7 @@ VOID PpcHwDetect() {
     FldrSetComponentInformation(RootKey, 0, 0, (ULONG)-1);
 
     OfwCopyDeviceTree(RootKey,"/",node,&BusNumber,&DiskController,&DiskNumber);
+    return RootKey;
 }
 
 BOOLEAN PpcDiskNormalizeSystemPath(char *SystemPath, unsigned Size) {
index ba30ab2..b4c3fff 100644 (file)
@@ -108,7 +108,7 @@ ULONG PpcPrepGetMemoryMap( PBIOS_MEMORY_MAP BiosMemoryMap,
 
 /* Most PReP hardware is in standard locations, based on the corresponding 
  * hardware on PCs. */
-VOID PpcPrepHwDetect() {
+PCONFIGURATION_COMPONENT_DATA PpcPrepHwDetect() {
   PCONFIGURATION_COMPONENT_DATA SystemKey;
 
   /* Create the 'System' key */
@@ -121,6 +121,7 @@ VOID PpcPrepHwDetect() {
                               0xFFFFFFFF);
   
   printf("DetectHardware() Done\n");
+  return SystemKey;
 }
 
 void PpcPrepInit()
index c6d4307..d8aa96e 100644 (file)
@@ -55,7 +55,7 @@ ULONG PcDiskGetCacheableBlockCount(ULONG DriveNumber);
 
 VOID PcRTCGetCurrentDateTime(PULONG Year, PULONG Month, PULONG Day, PULONG Hour, PULONG Minute, PULONG Second);
 
-VOID PcHwDetect(VOID);
+PCONFIGURATION_COMPONENT_DATA PcHwDetect(VOID);
 
 #endif /* __I386_MACHPC_H_ */
 
index 3eabbe7..3911711 100644 (file)
@@ -58,7 +58,7 @@ ULONG XboxDiskGetCacheableBlockCount(ULONG DriveNumber);
 
 VOID XboxRTCGetCurrentDateTime(PULONG Year, PULONG Month, PULONG Day, PULONG Hour, PULONG Minute, PULONG Second);
 
-VOID XboxHwDetect(VOID);
+PCONFIGURATION_COMPONENT_DATA XboxHwDetect(VOID);
 
 VOID XboxSetLED(PCSTR Pattern);
 
index 5b0cf46..7fb03fa 100644 (file)
@@ -69,7 +69,7 @@ typedef struct tagMACHVTBL
 
   VOID (*RTCGetCurrentDateTime)(PULONG Year, PULONG Month, PULONG Day, PULONG Hour, PULONG Minute, PULONG Second);
 
-  VOID (*HwDetect)(VOID);
+  PCONFIGURATION_COMPONENT_DATA (*HwDetect)(VOID);
 } MACHVTBL, *PMACHVTBL;
 
 VOID MachInit(const char *CmdLine);
index 27ad05a..2df4c98 100644 (file)
@@ -604,7 +604,6 @@ LoadAndBootReactOS(PCSTR OperatingSystemName)
        LoaderBlock.ModsCount = 0;
        LoaderBlock.ModsAddr = reactos_modules;
     LoaderBlock.DrivesAddr = reactos_arc_disk_info;
-    LoaderBlock.ArchExtra = (ULONG)reactos_arc_hardware_data;
     LoaderBlock.MmapLength = (unsigned long)MachGetMemoryMap((PBIOS_MEMORY_MAP)reactos_memory_map, 32) * sizeof(memory_map_t);
     if (LoaderBlock.MmapLength)
     {
@@ -700,7 +699,7 @@ LoadAndBootReactOS(PCSTR OperatingSystemName)
        /*
         * Detect hardware
         */
-       MachHwDetect();
+       LoaderBlock.ArchExtra = (ULONG)MachHwDetect();
     UiDrawProgressBarCenter(5, 100, szLoadingMsg);
 
        if (AcpiPresent) LoaderBlock.Flags |= MB_FLAGS_ACPI_TABLE;
index 7dd90e7..15b5846 100644 (file)
@@ -187,7 +187,6 @@ VOID RunLoader(VOID)
   LoaderBlock.PageDirectoryEnd = (ULONG)&PageDirectoryEnd;
   LoaderBlock.ModsCount = 0;
   LoaderBlock.ModsAddr = reactos_modules;
-  LoaderBlock.ArchExtra = (ULONG)reactos_arc_hardware_data;
   LoaderBlock.MmapLength = (unsigned long)MachGetMemoryMap((PBIOS_MEMORY_MAP)reactos_memory_map, 32) * sizeof(memory_map_t);
   if (LoaderBlock.MmapLength)
   {
@@ -232,7 +231,7 @@ VOID RunLoader(VOID)
 
   /* Detect hardware */
   UiDrawStatusText("Detecting hardware...");
-  MachHwDetect();
+  LoaderBlock.ArchExtra = (ULONG)MachHwDetect();
   UiDrawStatusText("");
 
   /* set boot device */