[FREELDR] Addendum / actual fix for ef76709b
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Tue, 17 Sep 2019 23:06:15 +0000 (01:06 +0200)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Tue, 17 Sep 2019 23:12:58 +0000 (01:12 +0200)
commitdd46d40fd26717a0526e58e612491d094f9c83b9
tree08a720e4026a4d2c5ca023210ef37f493a130eb3
parentff85aa0c38971ed7c54470bc6986edca781d710e
[FREELDR] Addendum / actual fix for ef76709b

According to the Advanced RISC Computing Specification v1.2, for partitions,
StartingAddress and EndingAddress are the start and end positions of the
partition in terms of byte offsets from the start of the disk.
CurrentAddress is the current offset into (i.e. relative to) the partition.

Fix also the FAT filesystem in accordance.

- FIXME fix: Retrieve the size of the disk in number of sectors in DiskOpen().
- Add extra validity checks in the DiskSeek() functions.
- Explicitly call PcDisk* functions in machpc.c and pcdisk.c, and
  XboxDisk* functions in machxbox.c (the code in these files is not
  called cross-platform).

CORE-16216 CORE-16248
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/disk/scsiport.c
boot/freeldr/freeldr/lib/fs/fat.c