[ros-diffs] [hpoussin] 43262: [freeldr] It's easy to check if we booted from a floppy thanks to boot path. No need to maintain a machine callback for that

hpoussin at svn.reactos.org hpoussin at svn.reactos.org
Sat Oct 3 14:49:15 CEST 2009


Author: hpoussin
Date: Sat Oct  3 14:49:14 2009
New Revision: 43262

URL: http://svn.reactos.org/svn/reactos?rev=43262&view=rev
Log:
[freeldr] It's easy to check if we booted from a floppy thanks to boot path. No need to maintain a machine callback for that

Modified:
    trunk/reactos/boot/freeldr/freeldr/arch/arm/macharm.c
    trunk/reactos/boot/freeldr/freeldr/arch/i386/machpc.c
    trunk/reactos/boot/freeldr/freeldr/arch/i386/machxbox.c
    trunk/reactos/boot/freeldr/freeldr/arch/powerpc/mach.c
    trunk/reactos/boot/freeldr/freeldr/disk/disk.c
    trunk/reactos/boot/freeldr/freeldr/include/disk.h
    trunk/reactos/boot/freeldr/freeldr/include/machine.h
    trunk/reactos/boot/freeldr/freeldr/machine.c
    trunk/reactos/boot/freeldr/freeldr/reactos/setupldr.c
    trunk/reactos/boot/freeldr/freeldr/windows/setupldr2.c

Modified: trunk/reactos/boot/freeldr/freeldr/arch/arm/macharm.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/arm/macharm.c?rev=43262&r1=43261&r2=43262&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/arch/arm/macharm.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/arch/arm/macharm.c [iso-8859-1] Sat Oct  3 14:49:14 2009
@@ -203,7 +203,6 @@
     //
     MachVtbl.DiskGetBootPath = DiskGetBootPath;
     MachVtbl.DiskGetBootDevice = DiskGetBootDevice;
-    MachVtbl.DiskBootingFromFloppy = DiskBootingFromFloppy;
     MachVtbl.DiskNormalizeSystemPath = DiskNormalizeSystemPath;
     MachVtbl.DiskGetPartitionEntry = DiskGetPartitionEntry;
     

Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/machpc.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/i386/machpc.c?rev=43262&r1=43261&r2=43262&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/arch/i386/machpc.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/arch/i386/machpc.c [iso-8859-1] Sat Oct  3 14:49:14 2009
@@ -46,7 +46,6 @@
     MachVtbl.GetMemoryMap = PcMemGetMemoryMap;
     MachVtbl.DiskGetBootPath = DiskGetBootPath;
     MachVtbl.DiskGetBootDevice = DiskGetBootDevice;
-    MachVtbl.DiskBootingFromFloppy = DiskBootingFromFloppy;
     MachVtbl.DiskNormalizeSystemPath = DiskNormalizeSystemPath;
     MachVtbl.DiskReadLogicalSectors = PcDiskReadLogicalSectors;
     MachVtbl.DiskGetPartitionEntry = DiskGetPartitionEntry;

Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/machxbox.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/i386/machxbox.c?rev=43262&r1=43261&r2=43262&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/arch/i386/machxbox.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/arch/i386/machxbox.c [iso-8859-1] Sat Oct  3 14:49:14 2009
@@ -49,7 +49,6 @@
   MachVtbl.GetMemoryMap = XboxMemGetMemoryMap;
   MachVtbl.DiskGetBootPath = DiskGetBootPath;
   MachVtbl.DiskGetBootDevice = DiskGetBootDevice;
-  MachVtbl.DiskBootingFromFloppy = DiskBootingFromFloppy;
   MachVtbl.DiskNormalizeSystemPath = DiskNormalizeSystemPath;
   MachVtbl.DiskReadLogicalSectors = XboxDiskReadLogicalSectors;
   MachVtbl.DiskGetPartitionEntry = XboxDiskGetPartitionEntry;

