Mac OS 9
AppleDiskPartitions.h
Go to the documentation of this file.
1 
20 #ifndef __APPLEDISKPARTITIONS__
21 #define __APPLEDISKPARTITIONS__
22 
23 #ifndef __MACTYPES__
24 #include <MacTypes.h>
25 #endif
26 
27 #if PRAGMA_ONCE
28 #pragma once
29 #endif
30 
31 #ifdef __cplusplus
32 extern "C" {
33 #endif
34 
35 #if PRAGMA_IMPORT
36 #pragma import on
37 #endif
38 
39 #if PRAGMA_STRUCT_ALIGN
40 #pragma options align = mac68k
41 #elif PRAGMA_STRUCT_PACKPUSH
42 #pragma pack(push, 2)
43 #elif PRAGMA_STRUCT_PACK
44 #pragma pack(2)
45 #endif
46 
48 enum {
49  sbSIGWord = 0x4552,
50  sbMac = 1
51 };
52 
54 enum {
55  pMapSIG = 0x504D,
56  pdSigWord = 0x5453,
58  newPMSigWord = pMapSIG
59 };
60 
62 struct Block0 {
63  UInt16 sbSig;
64  UInt16 sbBlkSize;
65  UInt32 sbBlkCount;
66  UInt16 sbDevType;
67  UInt16 sbDevId;
68  UInt32 sbData;
69  UInt16 sbDrvrCount;
70  UInt32 ddBlock;
71  UInt16 ddSize;
72  UInt16 ddType;
73  UInt16 ddPad[243];
74 };
75 typedef struct Block0 Block0;
77 struct DDMap {
78  UInt32 ddBlock;
79  UInt16 ddSize;
80  UInt16 ddType;
81 };
82 typedef struct DDMap DDMap;
84 enum {
85  kDriverTypeMacSCSI = 0x0001,
86  kDriverTypeMacATA = 0x0701,
87  kDriverTypeMacSCSIChained = 0xFFFF,
88  kDriverTypeMacATAChained = 0xF8FF
89 };
90 
92 struct Partition {
93  UInt16 pmSig;
94  UInt16 pmSigPad;
95  UInt32 pmMapBlkCnt;
96  UInt32 pmPyPartStart;
97  UInt32 pmPartBlkCnt;
98  UInt8 pmPartName[32];
99  UInt8 pmParType[32];
100  UInt32 pmLgDataStart;
101  UInt32 pmDataCnt;
102  UInt32 pmPartStatus;
103  UInt32 pmLgBootStart;
104  UInt32 pmBootSize;
105  UInt32 pmBootAddr;
106  UInt32 pmBootAddr2;
107  UInt32 pmBootEntry;
108  UInt32 pmBootEntry2;
109  UInt32 pmBootCksum;
110  UInt8 pmProcessor[16];
111  UInt16 pmPad[188];
112 };
113 typedef struct Partition Partition;
114 
116 enum {
117  kPartitionAUXIsValid = 0x00000001,
118  kPartitionAUXIsAllocated = 0x00000002,
119  kPartitionAUXIsInUse = 0x00000004,
120  kPartitionAUXIsBootValid = 0x00000008,
121  kPartitionAUXIsReadable = 0x00000010,
122  kPartitionAUXIsWriteable = 0x00000020,
123  kPartitionAUXIsBootCodePositionIndependent = 0x00000040,
124  kPartitionIsWriteable = 0x00000020,
125  kPartitionIsMountedAtStartup = 0x40000000,
126  kPartitionIsStartup = (long)0x80000000,
127  kPartitionIsChainCompatible = 0x00000100,
128  kPartitionIsRealDeviceDriver = 0x00000200,
129  kPartitionCanChainToNext = 0x00000400
130 };
131 
133 enum {
134  kPatchDriverSignature =
135  FOUR_CHAR_CODE('ptDR'),
136  kSCSIDriverSignature = 0x00010600,
137  kATADriverSignature = FOUR_CHAR_CODE('wiki'),
138  kSCSICDDriverSignature = FOUR_CHAR_CODE('CDvr'),
139  kATAPIDriverSignature = FOUR_CHAR_CODE('ATPI'),
141  FOUR_CHAR_CODE('DSU1')
142 };
143 
144 #if PRAGMA_STRUCT_ALIGN
145 #pragma options align = reset
146 #elif PRAGMA_STRUCT_PACKPUSH
147 #pragma pack(pop)
148 #elif PRAGMA_STRUCT_PACK
149 #pragma pack()
150 #endif
151 
152 #ifdef PRAGMA_IMPORT_OFF
153 #pragma import off
154 #elif PRAGMA_IMPORT
155 #pragma import reset
156 #endif
157 
158 #ifdef __cplusplus
159 }
160 #endif
161 
162 #endif
@ kATADriverSignature
Definition: AppleDiskPartitions.h:137
@ kSCSICDDriverSignature
Definition: AppleDiskPartitions.h:138
@ kATAPIDriverSignature
Definition: AppleDiskPartitions.h:139
@ kDriveSetupHFSSignature
Definition: AppleDiskPartitions.h:140
@ kSCSIDriverSignature
Definition: AppleDiskPartitions.h:136
@ oldPMSigWord
Definition: AppleDiskPartitions.h:57
@ pdSigWord
Definition: AppleDiskPartitions.h:56
@ sbMac
Definition: AppleDiskPartitions.h:50
Basic Macintosh data types.
Definition: AppleDiskPartitions.h:62
UInt32 sbData
Definition: AppleDiskPartitions.h:68
UInt32 ddBlock
Definition: AppleDiskPartitions.h:70
UInt16 sbDevType
Definition: AppleDiskPartitions.h:66
UInt32 sbBlkCount
Definition: AppleDiskPartitions.h:65
UInt16 sbDevId
Definition: AppleDiskPartitions.h:67
UInt16 sbDrvrCount
Definition: AppleDiskPartitions.h:69
UInt16 ddSize
Definition: AppleDiskPartitions.h:71
UInt16 ddPad[243]
Definition: AppleDiskPartitions.h:73
UInt16 ddType
Definition: AppleDiskPartitions.h:72
UInt16 sbBlkSize
Definition: AppleDiskPartitions.h:64
Definition: AppleDiskPartitions.h:77
UInt16 ddType
Definition: AppleDiskPartitions.h:80
UInt16 ddSize
Definition: AppleDiskPartitions.h:79
Definition: AppleDiskPartitions.h:92
UInt32 pmLgBootStart
Definition: AppleDiskPartitions.h:103
UInt16 pmPad[188]
Definition: AppleDiskPartitions.h:111
UInt32 pmMapBlkCnt
Definition: AppleDiskPartitions.h:95
UInt32 pmBootAddr2
Definition: AppleDiskPartitions.h:106
UInt8 pmParType[32]
Definition: AppleDiskPartitions.h:99
UInt32 pmBootCksum
Definition: AppleDiskPartitions.h:109
UInt8 pmPartName[32]
Definition: AppleDiskPartitions.h:98
UInt32 pmBootEntry
Definition: AppleDiskPartitions.h:107
UInt32 pmBootAddr
Definition: AppleDiskPartitions.h:105
UInt32 pmBootEntry2
Definition: AppleDiskPartitions.h:108
UInt32 pmBootSize
Definition: AppleDiskPartitions.h:104
UInt32 pmPartBlkCnt
Definition: AppleDiskPartitions.h:97
UInt8 pmProcessor[16]
Definition: AppleDiskPartitions.h:110
UInt32 pmDataCnt
Definition: AppleDiskPartitions.h:101
UInt32 pmPyPartStart
Definition: AppleDiskPartitions.h:96
UInt32 pmLgDataStart
Definition: AppleDiskPartitions.h:100
UInt16 pmSigPad
Definition: AppleDiskPartitions.h:94
UInt32 pmPartStatus
Definition: AppleDiskPartitions.h:102