Chameleon

Chameleon Commit Details

Date:2014-12-31 03:31:48 (9 years 3 months ago)
Author:ErmaC
Commit:2524
Parents: 2523
Message:saio_types.h, biosfn.c - minor typo in bios-defined data structure that isn't actually used. fake_efi.c - eliminate redundant scan of bt(0,0) in setupSmbiosConfigFile. loadConfigFile already does a fall-back scan of bt(0,0), so another scan isn't needed. sys.c - While scanning a volume, getOSVersion looks for 5 files and switches back-n-forth between hd(X,Y)/....SystemVersion.plist on the newly scanned volume and bt(0,0)/hd(X,Y)/...SystemVersion.plist - which is an invalid path - should always return an error.
Changes:
M/trunk/i386/libsaio/saio_types.h
M/trunk/i386/libsaio/fake_efi.c
M/trunk/CHANGES
M/trunk/i386/libsaio/sys.c
M/trunk/i386/libsaio/biosfn.c

File differences

trunk/i386/libsaio/sys.c
595595
596596
597597
598
599
600
601
602
603
604
605
606
607
608
598609
599610
600611
return -1;
}
if (path && path[2] == '(')
{
for (dp = &devsw[0]; dp->name; ++dp)
{
if (path[0] == dp->name[0] && path[1] == dp->name[1])
{
return -1;
}
}
}
for (dp=devsw; dp->name; dp++)
{
if (bvd[0] == dp->name[0] && bvd[1] == dp->name[1])
trunk/i386/libsaio/biosfn.c
597597
598598
599599
600
600
601601
602602
603603
//printf("bus_type[4] = %x\n", dp->params. bus_type[4]);
//printf("interface_type[8] = %x\n", dp->params. interface_type[8]);
//printf("interface_path[8] = %x\n", dp->params. interface_path[8]);
//printf("dev_path[8] = %x\n", dp->params. dev_path[8]);
//printf("dev_path[16] = %x\n", dp->params. dev_path[16]);
//printf("reserved3 = %x\n", dp->params. reserved3);
//printf("checksum = %x\n", dp->params. checksum);
printf("io_port_base = %x\n", dp->dpte.io_port_base);
trunk/i386/libsaio/saio_types.h
100100
101101
102102
103
103
104104
105105
106106
unsigned char bus_type[4];
unsigned char interface_type[8];
unsigned char interface_path[8];
unsigned char dev_path[8];
unsigned char dev_path[16];
unsigned char reserved3;
unsigned char checksum;
} params;
trunk/i386/libsaio/fake_efi.c
818818
819819
820820
821
822
823
824
825
826
821
827822
828823
829824
{
// Check selected volume's Extra.
sprintf(dirSpecSMBIOS, "/Extra/%s", filename);
if ( (err = loadConfigFile(dirSpecSMBIOS, &bootInfo->smbiosConfig)) )
{
// Check booter volume/rdbt Extra.
sprintf(dirSpecSMBIOS, "bt(0,0)/Extra/%s", filename);
err = loadConfigFile(dirSpecSMBIOS, &bootInfo->smbiosConfig);
}
err = loadConfigFile(dirSpecSMBIOS, &bootInfo->smbiosConfig);
}
if (err)
trunk/CHANGES
1
2
3
14
25
36
- Zenith432 : saio_types.h, biosfn.c - minor typo in bios-defined data structure that isn't actually used.
fake_efi.c - eliminate redundant scan of bt(0,0) in setupSmbiosConfigFile. loadConfigFile already does a fall-back scan of bt(0,0), so another scan isn't needed.
sys.c - While scanning a volume, getOSVersion looks for 5 files and switches back-n-forth between hd(X,Y)/....SystemVersion.plist on the newly scanned volume and bt(0,0)/hd(X,Y)/...SystemVersion.plist - which is an invalid path - should always return an error.
- Zenith432 : Change to disk.c - Prevent getOSVersion from looking for SystemVersion.plist on FAT32 or exFAT file systems - since those filesystems never serve as system volumes.
UFS may serve as system volume, but there's no driver to read from it.
Change to sys.c - Eliminate a dubious recursion in diskScanBootVolumes(). It recognises the filesystem, then calls getOSVersion, which attempts to open 5 files in order to find SystemVersion - then when parsing the device name - calls diskScanBootVolumes() - as a form of on-demand scanning. This doesn't result in an infinite recursion - because the volume is already in the map. However, this auto-scan is only useful if user enters an explicit hd(X,Y) device-spec that has never been scanned before - an unlikely occurrence.

Archive Download the corresponding diff file

Revision: 2524