Modified: trunk/reactos/boot/freeldr/freeldr/arch/powerpc/mach.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/arch/powerpc/mach.c?rev=43262&r1=43261&r2=43262&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/arch/powerpc/mach.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/arch/powerpc/mach.c [iso-8859-1] Sat Oct  3 14:49:14 2009
@@ -254,10 +254,6 @@
 
 VOID PpcDiskGetBootDevice( PULONG BootDevice ) {
     BootDevice[0] = BootDevice[1] = 0;
-}
-
-BOOLEAN PpcDiskBootingFromFloppy(VOID) {
-    return FALSE;
 }
 
 BOOLEAN PpcDiskReadLogicalSectors( ULONG DriveNumber, ULONGLONG SectorNumber,
@@ -495,7 +491,6 @@
     MachVtbl.DiskNormalizeSystemPath = PpcDiskNormalizeSystemPath;
     MachVtbl.DiskGetBootPath = PpcDiskGetBootPath;
     MachVtbl.DiskGetBootDevice = PpcDiskGetBootDevice;
-    MachVtbl.DiskBootingFromFloppy = PpcDiskBootingFromFloppy;
     MachVtbl.DiskReadLogicalSectors = PpcDiskReadLogicalSectors;
     MachVtbl.DiskGetPartitionEntry = PpcDiskGetPartitionEntry;
     MachVtbl.DiskGetDriveGeometry = PpcDiskGetDriveGeometry;

Modified: trunk/reactos/boot/freeldr/freeldr/disk/disk.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/disk/disk.c?rev=43262&r1=43261&r2=43262&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/disk/disk.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/disk/disk.c [iso-8859-1] Sat Oct  3 14:49:14 2009
@@ -219,12 +219,6 @@
     ((char *)BootDevice)[1] = (char)BootPartition;
 }
 
-BOOLEAN
-DiskBootingFromFloppy(VOID)
-{
-    return BootDrive < 0x80;
-}
-
 #define IsRecognizedPartition(P)  \
     ((P) == PARTITION_FAT_12       || \
      (P) == PARTITION_FAT_16       || \
@@ -344,7 +338,7 @@
 		return FALSE;
 	}
 	strcpy(BootPath, Path);
-	strcat(BootPath, MachDiskBootingFromFloppy() ? "fdisk" : "cdrom");
+	strcat(BootPath, BootDrive < 0x80 ? "fdisk" : "cdrom");
 	strcat(strcat(strcat(BootPath, "("), Device), ")");
     
 	if (strcmp(BootPath, "multi(0)disk(0)cdrom(128)") == 0)

Modified: trunk/reactos/boot/freeldr/freeldr/include/disk.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/include/disk.h?rev=43262&r1=43261&r2=43262&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/include/disk.h [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/include/disk.h [iso-8859-1] Sat Oct  3 14:49:14 2009
@@ -133,7 +133,6 @@
                             PULONG Device);
 BOOLEAN DiskGetBootPath(char *BootPath, unsigned Size);
 VOID DiskGetBootDevice(PULONG BootDevice);
-BOOLEAN DiskBootingFromFloppy(VOID);
 BOOLEAN DiskNormalizeSystemPath(char *SystemPath, unsigned Size);
 
 

Modified: trunk/reactos/boot/freeldr/freeldr/include/machine.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/include/machine.h?rev=43262&r1=43261&r2=43262&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/include/machine.h [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/include/machine.h [iso-8859-1] Sat Oct  3 14:49:14 2009
@@ -64,7 +64,6 @@
 
   BOOLEAN (*DiskGetBootPath)(char *BootPath, unsigned Size);
   VOID (*DiskGetBootDevice)(PULONG BootDevice);
-  BOOLEAN (*DiskBootingFromFloppy)(VOID);
   BOOLEAN (*DiskNormalizeSystemPath)(char *SystemPath, unsigned Size);
   BOOLEAN (*DiskReadLogicalSectors)(ULONG DriveNumber, ULONGLONG SectorNumber, ULONG SectorCount, PVOID Buffer);
   BOOLEAN (*DiskGetPartitionEntry)(ULONG DriveNumber, ULONG PartitionNumber, PPARTITION_TABLE_ENTRY PartitionTableEntry);
@@ -100,7 +99,6 @@
 MEMORY_DESCRIPTOR* ArcGetMemoryDescriptor(MEMORY_DESCRIPTOR* Current);
 BOOLEAN MachDiskGetBootPath(char *BootPath, unsigned Size);
 VOID MachDiskGetBootDevice(PULONG BootDevice);
-BOOLEAN MachDiskBootingFromFloppy();
 BOOLEAN MachDiskNormalizeSystemPath(char *SystemPath, unsigned Size);
 BOOLEAN MachDiskReadLogicalSectors(ULONG DriveNumber, ULONGLONG SectorNumber, ULONG SectorCount, PVOID Buffer);
 BOOLEAN MachDiskGetPartitionEntry(ULONG DriveNumber, ULONG PartitionNumber, PPARTITION_TABLE_ENTRY PartitionTableEntry);
@@ -130,7 +128,6 @@
 #define MachPrepareForReactOS(a)		MachVtbl.PrepareForReactOS(a)
 #define MachDiskGetBootPath(Path, Size)		MachVtbl.DiskGetBootPath((Path), (Size))
 #define MachDiskGetBootDevice(BootDevice)	MachVtbl.DiskGetBootDevice(BootDevice)
-#define MachDiskBootingFromFloppy()		MachVtbl.DiskBootingFromFloppy()
 #define MachDiskNormalizeSystemPath(Path, Size)	MachVtbl.DiskNormalizeSystemPath((Path), (Size))
 #define MachDiskReadLogicalSectors(Drive, Start, Count, Buf)	MachVtbl.DiskReadLogicalSectors((Drive), (Start), (Count), (Buf))
 #define MachDiskGetPartitionEntry(Drive, Part, Entry)	MachVtbl.DiskGetPartitionEntry((Drive), (Part), (Entry))

Modified: trunk/reactos/boot/freeldr/freeldr/machine.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/machine.c?rev=43262&r1=43261&r2=43262&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/machine.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/machine.c [iso-8859-1] Sat Oct  3 14:49:14 2009
@@ -38,7 +38,6 @@
 #undef MachPrepareForReactOS
 #undef MachDiskGetBootPath
 #undef MachDiskGetBootDevice
-#undef MachDiskBootingFromFloppy
 #undef MachDiskNormalizeSystemPath
 #undef MachDiskReadLogicalSectors
 #undef MachDiskGetPartitionEntry
@@ -335,12 +334,6 @@
 }
 
 BOOLEAN
