package partition_table_mac; # $Id$
use diagnostics;
#use strict; - fixed other PPC code to comply, but program bails on empty partition table - sbenedict
use vars qw(@ISA $freepart_device $bootstrap_part $freepart_start $freepart_size $macos_part);
@ISA = qw(partition_table_raw);
use common qw(:common :system :file :functional);
use partition_table_raw;
use partition_table;
use c;
my %typeToDos = (
"Apple_partition_map" => 0x401,
"Apple_Bootstrap" => 0x401,
"Apple_Driver43" => 0x401,
"Apple_Driver_IOKit" => 0x401,
"Apple_Patches" => 0x401,
"Apple_HFS" => 0x402,
"Apple_UNIX_SVR2" => 0x83,
"Apple_Free" => 0x0,
);
my %typeFromDos = reverse %typeToDos;
my ($bz_format, $bz_fields) = list2kv(
n => 'bzSig',
n => 'bzBlkSize',
N => 'bzBlkCnt',
n => 'bzDevType',
n => 'bzDevID',
N => 'bzReserved',
n => 'bzDrvrCnt',
);
$bz_format = join '', @$bz_format;
my ($dd_format, $dd_fields) = list2kv(
N => 'ddBlock',
n => 'ddSize',
n => 'ddType',
);
$dd_format = join '', @$dd_format;
my ($p_format, $p_fields) = list2kv(
n => 'pSig',
n => 'pSigPad',
N => 'pMapEntry',
N => 'pPBlockStart',
N => 'pPBlocks',
a32 => 'pName',
|