mirror of https://github.com/ipxe/ipxe.git
30 lines
633 B
Perl
30 lines
633 B
Perl
#!/usr/bin/perl -w
|
|
|
|
use warnings;
|
|
use strict;
|
|
|
|
use FindBin;
|
|
use lib "$FindBin::Bin";
|
|
use Option::ROM qw ( :all );
|
|
|
|
my @romfiles = @ARGV
|
|
or die "Usage: $0 rom-file-1 rom-file-2 ... > multi-rom-file\n";
|
|
|
|
while ( my $romfile = shift @romfiles ) {
|
|
|
|
# Read ROM file
|
|
my $rom = new Option::ROM;
|
|
$rom->load ( $romfile );
|
|
|
|
# Tag final image as non-final in all except the final ROM
|
|
if ( @romfiles ) {
|
|
my $image = $rom;
|
|
$image = $image->next_image() while $image->next_image();
|
|
$image->pci_header->{last_image} &= ~PCI_LAST_IMAGE;
|
|
$image->fix_checksum();
|
|
}
|
|
|
|
# Write ROM file to STDOUT
|
|
$rom->save ( "-" );
|
|
}
|