3 # Construct a checksum for isolinux*.bin, compatible
4 # with an mkisofs boot-info-table
12 open(FILE
, '+<', $file) or die "$0: Cannot open $file: $!\n";
15 if ( !seek(FILE
,64,0) ) {
16 die "$0: Cannot seek past header\n";
21 while ( ($n = read(FILE
, $dw, 4)) > 0 ) {
22 $dw .= "\0\0\0\0"; # Pad to at least 32 bits
23 ($v) = unpack("V", $dw);
24 $csum = ($csum + $v) & 0xffffffff;
28 if ( !seek(FILE
,16,0) ) {
29 die "$0: Cannot seek to header\n";
32 print FILE
pack("VV", $bytes, $csum);