Mercurial > projects > dstep
diff dstep/coreservices/carboncore/Files.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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dstep/coreservices/carboncore/Files.d Sat Aug 01 15:03:28 2009 +0200 @@ -0,0 +1,1279 @@ +/** + * Copyright: Copyright (c) 2009 Jacob Carlborg. + * Authors: Jacob Carlborg + * Version: Initial created: Jul 21, 2009 + * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) + */ +module dstep.coreservices.carboncore.Files; + +//import dstep.AvailabilityMacros; +import dstep.coreservices.carboncore.Finder; +import dstep.coreservices.carboncore.MacTypes; +import dstep.coreservices.carboncore.MixedMode; +import dstep.coreservices.carboncore.OSUtils; +import dstep.coreservices.carboncore.TextCommon; +import dstep.coreservices.carboncore.UTCUtils; +import dstep.corefoundation.CFBase; +import dstep.corefoundation.CFDictionary; +import dstep.corefoundation.CFRunLoop; +import dstep.corefoundation.CFURL; +import dstep.corefoundation.CFUUID; +import dstep.diskarbitration.DADisk; +import dstep.objc.bridge.TypeEncoding; +import dstep.internal.Types; +/*import dstep.sys.acl; +import dstep.sys.fcntl; +import dstep.sys.types;*/ + + +struct __FSFileOperation; +struct __FSFileSecurity; +struct OpaqueFSIterator; +struct OpaqueFNSubscriptionRef; +struct OpaqueFSVolumeOperation; +struct _acl; + +alias _acl* acl_t; +alias int pid_t; +alias HFSUniStr255* ConstHFSUniStr255Param; +alias short FSVolumeRefNum; +alias int FSIORefNum; +alias FSRef* FSRefPtr; +alias __FSFileSecurity* FSFileSecurityRef; +alias FSSpec* FSSpecPtr; +alias FSSpecPtr* FSSpecHandle; +alias FSSpecPtr FSSpecArrayPtr; +alias FSSpec* ConstFSSpecPtr; +alias void* ParmBlkPtr; +alias IOCompletionProcPtr IOCompletionUPP; +alias uint FSCatalogInfoBitmap; +alias FSCatalogInfo* FSCatalogInfoPtr; +alias FSRefParam* FSRefParamPtr; +alias FSRefForkIOParam* FSRefForkIOParamPtr; +alias OpaqueFSIterator* FSIterator; +alias uint FSIteratorFlags; +alias FSSearchParams* FSSearchParamsPtr; +alias FSCatalogBulkParam* FSCatalogBulkParamPtr; +alias ushort FSAllocationFlags; +alias FSForkIOParam* FSForkIOParamPtr; +alias FSForkInfo* FSForkInfoPtr; +alias FSForkCBInfoParam* FSForkCBInfoParamPtr; +alias FSRangeLockParam* FSRangeLockParamPtr; +alias uint FSVolumeInfoBitmap; +alias FSVolumeInfo* FSVolumeInfoPtr; +alias FSVolumeInfoParam* FSVolumeInfoParamPtr; +alias uint VolumeType; +alias VolMountInfoHeader* VolMountInfoPtr; +alias VolumeMountInfoHeader* VolumeMountInfoHeaderPtr; +alias AFPVolMountInfo* AFPVolMountInfoPtr; +alias AFPXVolMountInfo* AFPXVolMountInfoPtr; +alias uint FNMessage; +alias OpaqueFNSubscriptionRef* FNSubscriptionRef; +alias FNSubscriptionProcPtr FNSubscriptionUPP; +alias uint FSMountStatus; +alias uint FSEjectStatus; +alias uint FSUnmountStatus; +alias OpaqueFSVolumeOperation* FSVolumeOperation; +alias FSVolumeMountProcPtr FSVolumeMountUPP; +alias FSVolumeUnmountProcPtr FSVolumeUnmountUPP; +alias FSVolumeEjectProcPtr FSVolumeEjectUPP; +alias __FSFileOperation* FSFileOperationRef; +alias uint FSFileOperationStage; + +extern (C) +{ + alias void function (ParmBlkPtr) IOCompletionProcPtr; + alias void function (FSFileOperationRef, FSRef*, uint, int, CFDictionaryRef, void*) FSFileOperationStatusProcPtr; + alias void function (uint, uint, void*, FNSubscriptionRef) FNSubscriptionProcPtr; + alias void function (FSFileOperationRef, char*, uint, int, CFDictionaryRef, void*) FSPathFileOperationStatusProcPtr; + alias void function (FSVolumeOperation, void*, int, short, int) FSVolumeUnmountProcPtr; + alias void function (FSVolumeOperation, void*, int, short, int) FSVolumeEjectProcPtr; + alias void function (FSVolumeOperation, void*, int, short) FSVolumeMountProcPtr; +} + +extern (C) +{ + extern + { + const CFStringRef kFSOperationTotalBytesKey; + const CFStringRef kFSOperationBytesCompleteKey; + const CFStringRef kFSOperationBytesRemainingKey; + const CFStringRef kFSOperationTotalObjectsKey; + const CFStringRef kFSOperationObjectsCompleteKey; + const CFStringRef kFSOperationObjectsRemainingKey; + const CFStringRef kFSOperationTotalUserVisibleObjectsKey; + const CFStringRef kFSOperationUserVisibleObjectsCompleteKey; + const CFStringRef kFSOperationUserVisibleObjectsRemainingKey; + const CFStringRef kFSOperationThroughputKey; + } +} + +// This is needed otherwise the enums will fail compiling with gdc +version (GNU) +{ + private + { + const __AppleShareMediaType = getOSType!("afpm"); + + } +} + +enum +{ + fsCurPerm = 0x00, + fsRdPerm = 0x01, + fsWrPerm = 0x02, + fsRdWrPerm = 0x03, + fsRdWrShPerm = 0x04 +} + +enum +{ + fsRdAccessPerm = 0x01, + fsWrAccessPerm = 0x02, + fsRdDenyPerm = 0x10, + fsWrDenyPerm = 0x20 +} + +enum +{ + fsRtParID = 1, + fsRtDirID = 2 +} + +enum +{ + fsAtMark = 0, + fsFromStart = 1, + fsFromLEOF = 2, + fsFromMark = 3 +} + +enum +{ + kFSAllowConcurrentAsyncIOBit = 3, + kFSAllowConcurrentAsyncIOMask = 0x0008, + kFSPleaseCacheBit = 4, + kFSPleaseCacheMask = 0x0010, + kFSNoCacheBit = 5, + kFSNoCacheMask = 0x0020, + kFSRdVerifyBit = 6, + kFSRdVerifyMask = 0x0040, + kFSForceReadBit = 6, + kFSForceReadMask = 0x0040, + kFSNewLineBit = 7, + kFSNewLineMask = 0x0080, + kFSNewLineCharMask = 0xFF00 +} + +enum +{ + fsSBPartialName = 0x01, + fsSBFullName = 0x02, + fsSBFlAttrib = 0x04, + fsSBFlFndrInfo = 0x08, + fsSBFlLgLen = 0x20, + fsSBFlPyLen = 0x40, + fsSBFlRLgLen = 0x80, + fsSBFlRPyLen = 0x0100, + fsSBFlCrDat = 0x0200, + fsSBFlMdDat = 0x0400, + fsSBFlBkDat = 0x0800, + fsSBFlXFndrInfo = 0x1000, + fsSBFlParID = 0x2000, + fsSBNegate = 0x4000, + fsSBDrUsrWds = 0x08, + fsSBDrNmFls = 0x10, + fsSBDrCrDat = 0x0200, + fsSBDrMdDat = 0x0400, + fsSBDrBkDat = 0x0800, + fsSBDrFndrInfo = 0x1000, + fsSBDrParID = 0x2000, + fsSBNodeID = 0x8000, + fsSBAttributeModDate = 0x00010000, + fsSBAccessDate = 0x00020000, + fsSBPermissions = 0x00040000, + fsSBSkipPackageContents = 0x00080000, + fsSBSkipHiddenItems = 0x00100000, + fsSBUserID = 0x00200000, + fsSBGroupID = 0x00400000 +} + +enum +{ + fsSBPartialNameBit = 0, + fsSBFullNameBit = 1, + fsSBFlAttribBit = 2, + fsSBFlFndrInfoBit = 3, + fsSBFlLgLenBit = 5, + fsSBFlPyLenBit = 6, + fsSBFlRLgLenBit = 7, + fsSBFlRPyLenBit = 8, + fsSBFlCrDatBit = 9, + fsSBFlMdDatBit = 10, + fsSBFlBkDatBit = 11, + fsSBFlXFndrInfoBit = 12, + fsSBFlParIDBit = 13, + fsSBNegateBit = 14, + fsSBDrUsrWdsBit = 3, + fsSBDrNmFlsBit = 4, + fsSBDrCrDatBit = 9, + fsSBDrMdDatBit = 10, + fsSBDrBkDatBit = 11, + fsSBDrFndrInfoBit = 12, + fsSBDrParIDBit = 13, + fsSBNodeIDBit = 15, + fsSBAttributeModDateBit = 16, + fsSBAccessDateBit = 17, + fsSBPermissionsBit = 18, + fsSBSkipPackageContentsBit = 19, + fsSBSkipHiddenItemsBit = 20, + fsSBUserIDBit = 21, + fsSBGroupIDBit = 22 +} + +enum +{ + bLimitFCBs = 31, + bLocalWList = 30, + bNoMiniFndr = 29, + bNoVNEdit = 28, + bNoLclSync = 27, + bTrshOffLine = 26, + bNoSwitchTo = 25, + bNoDeskItems = 20, + bNoBootBlks = 19, + bAccessCntl = 18, + bNoSysDir = 17, + bHasExtFSVol = 16, + bHasOpenDeny = 15, + bHasCopyFile = 14, + bHasMoveRename = 13, + bHasDesktopMgr = 12, + bHasShortName = 11, + bHasFolderLock = 10, + bHasPersonalAccessPrivileges = 9, + bHasUserGroupList = 8, + bHasCatSearch = 7, + bHasFileIDs = 6, + bHasBTreeMgr = 5, + bHasBlankAccessPrivileges = 4, + bSupportsAsyncRequests = 3, + bSupportsTrashVolumeCache = 2 +} + +enum +{ + bHasDirectIO = 1 +} + +enum +{ + bIsEjectable = 0, + bSupportsHFSPlusAPIs = 1, + bSupportsFSCatalogSearch = 2, + bSupportsFSExchangeObjects = 3, + bSupports2TBFiles = 4, + bSupportsLongNames = 5, + bSupportsMultiScriptNames = 6, + bSupportsNamedForks = 7, + bSupportsSubtreeIterators = 8, + bL2PCanMapFileBlocks = 9, + bParentModDateChanges = 10, + bAncestorModDateChanges = 11, + bSupportsSymbolicLinks = 13, + bIsAutoMounted = 14, + bAllowCDiDataHandler = 17, + bSupportsExclusiveLocks = 18, + bSupportsJournaling = 19, + bNoVolumeSizes = 20, + bIsOnInternalBus = 21, + bIsCaseSensitive = 22, + bIsCasePreserving = 23, + bDoNotDisplay = 24, + bIsRemovable = 25, + bNoRootTimes = 26, + bIsOnExternalBus = 27, + bSupportsExtendedFileSecurity = 28 +} + +enum +{ + kWidePosOffsetBit = 8, + kUseWidePositioning = (1 << kWidePosOffsetBit), + kMaximumBlocksIn4GB = 0x007FFFFF +} + +enum +{ + fsUnixPriv = 1 +} + +enum +{ + kNoUserAuthentication = 1, + kPassword = 2, + kEncryptPassword = 3, + kTwoWayEncryptPassword = 6 +} + +enum +{ + knoUser = 0, + kadministratorUser = 1 +} + +enum +{ + knoGroup = 0 +} + +enum +{ + kFSInvalidVolumeRefNum = 0 +} + +enum +{ + kFSCatInfoNone = 0x00000000, + kFSCatInfoTextEncoding = 0x00000001, + kFSCatInfoNodeFlags = 0x00000002, + kFSCatInfoVolume = 0x00000004, + kFSCatInfoParentDirID = 0x00000008, + kFSCatInfoNodeID = 0x00000010, + kFSCatInfoCreateDate = 0x00000020, + kFSCatInfoContentMod = 0x00000040, + kFSCatInfoAttrMod = 0x00000080, + kFSCatInfoAccessDate = 0x00000100, + kFSCatInfoBackupDate = 0x00000200, + kFSCatInfoPermissions = 0x00000400, + kFSCatInfoFinderInfo = 0x00000800, + kFSCatInfoFinderXInfo = 0x00001000, + kFSCatInfoValence = 0x00002000, + kFSCatInfoDataSizes = 0x00004000, + kFSCatInfoRsrcSizes = 0x00008000, + kFSCatInfoSharingFlags = 0x00010000, + kFSCatInfoUserPrivs = 0x00020000, + kFSCatInfoUserAccess = 0x00080000, + kFSCatInfoSetOwnership = 0x00100000, + kFSCatInfoFSFileSecurityRef = 0x00400000, + kFSCatInfoAllDates = 0x000003E0, + kFSCatInfoGettableInfo = 0x0003FFFF, + kFSCatInfoSettableInfo = 0x00001FE3, + kFSCatInfoReserved = cast(c_long)0xFFFC0000 +} + +enum +{ + kFSNodeLockedBit = 0, + kFSNodeLockedMask = 0x0001, + kFSNodeResOpenBit = 2, + kFSNodeResOpenMask = 0x0004, + kFSNodeDataOpenBit = 3, + kFSNodeDataOpenMask = 0x0008, + kFSNodeIsDirectoryBit = 4, + kFSNodeIsDirectoryMask = 0x0010, + kFSNodeCopyProtectBit = 6, + kFSNodeCopyProtectMask = 0x0040, + kFSNodeForkOpenBit = 7, + kFSNodeForkOpenMask = 0x0080, + kFSNodeHardLinkBit = 8, + kFSNodeHardLinkMask = 0x00000100 +} + +enum +{ + kFSNodeInSharedBit = 2, + kFSNodeInSharedMask = 0x0004, + kFSNodeIsMountedBit = 3, + kFSNodeIsMountedMask = 0x0008, + kFSNodeIsSharePointBit = 5, + kFSNodeIsSharePointMask = 0x0020 +} + +enum +{ + kFSIterateFlat = 0, + kFSIterateSubtree = 1, + kFSIterateDelete = 2, + kFSIterateReserved = cast(c_long)0xFFFFFFFC +} + +enum +{ + kFSAllocDefaultFlags = 0x0000, + kFSAllocAllOrNothingMask = 0x0001, + kFSAllocContiguousMask = 0x0002, + kFSAllocNoRoundUpMask = 0x0004, + kFSAllocReservedMask = 0xFFF8 +} + +enum +{ + kFSVolInfoNone = 0x0000, + kFSVolInfoCreateDate = 0x0001, + kFSVolInfoModDate = 0x0002, + kFSVolInfoBackupDate = 0x0004, + kFSVolInfoCheckedDate = 0x0008, + kFSVolInfoFileCount = 0x0010, + kFSVolInfoDirCount = 0x0020, + kFSVolInfoSizes = 0x0040, + kFSVolInfoBlocks = 0x0080, + kFSVolInfoNextAlloc = 0x0100, + kFSVolInfoRsrcClump = 0x0200, + kFSVolInfoDataClump = 0x0400, + kFSVolInfoNextID = 0x0800, + kFSVolInfoFinderInfo = 0x1000, + kFSVolInfoFlags = 0x2000, + kFSVolInfoFSInfo = 0x4000, + kFSVolInfoDriveInfo = 0x8000, + kFSVolInfoGettableInfo = 0xFFFF, + kFSVolInfoSettableInfo = 0x3004 +} + +enum +{ + kFSVolFlagDefaultVolumeBit = 5, + kFSVolFlagDefaultVolumeMask = 0x0020, + kFSVolFlagFilesOpenBit = 6, + kFSVolFlagFilesOpenMask = 0x0040, + kFSVolFlagHardwareLockedBit = 7, + kFSVolFlagHardwareLockedMask = 0x0080, + kFSVolFlagJournalingActiveBit = 14, + kFSVolFlagJournalingActiveMask = 0x4000, + kFSVolFlagSoftwareLockedBit = 15, + kFSVolFlagSoftwareLockedMask = 0x8000 +} + +enum +{ + AppleShareMediaType = getOSType!("afpm") +} + +enum +{ + volMountNoLoginMsgFlagBit = 0, + volMountNoLoginMsgFlagMask = 0x0001, + volMountExtendedFlagsBit = 7, + volMountExtendedFlagsMask = 0x0080, + volMountInteractBit = 15, + volMountInteractMask = 0x8000, + volMountChangedBit = 14, + volMountChangedMask = 0x4000, + volMountFSReservedMask = 0x00FF, + volMountSysReservedMask = 0xFF00 +} + +enum +{ + kAFPExtendedFlagsAlternateAddressMask = 1 +} + +enum +{ + kAFPTagTypeIP = 0x01, + kAFPTagTypeIPPort = 0x02, + kAFPTagTypeDDP = 0x03, + kAFPTagTypeDNS = 0x04 +} + +enum +{ + kAFPTagLengthIP = 0x06, + kAFPTagLengthIPPort = 0x08, + kAFPTagLengthDDP = 0x06 +} + +enum +{ + kLargeIconSize = 256, + kLarge4BitIconSize = 512, + kLarge8BitIconSize = 1024, + kSmallIconSize = 64, + kSmall4BitIconSize = 128, + kSmall8BitIconSize = 256 +} + +enum +{ + kFSReplaceObjectDefaultOptions = 0, + kFSReplaceObjectReplaceMetadata = 0x01, + kFSReplaceObjectSaveOriginalAsABackup = 0x02, + kFSReplaceObjectReplacePermissionInfo = 0x04, + kFSReplaceObjectPreservePermissionInfo = 0x08, + kFSReplaceObjectDoNotCheckObjectWriteAccess = 0x10 +} + +enum +{ + kFSPathMakeRefDefaultOptions = 0, + kFSPathMakeRefDoNotFollowLeafSymlink = 0x01 +} + +enum +{ + kFNDirectoryModifiedMessage = 1 +} + +enum +{ + kFNNoImplicitAllSubscription = (1 << 0), + kFNNotifyInBackground = (1 << 1) +} + +enum +{ + kAsyncMountInProgress = 1, + kAsyncMountComplete = 2, + kAsyncUnmountInProgress = 3, + kAsyncUnmountComplete = 4, + kAsyncEjectInProgress = 5, + kAsyncEjectComplete = 6 +} + +enum +{ + kFSMountServerMarkDoNotDisplay = (1 << 0), + kFSMountServerMountOnMountDir = (1 << 2) +} + +enum +{ + kFSMountServerMountWithoutNotification = (1 << 1) +} + +enum +{ + kFSEjectVolumeForceEject = (1 << 0) +} + +enum +{ + kFSUnmountVolumeForceUnmount = (1 << 0) +} + +enum +{ + kFSFileOperationDefaultOptions = 0, + kFSFileOperationOverwrite = 0x01, + kFSFileOperationSkipSourcePermissionErrors = 0x02, + kFSFileOperationDoNotMoveAcrossVolumes = 0x04, + kFSFileOperationSkipPreflight = 0x08 +} + +enum +{ + kFSOperationStageUndefined = 0, + kFSOperationStagePreflighting = 1, + kFSOperationStageRunning = 2, + kFSOperationStageComplete = 3 +} + +enum +{ + pleaseCacheBit = 4, + pleaseCacheMask = 0x0010, + noCacheBit = 5, + noCacheMask = 0x0020, + rdVerifyBit = 6, + rdVerifyMask = 0x0040, + rdVerify = 64, + forceReadBit = 6, + forceReadMask = 0x0040, + newLineBit = 7, + newLineMask = 0x0080, + newLineCharMask = 0xFF00 +} + +enum +{ + kOwnerID2Name = 1, + kGroupID2Name = 2, + kOwnerName2ID = 3, + kGroupName2ID = 4, + kReturnNextUser = 1, + kReturnNextGroup = 2, + kReturnNextUG = 3 +} + +enum +{ + kVCBFlagsIdleFlushBit = 3, + kVCBFlagsIdleFlushMask = 0x0008, + kVCBFlagsHFSPlusAPIsBit = 4, + kVCBFlagsHFSPlusAPIsMask = 0x0010, + kVCBFlagsHardwareGoneBit = 5, + kVCBFlagsHardwareGoneMask = 0x0020, + kVCBFlagsVolumeDirtyBit = 15, + kVCBFlagsVolumeDirtyMask = 0x8000 +} + +enum +{ + kioVAtrbDefaultVolumeBit = 5, + kioVAtrbDefaultVolumeMask = 0x0020, + kioVAtrbFilesOpenBit = 6, + kioVAtrbFilesOpenMask = 0x0040, + kioVAtrbHardwareLockedBit = 7, + kioVAtrbHardwareLockedMask = 0x0080, + kioVAtrbSoftwareLockedBit = 15, + kioVAtrbSoftwareLockedMask = 0x8000 +} + +enum +{ + kioFlAttribLockedBit = 0, + kioFlAttribLockedMask = 0x01, + kioFlAttribResOpenBit = 2, + kioFlAttribResOpenMask = 0x04, + kioFlAttribDataOpenBit = 3, + kioFlAttribDataOpenMask = 0x08, + kioFlAttribDirBit = 4, + kioFlAttribDirMask = 0x10, + ioDirFlg = 4, + ioDirMask = 0x10, + kioFlAttribCopyProtBit = 6, + kioFlAttribCopyProtMask = 0x40, + kioFlAttribFileOpenBit = 7, + kioFlAttribFileOpenMask = 0x80, + kioFlAttribInSharedBit = 2, + kioFlAttribInSharedMask = 0x04, + kioFlAttribMountedBit = 3, + kioFlAttribMountedMask = 0x08, + kioFlAttribSharePointBit = 5, + kioFlAttribSharePointMask = 0x20 +} + +enum +{ + kioFCBWriteBit = 8, + kioFCBWriteMask = 0x0100, + kioFCBResourceBit = 9, + kioFCBResourceMask = 0x0200, + kioFCBWriteLockedBit = 10, + kioFCBWriteLockedMask = 0x0400, + kioFCBLargeFileBit = 11, + kioFCBLargeFileMask = 0x0800, + kioFCBSharedWriteBit = 12, + kioFCBSharedWriteMask = 0x1000, + kioFCBFileLockedBit = 13, + kioFCBFileLockedMask = 0x2000, + kioFCBOwnClumpBit = 14, + kioFCBOwnClumpMask = 0x4000, + kioFCBModifiedBit = 15, + kioFCBModifiedMask = 0x8000 +} + +enum +{ + kioACUserNoSeeFolderBit = 0, + kioACUserNoSeeFolderMask = 0x01, + kioACUserNoSeeFilesBit = 1, + kioACUserNoSeeFilesMask = 0x02, + kioACUserNoMakeChangesBit = 2, + kioACUserNoMakeChangesMask = 0x04, + kioACUserNotOwnerBit = 7, + kioACUserNotOwnerMask = 0x80 +} + +enum +{ + kioACAccessOwnerBit = 31, + kioACAccessOwnerMask = cast(c_long)0x80000000, + kioACAccessBlankAccessBit = 28, + kioACAccessBlankAccessMask = 0x10000000, + kioACAccessUserWriteBit = 26, + kioACAccessUserWriteMask = 0x04000000, + kioACAccessUserReadBit = 25, + kioACAccessUserReadMask = 0x02000000, + kioACAccessUserSearchBit = 24, + kioACAccessUserSearchMask = 0x01000000, + kioACAccessEveryoneWriteBit = 18, + kioACAccessEveryoneWriteMask = 0x00040000, + kioACAccessEveryoneReadBit = 17, + kioACAccessEveryoneReadMask = 0x00020000, + kioACAccessEveryoneSearchBit = 16, + kioACAccessEveryoneSearchMask = 0x00010000, + kioACAccessGroupWriteBit = 10, + kioACAccessGroupWriteMask = 0x00000400, + kioACAccessGroupReadBit = 9, + kioACAccessGroupReadMask = 0x00000200, + kioACAccessGroupSearchBit = 8, + kioACAccessGroupSearchMask = 0x00000100, + kioACAccessOwnerWriteBit = 2, + kioACAccessOwnerWriteMask = 0x00000004, + kioACAccessOwnerReadBit = 1, + kioACAccessOwnerReadMask = 0x00000002, + kioACAccessOwnerSearchBit = 0, + kioACAccessOwnerSearchMask = 0x00000001, + kfullPrivileges = 0x00070007, + kownerPrivileges = 0x00000007 +} + +struct HFSUniStr255 +{ + ushort length; + wchar* unicode; +} + + +struct FSRef +{ + ubyte[80] hidden; +} + + +struct CatPositionRec +{ + int initialize; + short[6] priv; +} + + +struct FSSpec +{ + ubyte[70] hidden; +} + + +struct FSPermissionInfo +{ + uint userID; + uint groupID; + ubyte reserved1; + ubyte userAccess; + ushort mode; + FSFileSecurityRef fileSec; +} + + +struct FSCatalogInfo +{ + ushort nodeFlags; + short volume; + uint parentDirID; + uint nodeID; + ubyte sharingFlags; + ubyte userPrivileges; + ubyte reserved1; + ubyte reserved2; + UTCDateTime createDate; + UTCDateTime contentModDate; + UTCDateTime attributeModDate; + UTCDateTime accessDate; + UTCDateTime backupDate; + FSPermissionInfo permissions; + char* finderInfo; + char* extFinderInfo; + ulong dataLogicalSize; + ulong dataPhysicalSize; + ulong rsrcLogicalSize; + ulong rsrcPhysicalSize; + uint valence; + uint textEncodingHint; +} + + +struct FSRefParam +{ + QElemPtr qLink; + short qType; + short ioTrap; + char* ioCmdAddr; + IOCompletionUPP ioCompletion; + short ioResult; + char* ioNamePtr; + short ioVRefNum; + short reserved1; + ubyte reserved2; + ubyte reserved3; + FSRef* ref_; + uint whichInfo; + FSCatalogInfo* catInfo; + uint nameLength; + wchar* name; + uint ioDirID; + FSSpecPtr spec; + FSRef* parentRef; + FSRef* newRef; + uint textEncodingHint; + HFSUniStr255* outName; +} + + +struct FSRefForkIOParam +{ + QElemPtr qLink; + short qType; + short ioTrap; + char* ioCmdAddr; + IOCompletionUPP ioCompletion; + short ioResult; + FSRef* parentRef; + uint nameLength; + wchar* name; + uint whichInfo; + FSCatalogInfo* catInfo; + uint forkNameLength; + wchar* forkName; + byte permissions; + ubyte reserved1; + short forkRefNum; + FSRef* newRef; +} + + +struct FSSearchParams +{ + int searchTime; + uint searchBits; + uint searchNameLength; + wchar* searchName; + FSCatalogInfo* searchInfo1; + FSCatalogInfo* searchInfo2; +} + + +struct FSCatalogBulkParam +{ + QElemPtr qLink; + short qType; + short ioTrap; + char* ioCmdAddr; + IOCompletionUPP ioCompletion; + short ioResult; + ubyte containerChanged; + ubyte reserved; + uint iteratorFlags; + FSIterator iterator; + FSRef* container; + uint maximumItems; + uint actualItems; + uint whichInfo; + FSCatalogInfo* catalogInfo; + FSRef* refs; + FSSpecPtr specs; + HFSUniStr255* names; + FSSearchParams* searchParams; +} + + +struct FSForkIOParam +{ + QElemPtr qLink; + short qType; + short ioTrap; + char* ioCmdAddr; + IOCompletionUPP ioCompletion; + short ioResult; + void* reserved1; + short reserved2; + short forkRefNum; + ubyte reserved3; + byte permissions; + FSRef* ref_; + char* buffer; + uint requestCount; + uint actualCount; + ushort positionMode; + long positionOffset; + ushort allocationFlags; + ulong allocationAmount; + uint forkNameLength; + wchar* forkName; + CatPositionRec forkIterator; + HFSUniStr255* outForkName; +} + + +struct FSForkInfo +{ + byte flags; + byte permissions; + short volume; + uint reserved2; + uint nodeID; + uint forkID; + ulong currentPosition; + ulong logicalEOF; + ulong physicalEOF; + ulong process; +} + + +struct FSForkCBInfoParam +{ + QElemPtr qLink; + short qType; + short ioTrap; + char* ioCmdAddr; + IOCompletionUPP ioCompletion; + short ioResult; + short desiredRefNum; + short volumeRefNum; + short iterator; + short actualRefNum; + FSRef* ref_; + FSForkInfo* forkInfo; + HFSUniStr255* forkName; +} + + +struct FSRangeLockParam +{ + QElemPtr qLink; + short qType; + short ioTrap; + char* ioCmdAddr; + IOCompletionUPP ioCompletion; + short ioResult; + short forkRefNum; + ulong requestCount; + ushort positionMode; + long positionOffset; + ulong rangeStart; +} + + +struct FSVolumeInfo +{ + UTCDateTime createDate; + UTCDateTime modifyDate; + UTCDateTime backupDate; + UTCDateTime checkedDate; + uint fileCount; + uint folderCount; + ulong totalBytes; + ulong freeBytes; + uint blockSize; + uint totalBlocks; + uint freeBlocks; + uint nextAllocation; + uint rsrcClumpSize; + uint dataClumpSize; + uint nextCatalogID; + char* finderInfo; + ushort flags; + ushort filesystemID; + ushort signature; + ushort driveNumber; + short driverRefNum; +} + + +struct FSVolumeInfoParam +{ + QElemPtr qLink; + short qType; + short ioTrap; + char* ioCmdAddr; + IOCompletionUPP ioCompletion; + short ioResult; + char* ioNamePtr; + short ioVRefNum; + uint volumeIndex; + uint whichInfo; + FSVolumeInfo* volumeInfo; + HFSUniStr255* volumeName; + FSRef* ref_; +} + + +struct GetVolParmsInfoBuffer +{ + short vMVersion; + int vMAttrib; + Handle vMLocalHand; + int vMServerAdr; + int vMVolumeGrade; + short vMForeignPrivID; + int vMExtendedAttributes; + void* vMDeviceID; + uint vMMaxNameLength; +} + + +struct VolMountInfoHeader +{ + short length; + uint media; +} + + +struct VolumeMountInfoHeader +{ + short length; + uint media; + short flags; +} + + +struct AFPVolMountInfo +{ + short length; + uint media; + short flags; + byte nbpInterval; + byte nbpCount; + short uamType; + short zoneNameOffset; + short serverNameOffset; + short volNameOffset; + short userNameOffset; + short userPasswordOffset; + short volPasswordOffset; + char* AFPData; +} + + +struct AFPXVolMountInfo +{ + short length; + uint media; + short flags; + byte nbpInterval; + byte nbpCount; + short uamType; + short zoneNameOffset; + short serverNameOffset; + short volNameOffset; + short userNameOffset; + short userPasswordOffset; + short volPasswordOffset; + short extendedFlags; + short uamNameOffset; + short alternateAddressOffset; + char* AFPData; +} + + +struct AFPTagData +{ + ubyte fLength; + ubyte fType; + char* fData; +} + + +struct AFPAlternateAddress +{ + ubyte fVersion; + ubyte fAddressCount; + char* fAddressList; +} + + +struct FSFileOperationClientContext +{ + int version_; + void* info; + CFAllocatorRetainCallBack retain; + CFAllocatorReleaseCallBack release; + CFAllocatorCopyDescriptionCallBack copyDescription; +} + +extern (C) +{ + IOCompletionUPP NewIOCompletionUPP (IOCompletionProcPtr userRoutine); + void DisposeIOCompletionUPP (IOCompletionUPP userUPP); + void InvokeIOCompletionUPP (ParmBlkPtr paramBlock, IOCompletionUPP userUPP); + short FSMakeFSRefUnicode (FSRef* parentRef, uint nameLength, wchar* name, uint textEncodingHint, FSRef* newRef); + short PBMakeFSRefUnicodeSync (FSRefParam* paramBlock); + void PBMakeFSRefUnicodeAsync (FSRefParam* paramBlock); + short FSCompareFSRefs (FSRef* ref1, FSRef* ref2); + short PBCompareFSRefsSync (FSRefParam* paramBlock); + void PBCompareFSRefsAsync (FSRefParam* paramBlock); + short FSCreateFileUnicode (FSRef* parentRef, uint nameLength, wchar* name, uint whichInfo, FSCatalogInfo* catalogInfo, FSRef* newRef, FSSpecPtr newSpec); + short PBCreateFileUnicodeSync (FSRefParam* paramBlock); + void PBCreateFileUnicodeAsync (FSRefParam* paramBlock); + short FSCreateDirectoryUnicode (FSRef* parentRef, uint nameLength, wchar* name, uint whichInfo, FSCatalogInfo* catalogInfo, FSRef* newRef, FSSpecPtr newSpec, UInt32* newDirID); + short PBCreateDirectoryUnicodeSync (FSRefParam* paramBlock); + void PBCreateDirectoryUnicodeAsync (FSRefParam* paramBlock); + short FSDeleteObject (FSRef* ref_); + short PBDeleteObjectSync (FSRefParam* paramBlock); + void PBDeleteObjectAsync (FSRefParam* paramBlock); + short FSUnlinkObject (FSRef* ref_); + short PBUnlinkObjectSync (FSRefParam* paramBlock); + void PBUnlinkObjectAsync (FSRefParam* paramBlock); + short FSMoveObject (FSRef* ref_, FSRef* destDirectory, FSRef* newRef); + short PBMoveObjectSync (FSRefParam* paramBlock); + void PBMoveObjectAsync (FSRefParam* paramBlock); + short FSExchangeObjects (FSRef* ref_, FSRef* destRef); + short PBExchangeObjectsSync (FSRefParam* paramBlock); + void PBExchangeObjectsAsync (FSRefParam* paramBlock); + int FSReplaceObject (FSRef* originalObject, FSRef* replacementObject, CFStringRef newName, CFStringRef temporaryName, FSRef* temporaryDirectory, uint flags, FSRef* resultObject); + int FSPathReplaceObject (char* originalObjectPath, char* replacementObjectPath, CFStringRef newName, CFStringRef temporaryName, char* temporaryDirectoryPath, uint flags); + int FSGetTemporaryDirectoryForReplaceObject (FSRef* originalObject, FSRef* temporaryDirectory, uint flags); + int FSPathGetTemporaryDirectoryForReplaceObject (char* originalObjectPath, char* temporaryDirectoryPath, uint maxPathSize, uint flags); + short FSRenameUnicode (FSRef* ref_, uint nameLength, wchar* name, uint textEncodingHint, FSRef* newRef); + short PBRenameUnicodeSync (FSRefParam* paramBlock); + void PBRenameUnicodeAsync (FSRefParam* paramBlock); + short FSGetCatalogInfo (FSRef* ref_, uint whichInfo, FSCatalogInfo* catalogInfo, HFSUniStr255* outName, FSSpecPtr fsSpec, FSRef* parentRef); + short PBGetCatalogInfoSync (FSRefParam* paramBlock); + void PBGetCatalogInfoAsync (FSRefParam* paramBlock); + short FSSetCatalogInfo (FSRef* ref_, uint whichInfo, FSCatalogInfo* catalogInfo); + short PBSetCatalogInfoSync (FSRefParam* paramBlock); + void PBSetCatalogInfoAsync (FSRefParam* paramBlock); + short FSOpenIterator (FSRef* container, uint iteratorFlags, FSIterator* iterator); + short PBOpenIteratorSync (FSCatalogBulkParam* paramBlock); + void PBOpenIteratorAsync (FSCatalogBulkParam* paramBlock); + short FSCloseIterator (FSIterator iterator); + short PBCloseIteratorSync (FSCatalogBulkParam* paramBlock); + void PBCloseIteratorAsync (FSCatalogBulkParam* paramBlock); + short FSGetCatalogInfoBulk (FSIterator iterator, uint maximumObjects, ItemCount* actualObjects, char* containerChanged, uint whichInfo, FSCatalogInfo* catalogInfos, FSRef* refs, FSSpecPtr specs, HFSUniStr255* names); + short PBGetCatalogInfoBulkSync (FSCatalogBulkParam* paramBlock); + void PBGetCatalogInfoBulkAsync (FSCatalogBulkParam* paramBlock); + short FSCatalogSearch (FSIterator iterator, FSSearchParams* searchCriteria, uint maximumObjects, ItemCount* actualObjects, char* containerChanged, uint whichInfo, FSCatalogInfo* catalogInfos, FSRef* refs, FSSpecPtr specs, HFSUniStr255* names); + short PBCatalogSearchSync (FSCatalogBulkParam* paramBlock); + void PBCatalogSearchAsync (FSCatalogBulkParam* paramBlock); + int FSCreateFileAndOpenForkUnicode (FSRef* parentRef, uint nameLength, wchar* name, uint whichInfo, FSCatalogInfo* catalogInfo, uint forkNameLength, wchar* forkName, byte permissions, FSIORefNum* forkRefNum, FSRef* newRef); + int PBCreateFileAndOpenForkUnicodeSync (FSRefForkIOParamPtr paramBlock); + void PBCreateFileAndOpenForkUnicodeAsync (FSRefForkIOParamPtr paramBlock); + short FSCreateFork (FSRef* ref_, uint forkNameLength, wchar* forkName); + short PBCreateForkSync (FSForkIOParam* paramBlock); + void PBCreateForkAsync (FSForkIOParam* paramBlock); + short FSDeleteFork (FSRef* ref_, uint forkNameLength, wchar* forkName); + short PBDeleteForkSync (FSForkIOParam* paramBlock); + void PBDeleteForkAsync (FSForkIOParam* paramBlock); + short FSIterateForks (FSRef* ref_, CatPositionRec* forkIterator, HFSUniStr255* forkName, SInt64* forkSize, UInt64* forkPhysicalSize); + short PBIterateForksSync (FSForkIOParam* paramBlock); + void PBIterateForksAsync (FSForkIOParam* paramBlock); + short FSOpenFork (FSRef* ref_, uint forkNameLength, wchar* forkName, byte permissions, FSIORefNum* forkRefNum); + short PBOpenForkSync (FSForkIOParam* paramBlock); + void PBOpenForkAsync (FSForkIOParam* paramBlock); + short FSReadFork (short forkRefNum, ushort positionMode, long positionOffset, uint requestCount, void* buffer, ByteCount* actualCount); + short PBReadForkSync (FSForkIOParam* paramBlock); + void PBReadForkAsync (FSForkIOParam* paramBlock); + short FSWriteFork (short forkRefNum, ushort positionMode, long positionOffset, uint requestCount, void* buffer, ByteCount* actualCount); + short PBWriteForkSync (FSForkIOParam* paramBlock); + void PBWriteForkAsync (FSForkIOParam* paramBlock); + short FSGetForkPosition (short forkRefNum, SInt64* position); + short PBGetForkPositionSync (FSForkIOParam* paramBlock); + void PBGetForkPositionAsync (FSForkIOParam* paramBlock); + short FSSetForkPosition (short forkRefNum, ushort positionMode, long positionOffset); + short PBSetForkPositionSync (FSForkIOParam* paramBlock); + void PBSetForkPositionAsync (FSForkIOParam* paramBlock); + short FSGetForkSize (short forkRefNum, SInt64* forkSize); + short PBGetForkSizeSync (FSForkIOParam* paramBlock); + void PBGetForkSizeAsync (FSForkIOParam* paramBlock); + short FSSetForkSize (short forkRefNum, ushort positionMode, long positionOffset); + short PBSetForkSizeSync (FSForkIOParam* paramBlock); + void PBSetForkSizeAsync (FSForkIOParam* paramBlock); + short FSAllocateFork (short forkRefNum, ushort flags, ushort positionMode, long positionOffset, ulong requestCount, UInt64* actualCount); + short PBAllocateForkSync (FSForkIOParam* paramBlock); + void PBAllocateForkAsync (FSForkIOParam* paramBlock); + short FSFlushFork (short forkRefNum); + short PBFlushForkSync (FSForkIOParam* paramBlock); + void PBFlushForkAsync (FSForkIOParam* paramBlock); + short FSCloseFork (short forkRefNum); + short PBCloseForkSync (FSForkIOParam* paramBlock); + void PBCloseForkAsync (FSForkIOParam* paramBlock); + short FSGetForkCBInfo (short desiredRefNum, short volume, short* iterator, FSIORefNum* actualRefNum, FSForkInfo* forkInfo, FSRef* ref_, HFSUniStr255* outForkName); + short PBGetForkCBInfoSync (FSForkCBInfoParam* paramBlock); + void PBGetForkCBInfoAsync (FSForkCBInfoParam* paramBlock); + int FSLockRange (short forkRefNum, ushort positionMode, long positionOffset, ulong requestCount, UInt64* rangeStart); + int PBXLockRangeSync (FSRangeLockParamPtr paramBlock); + int PBXLockRangeAsync (FSRangeLockParamPtr paramBlock); + int FSUnlockRange (short forkRefNum, ushort positionMode, long positionOffset, ulong requestCount, UInt64* rangeStart); + int PBXUnlockRangeSync (FSRangeLockParamPtr paramBlock); + int PBXUnlockRangeAsync (FSRangeLockParamPtr paramBlock); + short FSGetVolumeInfo (short volume, uint volumeIndex, FSVolumeRefNum* actualVolume, uint whichInfo, FSVolumeInfo* info, HFSUniStr255* volumeName, FSRef* rootDirectory); + short PBGetVolumeInfoSync (FSVolumeInfoParam* paramBlock); + void PBGetVolumeInfoAsync (FSVolumeInfoParam* paramBlock); + short FSSetVolumeInfo (short volume, uint whichInfo, FSVolumeInfo* info); + short PBSetVolumeInfoSync (FSVolumeInfoParam* paramBlock); + void PBSetVolumeInfoAsync (FSVolumeInfoParam* paramBlock); + short FSGetDataForkName (HFSUniStr255* dataForkName); + short FSGetResourceForkName (HFSUniStr255* resourceForkName); + int FSRefMakePath (FSRef* ref_, char* path, uint pathBufferSize); + int FSPathMakeRef (char* path, FSRef* ref_, char* isDirectory); + int FSPathMakeRefWithOptions (char* path, uint options, FSRef* ref_, char* isDirectory); + ubyte FSIsFSRefValid (FSRef* ref_); + int FNNotify (FSRef* ref_, uint message, uint flags); + int FNNotifyByPath (char* path, uint message, uint flags); + int FNNotifyAll (uint message, uint flags); + FNSubscriptionUPP NewFNSubscriptionUPP (FNSubscriptionProcPtr userRoutine); + void DisposeFNSubscriptionUPP (FNSubscriptionUPP userUPP); + void InvokeFNSubscriptionUPP (uint message, uint flags, void* refcon, FNSubscriptionRef subscription, FNSubscriptionUPP userUPP); + int FNSubscribe (FSRef* directoryRef, FNSubscriptionUPP callback, void* refcon, uint flags, FNSubscriptionRef* subscription); + int FNSubscribeByPath (char* directoryPath, FNSubscriptionUPP callback, void* refcon, uint flags, FNSubscriptionRef* subscription); + int FNUnsubscribe (FNSubscriptionRef subscription); + int FNGetDirectoryForSubscription (FNSubscriptionRef subscription, FSRef* ref_); + FSVolumeMountUPP NewFSVolumeMountUPP (FSVolumeMountProcPtr userRoutine); + FSVolumeUnmountUPP NewFSVolumeUnmountUPP (FSVolumeUnmountProcPtr userRoutine); + FSVolumeEjectUPP NewFSVolumeEjectUPP (FSVolumeEjectProcPtr userRoutine); + void DisposeFSVolumeMountUPP (FSVolumeMountUPP userUPP); + void DisposeFSVolumeUnmountUPP (FSVolumeUnmountUPP userUPP); + void DisposeFSVolumeEjectUPP (FSVolumeEjectUPP userUPP); + void InvokeFSVolumeMountUPP (FSVolumeOperation volumeOp, void* clientData, int err, short mountedVolumeRefNum, FSVolumeMountUPP userUPP); + void InvokeFSVolumeUnmountUPP (FSVolumeOperation volumeOp, void* clientData, int err, short volumeRefNum, int dissenter, FSVolumeUnmountUPP userUPP); + void InvokeFSVolumeEjectUPP (FSVolumeOperation volumeOp, void* clientData, int err, short volumeRefNum, int dissenter, FSVolumeEjectUPP userUPP); + int FSCreateVolumeOperation (FSVolumeOperation* volumeOp); + int FSDisposeVolumeOperation (FSVolumeOperation volumeOp); + int FSMountLocalVolumeSync (CFStringRef diskID, CFURLRef mountDir, FSVolumeRefNum* mountedVolumeRefNum, uint flags); + int FSMountLocalVolumeAsync (CFStringRef diskID, CFURLRef mountDir, FSVolumeOperation volumeOp, void* clientData, uint flags, FSVolumeMountUPP callback, CFRunLoopRef runloop, CFStringRef runloopMode); + int FSMountServerVolumeSync (CFURLRef url, CFURLRef mountDir, CFStringRef user, CFStringRef password, FSVolumeRefNum* mountedVolumeRefNum, uint flags); + int FSMountServerVolumeAsync (CFURLRef url, CFURLRef mountDir, CFStringRef user, CFStringRef password, FSVolumeOperation volumeOp, void* clientData, uint flags, FSVolumeMountUPP callback, CFRunLoopRef runloop, CFStringRef runloopMode); + int FSGetAsyncMountStatus (FSVolumeOperation volumeOp, FSMountStatus* status, OSStatus* volumeOpStatus, FSVolumeRefNum* mountedVolumeRefNum, void** clientData); + int FSUnmountVolumeSync (short vRefNum, uint flags, pid_t* dissenter); + int FSUnmountVolumeAsync (short vRefNum, uint flags, FSVolumeOperation volumeOp, void* clientData, FSVolumeUnmountUPP callback, CFRunLoopRef runloop, CFStringRef runloopMode); + int FSGetAsyncUnmountStatus (FSVolumeOperation volumeOp, FSUnmountStatus* status, OSStatus* volumeOpStatus, FSVolumeRefNum* volumeRefNum, pid_t* dissenter, void** clientData); + int FSCancelVolumeOperation (FSVolumeOperation volumeOp); + int FSEjectVolumeSync (short vRefNum, uint flags, pid_t* dissenter); + int FSEjectVolumeAsync (short vRefNum, uint flags, FSVolumeOperation volumeOp, void* clientData, FSVolumeEjectUPP callback, CFRunLoopRef runloop, CFStringRef runloopMode); + int FSGetAsyncEjectStatus (FSVolumeOperation volumeOp, FSEjectStatus* status, OSStatus* volumeOpStatus, FSVolumeRefNum* volumeRefNum, pid_t* dissenter, void** clientData); + int FSCopyDiskIDForVolume (short vRefNum, CFStringRef* diskID); + int FSCopyURLForVolume (short vRefNum, CFURLRef* url); + int FSGetVolumeForDiskID (CFStringRef diskID, FSVolumeRefNum* vRefNum); + int FSCopyDADiskForVolume (short vRefNum, DADiskRef* disk); + int FSGetVolumeForDADisk (DADiskRef disk, FSVolumeRefNum* vRefNum); + int FSCopyObjectSync (FSRef* source, FSRef* destDir, CFStringRef destName, FSRef* target, uint options); + int FSMoveObjectSync (FSRef* source, FSRef* destDir, CFStringRef destName, FSRef* target, uint options); + int FSMoveObjectToTrashSync (FSRef* source, FSRef* target, uint options); + int FSPathCopyObjectSync (char* sourcePath, char* destDirPath, CFStringRef destName, char** targetPath, uint options); + int FSPathMoveObjectSync (char* sourcePath, char* destDirPath, CFStringRef destName, char** targetPath, uint options); + int FSPathMoveObjectToTrashSync (char* sourcePath, char** targetPath, uint options); + uint FSFileOperationGetTypeID (); + FSFileOperationRef FSFileOperationCreate (CFAllocatorRef alloc); + int FSFileOperationScheduleWithRunLoop (FSFileOperationRef fileOp, CFRunLoopRef runLoop, CFStringRef runLoopMode); + int FSFileOperationUnscheduleFromRunLoop (FSFileOperationRef fileOp, CFRunLoopRef runLoop, CFStringRef runLoopMode); + int FSCopyObjectAsync (FSFileOperationRef fileOp, FSRef* source, FSRef* destDir, CFStringRef destName, uint flags, FSFileOperationStatusProcPtr callback, double statusChangeInterval, FSFileOperationClientContext* clientContext); + int FSMoveObjectAsync (FSFileOperationRef fileOp, FSRef* source, FSRef* destDir, CFStringRef destName, uint flags, FSFileOperationStatusProcPtr callback, double statusChangeInterval, FSFileOperationClientContext* clientContext); + int FSMoveObjectToTrashAsync (FSFileOperationRef fileOp, FSRef* source, uint flags, FSFileOperationStatusProcPtr callback, double statusChangeInterval, FSFileOperationClientContext* clientContext); + int FSPathCopyObjectAsync (FSFileOperationRef fileOp, char* sourcePath, char* destDirPath, CFStringRef destName, uint flags, FSPathFileOperationStatusProcPtr callback, double statusChangeInterval, FSFileOperationClientContext* clientContext); + int FSPathMoveObjectAsync (FSFileOperationRef fileOp, char* sourcePath, char* destDirPath, CFStringRef destName, uint flags, FSPathFileOperationStatusProcPtr callback, double statusChangeInterval, FSFileOperationClientContext* clientContext); + int FSPathMoveObjectToTrashAsync (FSFileOperationRef fileOp, char* sourcePath, uint flags, FSPathFileOperationStatusProcPtr callback, double statusChangeInterval, FSFileOperationClientContext* clientContext); + int FSFileOperationCancel (FSFileOperationRef fileOp); + int FSFileOperationCopyStatus (FSFileOperationRef fileOp, FSRef* currentItem, FSFileOperationStage* stage, OSStatus* error, CFDictionaryRef* statusDictionary, void** info); + int FSPathFileOperationCopyStatus (FSFileOperationRef fileOp, char** currentItem, FSFileOperationStage* stage, OSStatus* error, CFDictionaryRef* statusDictionary, void** info); + CFStringRef FSCreateStringFromHFSUniStr (CFAllocatorRef alloc, HFSUniStr255* uniStr); + int FSGetHFSUniStrFromString (CFStringRef theString, HFSUniStr255* uniStr); + uint FSFileSecurityGetTypeID (); + FSFileSecurityRef FSFileSecurityCreate (CFAllocatorRef alloc); + FSFileSecurityRef FSFileSecurityCreateWithFSPermissionInfo (CFAllocatorRef alloc, FSPermissionInfo* permissions); + FSFileSecurityRef FSFileSecurityRefCreateCopy (CFAllocatorRef alloc, FSFileSecurityRef fileSec); + int FSFileSecurityGetOwnerUUID (FSFileSecurityRef fileSec, CFUUIDBytes* owner); + int FSFileSecuritySetOwnerUUID (FSFileSecurityRef fileSec, CFUUIDBytes* owner); + int FSFileSecurityGetGroupUUID (FSFileSecurityRef fileSec, CFUUIDBytes* group); + int FSFileSecuritySetGroupUUID (FSFileSecurityRef fileSec, CFUUIDBytes* group); + int FSFileSecurityCopyAccessControlList (FSFileSecurityRef fileSec, acl_t* accessControlList); + int FSFileSecuritySetAccessControlList (FSFileSecurityRef fileSec, acl_t accessControlList); + int FSFileSecurityGetOwner (FSFileSecurityRef fileSec, UInt32* owner); + int FSFileSecuritySetOwner (FSFileSecurityRef fileSec, uint owner); + int FSFileSecurityGetGroup (FSFileSecurityRef fileSec, UInt32* group); + int FSFileSecuritySetGroup (FSFileSecurityRef fileSec, uint group); + int FSFileSecurityGetMode (FSFileSecurityRef fileSec, UInt16* mode); + int FSFileSecuritySetMode (FSFileSecurityRef fileSec, ushort mode); + int FSGetVolumeParms (short volume, GetVolParmsInfoBuffer* buffer, uint bufferSize); + int FSGetVolumeMountInfoSize (short volume, ByteCount* size); + int FSGetVolumeMountInfo (short volume, char* buffer, uint bufferSize, ByteCount* actualSize); + int FSVolumeMount (char* buffer, FSVolumeRefNum* mountedVolume); + int FSFlushVolume (short vRefNum); + int PBFlushVolumeSync (FSRefParamPtr paramBlock); + int PBFlushVolumeAsync (FSRefParamPtr paramBlock); + int PBFSCopyFileSync (FSRefParamPtr paramBlock); + int PBFSCopyFileAsync (FSRefParamPtr paramBlock); + int FSResolveNodeID (short volume, uint nodeID, FSRefPtr newRef); + int PBFSResolveNodeIDSync (FSRefParamPtr paramBlock); + int PBFSResolveNodeIDAsync (FSRefParamPtr paramBlock); +} \ No newline at end of file