david/ipxe
david
/
ipxe
Archived
1
0
Fork 0

[build] Reinstate the .pdsk padded-floppy image format

Some utilities that expect a floppy disk image (e.g. iLO?) may test
for a file of the correct size.  Reinstate the .pdsk image format in
order to provide this if needed.
This commit is contained in:
Michael Brown 2009-04-16 05:59:44 +01:00
parent 7741546a40
commit 7aee624881
2 changed files with 10 additions and 3 deletions

View File

@ -59,3 +59,9 @@ NON_AUTO_MEDIA += usb
%usb: $(BIN)/usbdisk.bin %hd
$(QM)$(ECHO) " [FINISH] $@"
$(Q)cat $^ > $@
# Padded floppy image (e.g. for iLO)
NON_AUTO_MEDIA += pdsk
%pdsk : %dsk
$(Q)cp $< $@
$(Q)$(PADIMG) --blksize=1474560 $@

View File

@ -23,8 +23,8 @@ GetOptions ( { map { /^(\w+)/; $1 => $opts->{$_} } keys %$opts }, keys %$opts )
while ( my $filename = shift ) {
die "$filename is not a file\n" unless -f $filename;
my $oldsize = -s $filename;
my $newsize = ( ( $oldsize + $blksize - 1 ) & ~( $blksize - 1 ) );
my $padsize = ( $newsize - $oldsize );
my $padsize = ( ( -$oldsize ) % $blksize );
my $newsize = ( $oldsize + $padsize );
next unless $padsize;
if ( $verbosity >= 1 ) {
printf "Padding %s from %d to %d bytes with %d x 0x%02x\n",
@ -40,5 +40,6 @@ while ( my $filename = shift ) {
truncate $filename, $newsize
or die "Could not resize $filename: $!\n";
}
die "Failed to pad $filename\n" unless -s $filename == $newsize;
die "Failed to pad $filename\n"
unless ( ( ( -s $filename ) % $blksize ) == 0 );
}