summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/AppleDiskPartitions.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/AppleDiskPartitions.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'common/quicktime_win32/AppleDiskPartitions.h')
-rw-r--r--common/quicktime_win32/AppleDiskPartitions.h160
1 files changed, 160 insertions, 0 deletions
diff --git a/common/quicktime_win32/AppleDiskPartitions.h b/common/quicktime_win32/AppleDiskPartitions.h
new file mode 100644
index 0000000..1927da1
--- /dev/null
+++ b/common/quicktime_win32/AppleDiskPartitions.h
@@ -0,0 +1,160 @@
+/*
+ File: AppleDiskPartitions.h
+
+ Contains: The Apple disk partition scheme as defined in Inside Macintosh: Volume V.
+
+ Version: QuickTime 7.3
+
+ Copyright: (c) 2007 (c) 2000-2001 by Apple Computer, Inc., all rights reserved
+
+ Bugs?: For bug reports, consult the following page on
+ the World Wide Web:
+
+ http://developer.apple.com/bugreporter/
+
+*/
+#ifndef __APPLEDISKPARTITIONS__
+#define __APPLEDISKPARTITIONS__
+
+#ifndef __MACTYPES__
+#include <MacTypes.h>
+#endif
+
+
+
+
+#if PRAGMA_ONCE
+#pragma once
+#endif
+
+#if PRAGMA_IMPORT
+#pragma import on
+#endif
+
+#if PRAGMA_STRUCT_ALIGN
+ #pragma options align=mac68k
+#elif PRAGMA_STRUCT_PACKPUSH
+ #pragma pack(push, 2)
+#elif PRAGMA_STRUCT_PACK
+ #pragma pack(2)
+#endif
+
+/* Block 0 Definitions */
+enum {
+ sbSIGWord = 0x4552, /* signature word for Block 0 ('ER') */
+ sbMac = 1 /* system type for Mac */
+};
+
+/* Partition Map Signatures */
+enum {
+ pMapSIG = 0x504D, /* partition map signature ('PM') */
+ pdSigWord = 0x5453, /* partition map signature ('TS') */
+ oldPMSigWord = pdSigWord,
+ newPMSigWord = pMapSIG
+};
+
+
+/* Driver Descriptor Map */
+struct Block0 {
+ UInt16 sbSig; /* unique value for SCSI block 0 */
+ UInt16 sbBlkSize; /* block size of device */
+ UInt32 sbBlkCount; /* number of blocks on device */
+ UInt16 sbDevType; /* device type */
+ UInt16 sbDevId; /* device id */
+ UInt32 sbData; /* not used */
+ UInt16 sbDrvrCount; /* driver descriptor count */
+ UInt32 ddBlock; /* 1st driver's starting block */
+ UInt16 ddSize; /* size of 1st driver (512-byte blks) */
+ UInt16 ddType; /* system type (1 for Mac+) */
+ UInt16 ddPad[243]; /* ARRAY[0..242] OF INTEGER; not used */
+};
+typedef struct Block0 Block0;
+/* Driver descriptor */
+struct DDMap {
+ UInt32 ddBlock; /* 1st driver's starting block */
+ UInt16 ddSize; /* size of 1st driver (512-byte blks) */
+ UInt16 ddType; /* system type (1 for Mac+) */
+};
+typedef struct DDMap DDMap;
+/* Constants for the ddType field of the DDMap structure. */
+enum {
+ kDriverTypeMacSCSI = 0x0001,
+ kDriverTypeMacATA = 0x0701,
+ kDriverTypeMacSCSIChained = 0xFFFF,
+ kDriverTypeMacATAChained = 0xF8FF
+};
+
+/* Partition Map Entry */
+struct Partition {
+ UInt16 pmSig; /* unique value for map entry blk */
+ UInt16 pmSigPad; /* currently unused */
+ UInt32 pmMapBlkCnt; /* # of blks in partition map */
+ UInt32 pmPyPartStart; /* physical start blk of partition */
+ UInt32 pmPartBlkCnt; /* # of blks in this partition */
+ UInt8 pmPartName[32]; /* ASCII partition name */
+ UInt8 pmParType[32]; /* ASCII partition type */
+ UInt32 pmLgDataStart; /* log. # of partition's 1st data blk */
+ UInt32 pmDataCnt; /* # of blks in partition's data area */
+ UInt32 pmPartStatus; /* bit field for partition status */
+ UInt32 pmLgBootStart; /* log. blk of partition's boot code */
+ UInt32 pmBootSize; /* number of bytes in boot code */
+ UInt32 pmBootAddr; /* memory load address of boot code */
+ UInt32 pmBootAddr2; /* currently unused */
+ UInt32 pmBootEntry; /* entry point of boot code */
+ UInt32 pmBootEntry2; /* currently unused */
+ UInt32 pmBootCksum; /* checksum of boot code */
+ UInt8 pmProcessor[16]; /* ASCII for the processor type */
+ UInt16 pmPad[188]; /* ARRAY[0..187] OF INTEGER; not used */
+};
+typedef struct Partition Partition;
+
+/* Flags for the pmPartStatus field of the Partition data structure. */
+enum {
+ kPartitionAUXIsValid = 0x00000001,
+ kPartitionAUXIsAllocated = 0x00000002,
+ kPartitionAUXIsInUse = 0x00000004,
+ kPartitionAUXIsBootValid = 0x00000008,
+ kPartitionAUXIsReadable = 0x00000010,
+ kPartitionAUXIsWriteable = 0x00000020,
+ kPartitionAUXIsBootCodePositionIndependent = 0x00000040,
+ kPartitionIsWriteable = 0x00000020,
+ kPartitionIsMountedAtStartup = 0x40000000,
+ kPartitionIsStartup = (long)0x80000000,
+ kPartitionIsChainCompatible = 0x00000100,
+ kPartitionIsRealDeviceDriver = 0x00000200,
+ kPartitionCanChainToNext = 0x00000400
+};
+
+
+
+
+/* Well known driver signatures, stored in the first four byte of pmPad. */
+enum {
+ kPatchDriverSignature = FOUR_CHAR_CODE('ptDR'), /* SCSI and ATA[PI] patch driver */
+ kSCSIDriverSignature = 0x00010600, /* SCSI hard disk driver */
+ kATADriverSignature = FOUR_CHAR_CODE('wiki'), /* ATA hard disk driver */
+ kSCSICDDriverSignature = FOUR_CHAR_CODE('CDvr'), /* SCSI CD-ROM driver */
+ kATAPIDriverSignature = FOUR_CHAR_CODE('ATPI'), /* ATAPI CD-ROM driver */
+ kDriveSetupHFSSignature = FOUR_CHAR_CODE('DSU1') /* Drive Setup HFS partition */
+};
+
+
+
+
+#if PRAGMA_STRUCT_ALIGN
+ #pragma options align=reset
+#elif PRAGMA_STRUCT_PACKPUSH
+ #pragma pack(pop)
+#elif PRAGMA_STRUCT_PACK
+ #pragma pack()
+#endif
+
+#ifdef PRAGMA_IMPORT_OFF
+#pragma import off
+#elif PRAGMA_IMPORT
+#pragma import reset
+#endif
+
+
+#endif /* __APPLEDISKPARTITIONS__ */
+