Chameleon

Chameleon Commit Details

Date:2010-07-19 01:28:18 (13 years 9 months ago)
Author:Tamás Kosárszky
Commit:182
Parents: 181
Message:Added alternate format for setting the default partition. The user can specify the selected volume UUID for the "Default Partition" key.
Changes:
M/trunk/doc/BootHelp.txt
M/trunk/CHANGES
M/trunk/i386/libsaio/sys.c

File differences

trunk/doc/BootHelp.txt
4747
4848
4949
50
50
51
5152
5253
5354
"Instant Menu"=Yes Force displaying the partition selection menu.
"Default Partition" Sets the default boot partition,
=hd(x,y) where 'x' & 'y' are the disk and partition numbers.
=hd(x,y)| where 'x' & 'y' are the disk and partition numbers
=<UUID> or specify the selected volume UUID string.
"Hide Partition" Remove unwanted partition(s) from the boot menu.
=hd(x,y) [hd(m,n)] only non mac osx boot partitions can be hidden.
trunk/CHANGES
1
2
13
24
35
- Added alternate format for setting the default partition. The user can specify the selected
volume UUID for the "Default Partition" key.
- Implemented SPD memory automatic detection and injection,seems to work really great ...
- Factorized code to prepare a dynamic memory detection algorithm ...
- Optimized smbios table address search
trunk/i386/libsaio/sys.c
774774
775775
776776
777
777
778778
779779
780780
......
786786
787787
788788
789
790789
791790
792791
792
793793
794794
795795
796
797
798
799
796800
797801
798802
return bvr;
/*
* Checking "Default Partition" key in system configuration - use format: hd(x,y) -
* Checking "Default Partition" key in system configuration - use format: hd(x,y) or the volume UUID -
* to override the default selection.
* We accept only kBVFlagSystemVolume or kBVFlagForeignBoot volumes.
*/
{
for ( bvr = chain; bvr; bvr = bvr->next )
{
*testStr = '\0';
if ( bvr->biosdev >= 0x80 && bvr->biosdev < 0x100
&& ( bvr->flags & ( kBVFlagSystemVolume|kBVFlagForeignBoot ) ) )
{
// Trying to match hd(x,y) format.
sprintf(testStr, "hd(%d,%d)", bvr->biosdev - 0x80, bvr->part_no);
if (strcmp(testStr, val) == 0)
return bvr;
// Trying to match volume UUID.
if (bvr->fs_getuuid && bvr->fs_getuuid(bvr, testStr) == 0 && strcmp(testStr, val) == 0)
return bvr;
}
}
}

Archive Download the corresponding diff file

Revision: 182