diff options
Diffstat (limited to 'perl-install/partition_table_bsd.pm')
-rw-r--r-- | perl-install/partition_table_bsd.pm | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/perl-install/partition_table_bsd.pm b/perl-install/partition_table_bsd.pm index f3134f4fb..c0af9cf48 100644 --- a/perl-install/partition_table_bsd.pm +++ b/perl-install/partition_table_bsd.pm @@ -56,6 +56,14 @@ my $magic = 0x82564557; my $nb_primary = 8; my $offset = 0x40; +#- use default partition table adust functions. +sub adjustStart($$) { + &partition_table::adjustStart; +} +sub adjustEnd($$) { + &partition_table::adjustEnd; +} + sub read($$) { my ($hd, $sector) = @_; my $tmp; @@ -89,8 +97,15 @@ sub read($$) { sub write($$$;$) { my ($hd, $sector, $pt, $info) = @_; - local *F; partition_table_raw::openit($hd, *F, 2) or die "error opening device $hd->{device} for writing"; - c::lseek_sector(fileno(F), $sector, $offset) or return 0; + #- handle testing for writing partition table on file only! + local *F; + if ($::testing) { + my $file = "/tmp/partition_table_$hd->{device}"; + open F, ">$file" or die "error opening test file $file"; + } else { + partition_table_raw::openit($hd, *F, 2) or die "error opening device $hd->{device} for writing"; + c::lseek_sector(fileno(F), $sector, $offset) or return 0; + } #- TODO compute checksum |