19 #ifndef __DRIVERGESTALT__
20 #define __DRIVERGESTALT__
30 #ifndef __NAMEREGISTRY__
58 #if PRAGMA_STRUCT_ALIGN
59 #pragma options align = mac68k
60 #elif PRAGMA_STRUCT_PACKPUSH
62 #elif PRAGMA_STRUCT_PACK
69 kbDriverGestaltEnable = 2,
70 kmDriverGestaltEnableMask = (1 << kbDriverGestaltEnable)
76 kDriverGestaltCode = 43,
77 kDriverConfigureCode = 43,
78 kcsSetBootPartitionCode = 44,
79 kcsGetBootPartitionStatus = 44,
81 kdgReturnDeviceID = 120,
82 kdgGetCDDeviceInfo = 121
88 kdgVersion = FOUR_CHAR_CODE(
91 FOUR_CHAR_CODE(
'devt'),
92 kdgInterface = FOUR_CHAR_CODE(
95 FOUR_CHAR_CODE(
'sync'),
97 FOUR_CHAR_CODE(
'boot'),
98 kdgWide = FOUR_CHAR_CODE(
'wide'),
99 kdgPurge = FOUR_CHAR_CODE(
101 kdgSupportsSwitching =
102 FOUR_CHAR_CODE(
'lpwr'),
104 FOUR_CHAR_CODE(
'pmn3'),
106 FOUR_CHAR_CODE(
'pmn5'),
108 FOUR_CHAR_CODE(
'pmx3'),
110 FOUR_CHAR_CODE(
'pmx5'),
111 kdgInHighPower = FOUR_CHAR_CODE(
113 kdgSupportsPowerCtl =
114 FOUR_CHAR_CODE(
'psup'),
115 kdgAPI = FOUR_CHAR_CODE(
'dAPI'),
116 kdgEject = FOUR_CHAR_CODE(
118 kdgFlush = FOUR_CHAR_CODE(
'flus'),
121 FOUR_CHAR_CODE(
'vmop'),
122 kdgMediaInfo = FOUR_CHAR_CODE(
'minf'),
123 kdgPhysDriveIconSuite =
124 FOUR_CHAR_CODE(
'dics'),
129 FOUR_CHAR_CODE(
'mics'),
134 kdgMediaName = FOUR_CHAR_CODE(
137 kdgGetDriveAddInfo = FOUR_CHAR_CODE(
139 kdcAddDriveWithInfo =
140 FOUR_CHAR_CODE(
'diad'),
147 kdgATADev1 = FOUR_CHAR_CODE(
'dev1'),
149 FOUR_CHAR_CODE(
'dvrf'),
151 kdgNameRegistryEntry = FOUR_CHAR_CODE(
153 kdgDeviceModelInfo = FOUR_CHAR_CODE(
155 kdgSupportedMediaTypes =
156 FOUR_CHAR_CODE(
'mdty'),
158 kdgOpenFirmwareBootSupport =
159 FOUR_CHAR_CODE(
'ofpt'),
161 kdgOpenFirmwareBootingSupport = FOUR_CHAR_CODE(
169 kdcFlush = FOUR_CHAR_CODE(
'flus'),
171 kdcVMOptions = FOUR_CHAR_CODE(
182 ProcPtr ioCompletion;
188 OSType driverConfigureSelector;
189 UInt32 driverConfigureParameter;
199 ProcPtr ioCompletion;
205 OSType driverGestaltSelector;
207 driverGestaltResponse;
208 UInt32 driverGestaltResponse1;
210 UInt32 driverGestaltResponse2;
212 UInt32 driverGestaltResponse3;
214 UInt16 driverGestaltfiller;
223 #define GetDriverGestaltDevTResponse(p) \
224 ((DriverGestaltDevTResponse *)(&((p)->driverGestaltResponse)))
225 #define GetDriverGestaltIntfResponse(p) \
226 ((DriverGestaltIntfResponse *)(&((p)->driverGestaltResponse)))
227 #define GetDriverGestaltPowerResponse(p) \
228 ((DriverGestaltPowerResponse *)(&((p)->driverGestaltResponse)))
229 #define GetDriverGestaltSyncResponse(p) \
230 ((DriverGestaltSyncResponse *)(&((p)->driverGestaltResponse)))
231 #define GetDriverGestaltBootResponse(p) \
232 ((DriverGestaltBootResponse *)(&((p)->driverGestaltResponse)))
233 #define GetDriverGestaltPurgeResponse(p) \
234 ((DriverGestaltPurgeResponse *)(&((p)->driverGestaltResponse)))
235 #define GetDriverGestaltEjectResponse(p) \
236 ((DriverGestaltEjectResponse *)(&((p)->driverGestaltResponse)))
237 #define GetDriverGestaltVersionResponse(p) \
238 (((NumVersion *)(&((p)->driverGestaltResponse))))
239 #define GetDriverGestaltAPIResponse(p) \
240 ((DriverGestaltAPIResponse *)(&((p)->driverGestaltResponse)))
241 #define GetDriverGestaltBooleanResponse(p) \
242 ((Boolean *)(&((p)->driverGestaltResponse)))
243 #define GetDriverGestaltFlushResponse(p) \
244 ((DriverGestaltFlushResponse *)(&((p)->driverGestaltResponse)))
245 #define GetDriverGestaltVMOptionsResponse(p) \
246 ((DriverGestaltVMOptionsResponse *)(&((p)->driverGestaltResponse)))
247 #define GetDriverGestaltMediaInfoResponse(p) \
248 ((DriverGestaltMediaInfoResponse *)(&((p)->driverGestaltResponse)))
249 #define GetDriverGestaltDeviceReferenceResponse(p) \
250 ((DriverGestaltDeviceReferenceResponse *)(&((p)->driverGestaltResponse)))
251 #define GetDriverGestaltNameRegistryResponse(p) \
252 ((DriverGestaltNameRegistryResponse *)(&((p)->driverGestaltResponse)))
253 #define GetDriverGestaltDeviceModelInfoResponse(p) \
254 ((DriverGestaltDeviceModelInfoResponse **)(&((p)->driverGestaltResponse)))
255 #define GetDriverGestaltSupportedMediaTypesResponse(p) \
256 ((DriverGestaltSupportedMediaTypesResponse **)(&((p)->driverGestaltResponse)))
257 #define GetDriverGestaltOFBootSupportResponse(p) \
258 ((DriverGestaltOFBootSupportResponse *)(&((p)->driverGestaltResponse)))
259 #define GetDriverGestaltATADev1Response(p) \
260 ((DriverGestaltATADev1Response *)(&((p)->driverGestaltResponse)))
261 #define GetDriverGestaltDriveAddInfoResponse(p) \
262 ((DriverGestaltDriveAddInfoResponse *)(&((p)->driverGestaltResponse)))
270 kdgDiskType = FOUR_CHAR_CODE(
'disk'),
271 kdgTapeType = FOUR_CHAR_CODE(
'tape'),
272 kdgPrinterType = FOUR_CHAR_CODE(
'prnt'),
273 kdgProcessorType = FOUR_CHAR_CODE(
'proc'),
274 kdgWormType = FOUR_CHAR_CODE(
'worm'),
275 kdgCDType = FOUR_CHAR_CODE(
'cdrm'),
276 kdgFloppyType = FOUR_CHAR_CODE(
'flop'),
277 kdgScannerType = FOUR_CHAR_CODE(
'scan'),
278 kdgFileType = FOUR_CHAR_CODE(
280 kdgRemovableType = FOUR_CHAR_CODE(
287 OSType interfaceType;
291 kdgScsiIntf = FOUR_CHAR_CODE(
'scsi'),
292 kdgPcmciaIntf = FOUR_CHAR_CODE(
'pcmc'),
293 kdgATAIntf = FOUR_CHAR_CODE(
'ata '),
294 kdgUSBIntf = FOUR_CHAR_CODE(
'usb '),
295 kdgFireWireIntf = FOUR_CHAR_CODE(
'fire'),
296 kdgExtBus = FOUR_CHAR_CODE(
'card'),
297 kdgNetworkIntf = FOUR_CHAR_CODE(
'net ')
303 unsigned long powerValue;
352 kmNoCloseNoPurge = 0,
353 kmOkCloseNoPurge = (1 << kbCloseOk) + (1 << kbRemoveOk),
354 kmOkCloseOkPurge = (1 << kbCloseOk) + (1 << kbRemoveOk) + (1 << kbPurgeOk)
359 UInt16 purgePermission;
363 UInt16 purgeReserved;
364 Ptr purgeDriverPointer;
369 UInt32 ejectFeatures;
374 kRestartDontEject = 0,
375 kShutDownDontEject = 1,
376 kRestartDontEject_Mask = 1 << kRestartDontEject,
377 kShutDownDontEject_Mask = 1 << kShutDownDontEject
422 kAllowVMWriteBit = 1,
423 kAllowVMNoneMask = 0,
424 kAllowVMReadOnlyMask = 1 << kAllowVMReadBit,
425 kAllowVMReadWriteMask = (1 << kAllowVMReadBit) + (1 << kAllowVMWriteBit)
496 driveInfoInteractBit =
498 driveInfoInteractMask =
500 driveInfoChangedBit =
502 driveInfoChangedMask =
504 driveInfoDriverReservedMask =
506 driveInfoSystemReservedMask =
538 kMediaTypeUnknown = 128,
539 kMediaTypeCDROM = 129,
540 kMediaTypeDVDROM = 130,
541 kMediaTypeDVDRAM = 131,
542 kMediaTypeDVDR = 132,
543 kMediaTypeReadOnly = 133,
544 kMediaTypeWriteOnce = 134,
545 kMediaTypeRewritable = 135,
546 kMediaTypeOverwritable = 136,
547 kMediaTypeNoMedia = -1
595 UInt32 infoStructVersion;
607 enum { kInfoStructStringPtrsVers1 = 1 };
625 UInt32 supportTypesCount;
626 OSType supportedTypesArray[1];
653 UInt32 bootPartitionQualifier;
655 UInt32 bootPartitionMapEntry;
664 kOFBootAnyPartition = 1,
665 kOFBootSpecifiedPartition = 2,
666 kOFBootNotBootable = 3,
667 kOFBootNotPartitioned = 4
687 cdTransportMask = 0x0003
697 cdRightToChannel = 4,
703 cdLockableButton = 14,
704 cdExtendedFeatures = 15,
705 cdPowerInject_Mask = 1 << cdPowerInject,
706 cdNotPowerEject_Mask = 1 << cdNotPowerEject,
707 cdMute_Mask = 1 << cdMute,
708 cdLeftToChannel_Mask = 1 << cdLeftToChannel,
709 cdRightToChannel_Mask = 1 << cdRightToChannel,
710 cdLeftPlusRight_Mask = 1 << cdLeftPlusRight,
711 cdSCSI_2_Mask = 1 << cdSCSI_2,
712 cdStereoVolume_Mask = 1 << cdStereoVolume,
713 cdDisconnect_Mask = 1 << cdDisconnect,
714 cdWriteOnce_Mask = 1 << cdWriteOnce,
715 cdLockableButton_Mask = 1 << cdLockableButton,
716 cdExtendedFeatures_Mask = 1 << cdExtendedFeatures
722 cdTray = cdPowerInject_Mask,
723 cdLid = cdNotPowerEject_Mask
739 cdDVDROM_Mask = 1 << cdDVDROM,
740 cdDVDR_Mask = 1 << cdDVDR,
741 cdDVDRAM_Mask = 1 << cdDVDRAM,
742 cdDVDAudio_Mask = 1 << cdDVDAudio,
743 cdDVDRW_Mask = 1 << cdDVDRW,
744 cdCDRom_Mask = 1 << cdCDRom,
745 cdCDR_Mask = 1 << cdCDR,
746 cdCDRW_Mask = 1 << cdCDRW
753 kRegisterPartition = 50,
755 OLD_REGISTER_PARTITION = 301,
761 OLD_GET_A_DRIVE = 302,
764 kProhibitMounting = 52,
765 kOldProhibitMounting = 2100,
768 kIsContainerMounted = 53,
769 kOldIsContainerMounted = 2201,
774 kContainerResponse = 3,
775 kMountVolumeImg = 54,
776 OLD_MOUNT_VOLUME_IMG = 2000,
786 kGetPartitionStatus = 50,
787 kOldGetPartitionStatus = 2200,
793 kOldGetPartInfo = 2300,
797 kGetContainerAlias = 52,
799 kOldGetContainerAlias = 2400,
808 DRIVER_NOT_INSTALLED = -1,
810 CANT_MOUNT_WITHIN_THIS_FS =
812 VOLUME_ALREADY_MOUNTED = -4
824 enum { kGetDriverInfo = FOUR_CHAR_CODE(
'vdrc') };
830 UInt32 physPartitionLoc;
831 UInt32 partitionNumber;
850 #if PRAGMA_STRUCT_ALIGN
851 #pragma options align = reset
852 #elif PRAGMA_STRUCT_PACKPUSH
854 #elif PRAGMA_STRUCT_PACK
858 #ifdef PRAGMA_IMPORT_OFF
Basic Macintosh data types.
unsigned char * StringPtr
Definition: MacTypes.h:477
unsigned char Boolean
Definition: MacTypes.h:318
Public API for USB Services Library (and associated components)
Definition: DriverGestalt.h:675
Definition: DriverGestalt.h:177
Definition: DriverGestalt.h:320
Definition: DriverGestalt.h:550
Definition: DriverGestalt.h:313
Definition: DriverGestalt.h:265
Definition: DriverGestalt.h:594
Definition: DriverGestalt.h:510
Definition: DriverGestalt.h:368
Definition: DriverGestalt.h:338
Definition: DriverGestalt.h:286
Definition: DriverGestalt.h:579
Definition: DriverGestalt.h:652
Definition: DriverGestalt.h:194
Definition: DriverGestalt.h:302
Definition: DriverGestalt.h:358
Definition: DriverGestalt.h:308
Definition: DriverGestalt.h:415
Definition: OSUtils.h:131
Definition: NameRegistry.h:62
Definition: DriverGestalt.h:828
Definition: DriverGestalt.h:835
Definition: DriverGestalt.h:563