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/a... ============================================================================== --- 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/i... ============================================================================== --- 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/i... ============================================================================== --- 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/p... ============================================================================== --- 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/d... ============================================================================== --- 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/includ... ============================================================================== --- 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/includ... ============================================================================== --- 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/machin... ============================================================================== --- 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/reacto... ============================================================================== --- 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/window... ============================================================================== --- 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)