From 8a9fd0a7429887b4807a6416e6aa1e306182932e Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Thu, 11 Dec 2008 21:06:43 -0800 Subject: [PATCH] fix-pintos-script-geometry.patch (applied cleanly) --- src/utils/Pintos.pm | 5 ++++- src/utils/pintos | 2 +- src/utils/pintos-mkdisk | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) 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; -- 2.30.2