From: Ben Pfaff Date: Fri, 12 Dec 2008 05:06:43 +0000 (-0800) Subject: fix-pintos-script-geometry.patch (applied cleanly) X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=pintos-anon;a=commitdiff_plain;h=8a9fd0a7429887b4807a6416e6aa1e306182932e fix-pintos-script-geometry.patch (applied cleanly) --- diff --git a/src/utils/Pintos.pm b/src/utils/Pintos.pm index 70df40d..9e72232 100644 --- a/src/utils/Pintos.pm +++ b/src/utils/Pintos.pm @@ -148,7 +148,9 @@ sub set_align { sub assemble_disk { my (%args) = @_; - my (%geometry) = $args{GEOMETRY} || (H => 16, S => 63); + my (%geometry) = %{$args{GEOMETRY}}; + $geometry{H} = 16 if !defined $geometry{H}; + $geometry{S} = 63 if !defined $geometry{S}; my ($align); # Align partition start, end to cylinder boundary? my ($pad); # Pad end of disk out to cylinder boundary? @@ -258,6 +260,7 @@ sub make_partition_table { $table .= pack ("V", $p->{SECTORS}); # Length in sectors die if length ($table) % 16; } + $table = "\0" x 16 . $table while length ($table) < 64; return pack ("a64", $table); } diff --git a/src/utils/pintos b/src/utils/pintos index 130e6fe..a8f76b3 100755 --- a/src/utils/pintos +++ b/src/utils/pintos @@ -327,7 +327,7 @@ sub find_disks { $disk{DISK} = $make_disk; $disk{HANDLE} = $handle; $disk{ALIGN} = $align; - $disk{GEOMETRY} = %geometry; + $disk{GEOMETRY} = \%geometry; $disk{FORMAT} = 'partitioned'; $disk{LOADER} = read_loader ($loader_fn); $disk{ARGS} = \@args; diff --git a/src/utils/pintos-mkdisk b/src/utils/pintos-mkdisk index 87b1563..4bbd1a6 100755 --- a/src/utils/pintos-mkdisk +++ b/src/utils/pintos-mkdisk @@ -91,7 +91,7 @@ my (%disk) = %parts; $disk{DISK} = $disk_fn; $disk{HANDLE} = $disk_handle; $disk{ALIGN} = $align; -$disk{GEOMETRY} = %geometry; +$disk{GEOMETRY} = \%geometry; $disk{FORMAT} = $format; $disk{LOADER} = $loader; $disk{ARGS} = \@kernel_args;