[FREELDR] Other enhancements.
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Fri, 13 Sep 2019 00:14:22 +0000 (02:14 +0200)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Fri, 13 Sep 2019 13:18:07 +0000 (15:18 +0200)
commit4843c1a954c0ef1973a2e0710e646912ee6053c3
tree123749b422e9cc84a61fb4f3cb65dbdb0df06f0a
parentb16ca9cd65c0279ef35dff5e0f0d733d7f1c77e4
[FREELDR] Other enhancements.

- Add optional arguments BootDrive and BootPartition to
  ChainLoadBiosBootSectorCode() so as not to modify explicitly the
  FrldrBootDrive and FrldrBootPartition variables, that should remain
  purely internal.

- Implement ChainLoadBiosBootSectorCode() for x64.

- Get rid of the machine-specific DiskGetBootPath(), and instead do its
  job only once in the machine-specific InitializeBootDevices() (or in
  MachInit() for PPC).
  Cache the result of this operation into the globally-accessible
  FrldrBootPath buffer. This avoids the unneeded calls to (Mach)DiskGetBootPath()
  we used to do before.
  Also remove the separate distinction between the PC and XBOX versions
  of this functionality.

- Move the PC-specific DiskIsDriveRemovable() and DiskGetBootPath()
  as well as the disk-IO-error functionality, back into the
  corresponding PC-arch files.

- Simplify IniFileInitialize(), getting rid of IniOpenIniFile().
25 files changed:
boot/freeldr/freeldr/arch/amd64/entry.S
boot/freeldr/freeldr/arch/arm/macharm.c
boot/freeldr/freeldr/arch/i386/entry.S
boot/freeldr/freeldr/arch/i386/hwdisk.c
boot/freeldr/freeldr/arch/i386/machpc.c
boot/freeldr/freeldr/arch/i386/machxbox.c
boot/freeldr/freeldr/arch/i386/pcdisk.c
boot/freeldr/freeldr/arch/powerpc/mach.c
boot/freeldr/freeldr/arch/powerpc/mboot.c
boot/freeldr/freeldr/arch/realmode/amd64.S
boot/freeldr/freeldr/arch/realmode/i386.S
boot/freeldr/freeldr/bootmgr.c
boot/freeldr/freeldr/disk/disk.c
boot/freeldr/freeldr/disk/partition.c
boot/freeldr/freeldr/disk/scsiport.c
boot/freeldr/freeldr/freeldr.c
boot/freeldr/freeldr/include/arch/pc/machpc.h
boot/freeldr/freeldr/include/arch/pc/pcbios.h
boot/freeldr/freeldr/include/disk.h
boot/freeldr/freeldr/include/machine.h
boot/freeldr/freeldr/lib/fs/btrfs.c
boot/freeldr/freeldr/lib/fs/ext2.c
boot/freeldr/freeldr/lib/fs/iso.c
boot/freeldr/freeldr/lib/inifile/ini_init.c
boot/freeldr/freeldr/miscboot.c