From a31aa764b35315eda2caf3bd269db45fc56a9d66 Mon Sep 17 00:00:00 2001 From: Francois Pons Date: Mon, 24 Jan 2000 15:12:16 +0000 Subject: *** empty log message *** --- perl-install/partition_table_raw.pm | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'perl-install/partition_table_raw.pm') diff --git a/perl-install/partition_table_raw.pm b/perl-install/partition_table_raw.pm index cafb439f9..668913d9c 100644 --- a/perl-install/partition_table_raw.pm +++ b/perl-install/partition_table_raw.pm @@ -31,6 +31,30 @@ sub typeOfMBR_($) { typeFromMagic($_[0], @MBR_signatures) } sub hasExtended { 0 } +sub cylinder_size($) { + my ($hd) = @_; + $hd->{geom}{sectors} * $hd->{geom}{heads}; +} + +sub adjustStart($$) { + my ($hd, $part) = @_; + my $end = $part->{start} + $part->{size}; + + $part->{start} = round_up($part->{start}, + $part->{start} % cylinder_size($hd) < 2 * $hd->{geom}{sectors} ? + $hd->{geom}{sectors} : cylinder_size($hd)); + $part->{size} = $end - $part->{start}; +} +sub adjustEnd($$) { + my ($hd, $part) = @_; + my $end = $part->{start} + $part->{size}; + my $end2 = round_down($end, cylinder_size($hd)); + unless ($part->{start} < $end2) { + $end2 = round_up($end, cylinder_size($hd)); + } + $part->{size} = $end2 - $part->{start}; +} + sub get_geometry($) { my ($dev) = @_; my $g = ""; @@ -40,9 +64,6 @@ sub get_geometry($) { my %geom; @geom{qw(heads sectors cylinders start)} = unpack "CCSL", $g; - #- handle this strange but necessary reduction of visible cylinders on sparc, assume 2 for instance. - $geom{total_cylinders} = $geom{cylinders}; $geom{cylinders} -= 2 if arch() =~ /^sparc/; - { geom => \%geom, totalsectors => $geom{heads} * $geom{sectors} * $geom{cylinders} }; } -- cgit v1.2.1