-MachDiskBootingFromFloppy()
-{
-  return MachVtbl.DiskBootingFromFloppy();
-}
-
-BOOLEAN
 MachDiskNormalizeSystemPath(char *SystemPath, unsigned Size)
 {
   return MachVtbl.DiskNormalizeSystemPath(SystemPath, Size);

Modified: trunk/reactos/boot/freeldr/freeldr/reactos/setupldr.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/reactos/setupldr.c?rev=43262&r1=43261&r2=43262&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/reactos/setupldr.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/reactos/setupldr.c [iso-8859-1] Sat Oct  3 14:49:14 2009
@@ -47,6 +47,7 @@
     ULONG i;
     LPCSTR SourcePath;
     LPCSTR LoadOptions, DbgLoadOptions = "";
+    BOOLEAN BootFromFloppy;
     LPCSTR sourcePaths[] = {
       "", /* Only for floppy boot */
 #if defined(_M_IX86)
@@ -116,12 +117,13 @@
   LoaderBlock.ArchExtra = (ULONG_PTR)MachHwDetect();
   UiDrawStatusText("");
 
-  /* set boot device */
-  MachDiskGetBootDevice(&LoaderBlock.BootDevice);
+  /* Check if we booted from floppy */
+  MachDiskGetBootPath(reactos_kernel_cmdline, sizeof(reactos_kernel_cmdline));
+  BootFromFloppy = strstr(reactos_kernel_cmdline, "fdisk");
 
   UiDrawStatusText("Loading txtsetup.sif...");
   /* Open 'txtsetup.sif' */
-  for (i = MachDiskBootingFromFloppy() ? 0 : 1; ; i++)
+  for (i = BootFromFloppy ? 0 : 1; ; i++)
   {
     SourcePath = sourcePaths[i];
     if (!SourcePath)
@@ -191,7 +193,7 @@
     LoaderBlock.KernelBase = KernelBase;
 
   /* Insert boot disk 2 */
-  if (MachDiskBootingFromFloppy())
+  if (BootFromFloppy)
     {
       UiMessageBox("Please insert \"ReactOS Boot Disk 2\" and press ENTER");
 

Modified: trunk/reactos/boot/freeldr/freeldr/windows/setupldr2.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/windows/setupldr2.c?rev=43262&r1=43261&r2=43262&view=diff
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/windows/setupldr2.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/windows/setupldr2.c [iso-8859-1] Sat Oct  3 14:49:14 2009
@@ -158,6 +158,7 @@
     CHAR  FileName[512];
     CHAR  BootPath[512];
     LPCSTR LoadOptions, BootOptions;
+    BOOLEAN BootFromFloppy;
 #if DBG
     LPCSTR DbgOptions;
 #endif
@@ -189,9 +190,14 @@
         NULL
     };
 
+    /* Get boot path */
+    MachDiskGetBootPath(SystemPath, sizeof(SystemPath));
+
+    /* And check if we booted from floppy */
+    BootFromFloppy = strstr(SystemPath, "fdisk");
+
     /* Open 'txtsetup.sif' from any of source paths */
-    MachDiskGetBootPath(SystemPath, sizeof(SystemPath));
-    for (i = MachDiskBootingFromFloppy() ? 0 : 1; ; i++)
+    for (i = BootFromFloppy ? 0 : 1; ; i++)
     {
         SourcePath = SourcePaths[i];
         if (!SourcePath)




More information about the Ros-diffs mailing list