Mercurial > projects > dstep
view dstep/coreservices/osservices/AppleDiskPartitions.d @ 11:07194b026fa4
Added bindings to a couple of frameworks, new license + some other things
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sat, 01 Aug 2009 15:03:28 +0200 |
parents | |
children |
line wrap: on
line source
/** * Copyright: Copyright (c) 2009 Jacob Carlborg. * Authors: Jacob Carlborg * Version: Initial created: Jul 22, 2009 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module dstep.coreservices.osservices.AppleDiskPartitions; //import dstep.AvailabilityMacros; import dstep.coreservices.carboncore.MacTypes; import dstep.internal.Version; import dstep.objc.bridge.TypeEncoding; // This is needed otherwise the enums will fail compiling with gdc version (GNU) { private { const __kPatchDriverSignature = getOSType!("ptDR"); const __kATADriverSignature = getOSType!("wiki"); const __kSCSICDDriverSignature = getOSType!("CDvr"); const __kATAPIDriverSignature = getOSType!("ATPI"); const __kDriveSetupHFSSignature = getOSType!("DSU1"); } } enum { sbSIGWord = 0x4552, sbMac = 1 } enum { pMapSIG = 0x504D, pdSigWord = 0x5453, oldPMSigWord = pdSigWord, newPMSigWord = pMapSIG } enum { kDriverTypeMacSCSI = 0x0001, kDriverTypeMacATA = 0x0701, kDriverTypeMacSCSIChained = 0xFFFF, kDriverTypeMacATAChained = 0xF8FF } static if (D_LP64) { enum : long { kPartitionAUXIsValid = 0x00000001, kPartitionAUXIsAllocated = 0x00000002, kPartitionAUXIsInUse = 0x00000004, kPartitionAUXIsBootValid = 0x00000008, kPartitionAUXIsReadable = 0x00000010, kPartitionAUXIsWriteable = 0x00000020, kPartitionAUXIsBootCodePositionIndependent = 0x00000040, kPartitionIsWriteable = 0x00000020, kPartitionIsMountedAtStartup = 0x40000000, kPartitionIsStartup = 0x80000000, kPartitionIsChainCompatible = 0x00000100, kPartitionIsRealDeviceDriver = 0x00000200, kPartitionCanChainToNext = 0x00000400 } } else { enum { kPartitionAUXIsValid = 0x00000001, kPartitionAUXIsAllocated = 0x00000002, kPartitionAUXIsInUse = 0x00000004, kPartitionAUXIsBootValid = 0x00000008, kPartitionAUXIsReadable = 0x00000010, kPartitionAUXIsWriteable = 0x00000020, kPartitionAUXIsBootCodePositionIndependent = 0x00000040, kPartitionIsWriteable = 0x00000020, kPartitionIsMountedAtStartup = 0x40000000, kPartitionIsStartup = 0x80000000, kPartitionIsChainCompatible = 0x00000100, kPartitionIsRealDeviceDriver = 0x00000200, kPartitionCanChainToNext = 0x00000400 } } enum { kPatchDriverSignature = getOSType!("ptDR"), kSCSIDriverSignature = 0x00010600, kATADriverSignature = getOSType!("wiki"), kSCSICDDriverSignature = getOSType!("CDvr"), kATAPIDriverSignature = getOSType!("ATPI"), kDriveSetupHFSSignature = getOSType!("DSU1") } struct Block0 { ushort sbSig; ushort sbBlkSize; uint sbBlkCount; ushort sbDevType; ushort sbDevId; uint sbData; ushort sbDrvrCount; uint ddBlock; ushort ddSize; ushort ddType; UInt16* ddPad; } struct DDMap { uint ddBlock; ushort ddSize; ushort ddType; } struct Partition { ushort pmSig; ushort pmSigPad; uint pmMapBlkCnt; uint pmPyPartStart; uint pmPartBlkCnt; char* pmPartName; char* pmParType; uint pmLgDataStart; uint pmDataCnt; uint pmPartStatus; uint pmLgBootStart; uint pmBootSize; uint pmBootAddr; uint pmBootAddr2; uint pmBootEntry; uint pmBootEntry2; uint pmBootCksum; char* pmProcessor; UInt16* pmPad; }