diff options
Diffstat (limited to 'qemu/roms/openbios/packages/mac-parts.h')
-rw-r--r-- | qemu/roms/openbios/packages/mac-parts.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/qemu/roms/openbios/packages/mac-parts.h b/qemu/roms/openbios/packages/mac-parts.h new file mode 100644 index 000000000..acfcbe04b --- /dev/null +++ b/qemu/roms/openbios/packages/mac-parts.h @@ -0,0 +1,88 @@ +/* + * Creation Date: <1999/07/06 15:45:12 samuel> + * Time-stamp: <2002/10/20 16:31:48 samuel> + * + * <partition_table.h> + * + * Headers describing the partition table + * + * Copyright (C) 1999, 2002 Samuel Rydh (samuel@ibrium.se) + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation + * + */ + +#ifndef _H_PARTITION_TABLE +#define _H_PARTITION_TABLE + +/* This information is based upon IM vol V. */ + +#define DESC_MAP_SIGNATURE 0x4552 +#define DESC_PART_SIGNATURE 0x504d + +enum { + kPartitionAUXIsValid = 0x00000001, + kPartitionAUXIsAllocated = 0x00000002, + kPartitionAUXIsInUse = 0x00000004, + kPartitionAUXIsBootValid = 0x00000008, + kPartitionAUXIsReadable = 0x00000010, + kPartitionAUXIsWriteable = 0x00000020, + kPartitionAUXIsBootCodePositionIndependent = 0x00000040, + kPartitionISMountedAtStartup = 0x40000000, + kPartitionIsStartup = 0x80000000, + kPartitionIsChainCompatible = 0x00000100, + kPartitionIsRealDeviceDriver = 0x00000200, + kPartitionCanChainToNext = 0x00000400, +}; + +typedef struct { + u32 ddBlock; /* first block of driver */ + u16 ddSize; /* driver size in blocks */ + s16 ddType; /* 1 & -1 for SCSI */ +} driver_entry_t; + +typedef struct { /* Block 0 of a device */ + u16 sbSig; /* always 0x4552 */ + u16 sbBlockSize; /* 512 */ + s32 sbBlkCount; /* #blocks on device */ + u16 sbDevType; /* 0 */ + u16 sbDevID; /* 0 */ + u32 sbData; /* 0 */ + s16 sbDrvrCount; /* #driver descriptors */ + + /* driver entries goes here */ + driver_entry_t drivers[61] __attribute__ ((packed)); + + u16 filler1; + u32 filler2; +} desc_map_t; + +typedef struct { /* Partition descriptor */ + u16 pmSig; /* always 0x504d 'PM' */ + u16 pmSigPad; /* 0 */ + u32 pmMapBlkCnt; /* #blocks in partition map */ + u32 pmPyPartStart; /* first physical block of part. */ + u32 pmPartBlkCnt; /* #blocks in partition */ + char pmPartName[32]; /* partition name */ + char pmPartType[32]; /* partition type */ + + /* these fields may or may not be used */ + u32 pmLgDataStart; + u32 pmDataCnt; + u32 pmPartStatus; + u32 pmLgBootStart; + u32 pmBootSize; + u32 pmBootLoad; + u32 pmBootLoad2; + u32 pmBootEntry; + u32 pmBootEntry2; + u32 pmBootCksum; + char pmProcessor[16]; + + char filler[376]; /* might contain extra information */ +} part_entry_t; + + +#endif /* _H_PARTITION_TABLE */ |