comparison 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
comparison
equal deleted inserted replaced
10:27e00625790b 11:07194b026fa4
1 /**
2 * Copyright: Copyright (c) 2009 Jacob Carlborg.
3 * Authors: Jacob Carlborg
4 * Version: Initial created: Jul 21, 2009
5 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0)
6 */
7 module dstep.coreservices.carboncore.Files;
8
9 //import dstep.AvailabilityMacros;
10 import dstep.coreservices.carboncore.Finder;
11 import dstep.coreservices.carboncore.MacTypes;
12 import dstep.coreservices.carboncore.MixedMode;
13 import dstep.coreservices.carboncore.OSUtils;
14 import dstep.coreservices.carboncore.TextCommon;
15 import dstep.coreservices.carboncore.UTCUtils;
16 import dstep.corefoundation.CFBase;
17 import dstep.corefoundation.CFDictionary;
18 import dstep.corefoundation.CFRunLoop;
19 import dstep.corefoundation.CFURL;
20 import dstep.corefoundation.CFUUID;
21 import dstep.diskarbitration.DADisk;
22 import dstep.objc.bridge.TypeEncoding;
23 import dstep.internal.Types;
24 /*import dstep.sys.acl;
25 import dstep.sys.fcntl;
26 import dstep.sys.types;*/
27
28
29 struct __FSFileOperation;
30 struct __FSFileSecurity;
31 struct OpaqueFSIterator;
32 struct OpaqueFNSubscriptionRef;
33 struct OpaqueFSVolumeOperation;
34 struct _acl;
35
36 alias _acl* acl_t;
37 alias int pid_t;
38 alias HFSUniStr255* ConstHFSUniStr255Param;
39 alias short FSVolumeRefNum;
40 alias int FSIORefNum;
41 alias FSRef* FSRefPtr;
42 alias __FSFileSecurity* FSFileSecurityRef;
43 alias FSSpec* FSSpecPtr;
44 alias FSSpecPtr* FSSpecHandle;
45 alias FSSpecPtr FSSpecArrayPtr;
46 alias FSSpec* ConstFSSpecPtr;
47 alias void* ParmBlkPtr;
48 alias IOCompletionProcPtr IOCompletionUPP;
49 alias uint FSCatalogInfoBitmap;
50 alias FSCatalogInfo* FSCatalogInfoPtr;
51 alias FSRefParam* FSRefParamPtr;
52 alias FSRefForkIOParam* FSRefForkIOParamPtr;
53 alias OpaqueFSIterator* FSIterator;
54 alias uint FSIteratorFlags;
55 alias FSSearchParams* FSSearchParamsPtr;
56 alias FSCatalogBulkParam* FSCatalogBulkParamPtr;
57 alias ushort FSAllocationFlags;
58 alias FSForkIOParam* FSForkIOParamPtr;
59 alias FSForkInfo* FSForkInfoPtr;
60 alias FSForkCBInfoParam* FSForkCBInfoParamPtr;
61 alias FSRangeLockParam* FSRangeLockParamPtr;
62 alias uint FSVolumeInfoBitmap;
63 alias FSVolumeInfo* FSVolumeInfoPtr;
64 alias FSVolumeInfoParam* FSVolumeInfoParamPtr;
65 alias uint VolumeType;
66 alias VolMountInfoHeader* VolMountInfoPtr;
67 alias VolumeMountInfoHeader* VolumeMountInfoHeaderPtr;
68 alias AFPVolMountInfo* AFPVolMountInfoPtr;
69 alias AFPXVolMountInfo* AFPXVolMountInfoPtr;
70 alias uint FNMessage;
71 alias OpaqueFNSubscriptionRef* FNSubscriptionRef;
72 alias FNSubscriptionProcPtr FNSubscriptionUPP;
73 alias uint FSMountStatus;
74 alias uint FSEjectStatus;
75 alias uint FSUnmountStatus;
76 alias OpaqueFSVolumeOperation* FSVolumeOperation;
77 alias FSVolumeMountProcPtr FSVolumeMountUPP;
78 alias FSVolumeUnmountProcPtr FSVolumeUnmountUPP;
79 alias FSVolumeEjectProcPtr FSVolumeEjectUPP;
80 alias __FSFileOperation* FSFileOperationRef;
81 alias uint FSFileOperationStage;
82
83 extern (C)
84 {
85 alias void function (ParmBlkPtr) IOCompletionProcPtr;
86 alias void function (FSFileOperationRef, FSRef*, uint, int, CFDictionaryRef, void*) FSFileOperationStatusProcPtr;
87 alias void function (uint, uint, void*, FNSubscriptionRef) FNSubscriptionProcPtr;
88 alias void function (FSFileOperationRef, char*, uint, int, CFDictionaryRef, void*) FSPathFileOperationStatusProcPtr;
89 alias void function (FSVolumeOperation, void*, int, short, int) FSVolumeUnmountProcPtr;
90 alias void function (FSVolumeOperation, void*, int, short, int) FSVolumeEjectProcPtr;
91 alias void function (FSVolumeOperation, void*, int, short) FSVolumeMountProcPtr;
92 }
93
94 extern (C)
95 {
96 extern
97 {
98 const CFStringRef kFSOperationTotalBytesKey;
99 const CFStringRef kFSOperationBytesCompleteKey;
100 const CFStringRef kFSOperationBytesRemainingKey;
101 const CFStringRef kFSOperationTotalObjectsKey;
102 const CFStringRef kFSOperationObjectsCompleteKey;
103 const CFStringRef kFSOperationObjectsRemainingKey;
104 const CFStringRef kFSOperationTotalUserVisibleObjectsKey;
105 const CFStringRef kFSOperationUserVisibleObjectsCompleteKey;
106 const CFStringRef kFSOperationUserVisibleObjectsRemainingKey;
107 const CFStringRef kFSOperationThroughputKey;
108 }
109 }
110
111 // This is needed otherwise the enums will fail compiling with gdc
112 version (GNU)
113 {
114 private
115 {
116 const __AppleShareMediaType = getOSType!("afpm");
117
118 }
119 }
120
121 enum
122 {
123 fsCurPerm = 0x00,
124 fsRdPerm = 0x01,
125 fsWrPerm = 0x02,
126 fsRdWrPerm = 0x03,
127 fsRdWrShPerm = 0x04
128 }
129
130 enum
131 {
132 fsRdAccessPerm = 0x01,
133 fsWrAccessPerm = 0x02,
134 fsRdDenyPerm = 0x10,
135 fsWrDenyPerm = 0x20
136 }
137
138 enum
139 {
140 fsRtParID = 1,
141 fsRtDirID = 2
142 }
143
144 enum
145 {
146 fsAtMark = 0,
147 fsFromStart = 1,
148 fsFromLEOF = 2,
149 fsFromMark = 3
150 }
151
152 enum
153 {
154 kFSAllowConcurrentAsyncIOBit = 3,
155 kFSAllowConcurrentAsyncIOMask = 0x0008,
156 kFSPleaseCacheBit = 4,
157 kFSPleaseCacheMask = 0x0010,
158 kFSNoCacheBit = 5,
159 kFSNoCacheMask = 0x0020,
160 kFSRdVerifyBit = 6,
161 kFSRdVerifyMask = 0x0040,
162 kFSForceReadBit = 6,
163 kFSForceReadMask = 0x0040,
164 kFSNewLineBit = 7,
165 kFSNewLineMask = 0x0080,
166 kFSNewLineCharMask = 0xFF00
167 }
168
169 enum
170 {
171 fsSBPartialName = 0x01,
172 fsSBFullName = 0x02,
173 fsSBFlAttrib = 0x04,
174 fsSBFlFndrInfo = 0x08,
175 fsSBFlLgLen = 0x20,
176 fsSBFlPyLen = 0x40,
177 fsSBFlRLgLen = 0x80,
178 fsSBFlRPyLen = 0x0100,
179 fsSBFlCrDat = 0x0200,
180 fsSBFlMdDat = 0x0400,
181 fsSBFlBkDat = 0x0800,
182 fsSBFlXFndrInfo = 0x1000,
183 fsSBFlParID = 0x2000,
184 fsSBNegate = 0x4000,
185 fsSBDrUsrWds = 0x08,
186 fsSBDrNmFls = 0x10,
187 fsSBDrCrDat = 0x0200,
188 fsSBDrMdDat = 0x0400,
189 fsSBDrBkDat = 0x0800,
190 fsSBDrFndrInfo = 0x1000,
191 fsSBDrParID = 0x2000,
192 fsSBNodeID = 0x8000,
193 fsSBAttributeModDate = 0x00010000,
194 fsSBAccessDate = 0x00020000,
195 fsSBPermissions = 0x00040000,
196 fsSBSkipPackageContents = 0x00080000,
197 fsSBSkipHiddenItems = 0x00100000,
198 fsSBUserID = 0x00200000,
199 fsSBGroupID = 0x00400000
200 }
201
202 enum
203 {
204 fsSBPartialNameBit = 0,
205 fsSBFullNameBit = 1,
206 fsSBFlAttribBit = 2,
207 fsSBFlFndrInfoBit = 3,
208 fsSBFlLgLenBit = 5,
209 fsSBFlPyLenBit = 6,
210 fsSBFlRLgLenBit = 7,
211 fsSBFlRPyLenBit = 8,
212 fsSBFlCrDatBit = 9,
213 fsSBFlMdDatBit = 10,
214 fsSBFlBkDatBit = 11,
215 fsSBFlXFndrInfoBit = 12,
216 fsSBFlParIDBit = 13,
217 fsSBNegateBit = 14,
218 fsSBDrUsrWdsBit = 3,
219 fsSBDrNmFlsBit = 4,
220 fsSBDrCrDatBit = 9,
221 fsSBDrMdDatBit = 10,
222 fsSBDrBkDatBit = 11,
223 fsSBDrFndrInfoBit = 12,
224 fsSBDrParIDBit = 13,
225 fsSBNodeIDBit = 15,
226 fsSBAttributeModDateBit = 16,
227 fsSBAccessDateBit = 17,
228 fsSBPermissionsBit = 18,
229 fsSBSkipPackageContentsBit = 19,
230 fsSBSkipHiddenItemsBit = 20,
231 fsSBUserIDBit = 21,
232 fsSBGroupIDBit = 22
233 }
234
235 enum
236 {
237 bLimitFCBs = 31,
238 bLocalWList = 30,
239 bNoMiniFndr = 29,
240 bNoVNEdit = 28,
241 bNoLclSync = 27,
242 bTrshOffLine = 26,
243 bNoSwitchTo = 25,
244 bNoDeskItems = 20,
245 bNoBootBlks = 19,
246 bAccessCntl = 18,
247 bNoSysDir = 17,
248 bHasExtFSVol = 16,
249 bHasOpenDeny = 15,
250 bHasCopyFile = 14,
251 bHasMoveRename = 13,
252 bHasDesktopMgr = 12,
253 bHasShortName = 11,
254 bHasFolderLock = 10,
255 bHasPersonalAccessPrivileges = 9,
256 bHasUserGroupList = 8,
257 bHasCatSearch = 7,
258 bHasFileIDs = 6,
259 bHasBTreeMgr = 5,
260 bHasBlankAccessPrivileges = 4,
261 bSupportsAsyncRequests = 3,
262 bSupportsTrashVolumeCache = 2
263 }
264
265 enum
266 {
267 bHasDirectIO = 1
268 }
269
270 enum
271 {
272 bIsEjectable = 0,
273 bSupportsHFSPlusAPIs = 1,
274 bSupportsFSCatalogSearch = 2,
275 bSupportsFSExchangeObjects = 3,
276 bSupports2TBFiles = 4,
277 bSupportsLongNames = 5,
278 bSupportsMultiScriptNames = 6,
279 bSupportsNamedForks = 7,
280 bSupportsSubtreeIterators = 8,
281 bL2PCanMapFileBlocks = 9,
282 bParentModDateChanges = 10,
283 bAncestorModDateChanges = 11,
284 bSupportsSymbolicLinks = 13,
285 bIsAutoMounted = 14,
286 bAllowCDiDataHandler = 17,
287 bSupportsExclusiveLocks = 18,
288 bSupportsJournaling = 19,
289 bNoVolumeSizes = 20,
290 bIsOnInternalBus = 21,
291 bIsCaseSensitive = 22,
292 bIsCasePreserving = 23,
293 bDoNotDisplay = 24,
294 bIsRemovable = 25,
295 bNoRootTimes = 26,
296 bIsOnExternalBus = 27,
297 bSupportsExtendedFileSecurity = 28
298 }
299
300 enum
301 {
302 kWidePosOffsetBit = 8,
303 kUseWidePositioning = (1 << kWidePosOffsetBit),
304 kMaximumBlocksIn4GB = 0x007FFFFF
305 }
306
307 enum
308 {
309 fsUnixPriv = 1
310 }
311
312 enum
313 {
314 kNoUserAuthentication = 1,
315 kPassword = 2,
316 kEncryptPassword = 3,
317 kTwoWayEncryptPassword = 6
318 }
319
320 enum
321 {
322 knoUser = 0,
323 kadministratorUser = 1
324 }
325
326 enum
327 {
328 knoGroup = 0
329 }
330
331 enum
332 {
333 kFSInvalidVolumeRefNum = 0
334 }
335
336 enum
337 {
338 kFSCatInfoNone = 0x00000000,
339 kFSCatInfoTextEncoding = 0x00000001,
340 kFSCatInfoNodeFlags = 0x00000002,
341 kFSCatInfoVolume = 0x00000004,
342 kFSCatInfoParentDirID = 0x00000008,
343 kFSCatInfoNodeID = 0x00000010,
344 kFSCatInfoCreateDate = 0x00000020,
345 kFSCatInfoContentMod = 0x00000040,
346 kFSCatInfoAttrMod = 0x00000080,
347 kFSCatInfoAccessDate = 0x00000100,
348 kFSCatInfoBackupDate = 0x00000200,
349 kFSCatInfoPermissions = 0x00000400,
350 kFSCatInfoFinderInfo = 0x00000800,
351 kFSCatInfoFinderXInfo = 0x00001000,
352 kFSCatInfoValence = 0x00002000,
353 kFSCatInfoDataSizes = 0x00004000,
354 kFSCatInfoRsrcSizes = 0x00008000,
355 kFSCatInfoSharingFlags = 0x00010000,
356 kFSCatInfoUserPrivs = 0x00020000,
357 kFSCatInfoUserAccess = 0x00080000,
358 kFSCatInfoSetOwnership = 0x00100000,
359 kFSCatInfoFSFileSecurityRef = 0x00400000,
360 kFSCatInfoAllDates = 0x000003E0,
361 kFSCatInfoGettableInfo = 0x0003FFFF,
362 kFSCatInfoSettableInfo = 0x00001FE3,
363 kFSCatInfoReserved = cast(c_long)0xFFFC0000
364 }
365
366 enum
367 {
368 kFSNodeLockedBit = 0,
369 kFSNodeLockedMask = 0x0001,
370 kFSNodeResOpenBit = 2,
371 kFSNodeResOpenMask = 0x0004,
372 kFSNodeDataOpenBit = 3,
373 kFSNodeDataOpenMask = 0x0008,
374 kFSNodeIsDirectoryBit = 4,
375 kFSNodeIsDirectoryMask = 0x0010,
376 kFSNodeCopyProtectBit = 6,
377 kFSNodeCopyProtectMask = 0x0040,
378 kFSNodeForkOpenBit = 7,
379 kFSNodeForkOpenMask = 0x0080,
380 kFSNodeHardLinkBit = 8,
381 kFSNodeHardLinkMask = 0x00000100
382 }
383
384 enum
385 {
386 kFSNodeInSharedBit = 2,
387 kFSNodeInSharedMask = 0x0004,
388 kFSNodeIsMountedBit = 3,
389 kFSNodeIsMountedMask = 0x0008,
390 kFSNodeIsSharePointBit = 5,
391 kFSNodeIsSharePointMask = 0x0020
392 }
393
394 enum
395 {
396 kFSIterateFlat = 0,
397 kFSIterateSubtree = 1,
398 kFSIterateDelete = 2,
399 kFSIterateReserved = cast(c_long)0xFFFFFFFC
400 }
401
402 enum
403 {
404 kFSAllocDefaultFlags = 0x0000,
405 kFSAllocAllOrNothingMask = 0x0001,
406 kFSAllocContiguousMask = 0x0002,
407 kFSAllocNoRoundUpMask = 0x0004,
408 kFSAllocReservedMask = 0xFFF8
409 }
410
411 enum
412 {
413 kFSVolInfoNone = 0x0000,
414 kFSVolInfoCreateDate = 0x0001,
415 kFSVolInfoModDate = 0x0002,
416 kFSVolInfoBackupDate = 0x0004,
417 kFSVolInfoCheckedDate = 0x0008,
418 kFSVolInfoFileCount = 0x0010,
419 kFSVolInfoDirCount = 0x0020,
420 kFSVolInfoSizes = 0x0040,
421 kFSVolInfoBlocks = 0x0080,
422 kFSVolInfoNextAlloc = 0x0100,
423 kFSVolInfoRsrcClump = 0x0200,
424 kFSVolInfoDataClump = 0x0400,
425 kFSVolInfoNextID = 0x0800,
426 kFSVolInfoFinderInfo = 0x1000,
427 kFSVolInfoFlags = 0x2000,
428 kFSVolInfoFSInfo = 0x4000,
429 kFSVolInfoDriveInfo = 0x8000,
430 kFSVolInfoGettableInfo = 0xFFFF,
431 kFSVolInfoSettableInfo = 0x3004
432 }
433
434 enum
435 {
436 kFSVolFlagDefaultVolumeBit = 5,
437 kFSVolFlagDefaultVolumeMask = 0x0020,
438 kFSVolFlagFilesOpenBit = 6,
439 kFSVolFlagFilesOpenMask = 0x0040,
440 kFSVolFlagHardwareLockedBit = 7,
441 kFSVolFlagHardwareLockedMask = 0x0080,
442 kFSVolFlagJournalingActiveBit = 14,
443 kFSVolFlagJournalingActiveMask = 0x4000,
444 kFSVolFlagSoftwareLockedBit = 15,
445 kFSVolFlagSoftwareLockedMask = 0x8000
446 }
447
448 enum
449 {
450 AppleShareMediaType = getOSType!("afpm")
451 }
452
453 enum
454 {
455 volMountNoLoginMsgFlagBit = 0,
456 volMountNoLoginMsgFlagMask = 0x0001,
457 volMountExtendedFlagsBit = 7,
458 volMountExtendedFlagsMask = 0x0080,
459 volMountInteractBit = 15,
460 volMountInteractMask = 0x8000,
461 volMountChangedBit = 14,
462 volMountChangedMask = 0x4000,
463 volMountFSReservedMask = 0x00FF,
464 volMountSysReservedMask = 0xFF00
465 }
466
467 enum
468 {
469 kAFPExtendedFlagsAlternateAddressMask = 1
470 }
471
472 enum
473 {
474 kAFPTagTypeIP = 0x01,
475 kAFPTagTypeIPPort = 0x02,
476 kAFPTagTypeDDP = 0x03,
477 kAFPTagTypeDNS = 0x04
478 }
479
480 enum
481 {
482 kAFPTagLengthIP = 0x06,
483 kAFPTagLengthIPPort = 0x08,
484 kAFPTagLengthDDP = 0x06
485 }
486
487 enum
488 {
489 kLargeIconSize = 256,
490 kLarge4BitIconSize = 512,
491 kLarge8BitIconSize = 1024,
492 kSmallIconSize = 64,
493 kSmall4BitIconSize = 128,
494 kSmall8BitIconSize = 256
495 }
496
497 enum
498 {
499 kFSReplaceObjectDefaultOptions = 0,
500 kFSReplaceObjectReplaceMetadata = 0x01,
501 kFSReplaceObjectSaveOriginalAsABackup = 0x02,
502 kFSReplaceObjectReplacePermissionInfo = 0x04,
503 kFSReplaceObjectPreservePermissionInfo = 0x08,
504 kFSReplaceObjectDoNotCheckObjectWriteAccess = 0x10
505 }
506
507 enum
508 {
509 kFSPathMakeRefDefaultOptions = 0,
510 kFSPathMakeRefDoNotFollowLeafSymlink = 0x01
511 }
512
513 enum
514 {
515 kFNDirectoryModifiedMessage = 1
516 }
517
518 enum
519 {
520 kFNNoImplicitAllSubscription = (1 << 0),
521 kFNNotifyInBackground = (1 << 1)
522 }
523
524 enum
525 {
526 kAsyncMountInProgress = 1,
527 kAsyncMountComplete = 2,
528 kAsyncUnmountInProgress = 3,
529 kAsyncUnmountComplete = 4,
530 kAsyncEjectInProgress = 5,
531 kAsyncEjectComplete = 6
532 }
533
534 enum
535 {
536 kFSMountServerMarkDoNotDisplay = (1 << 0),
537 kFSMountServerMountOnMountDir = (1 << 2)
538 }
539
540 enum
541 {
542 kFSMountServerMountWithoutNotification = (1 << 1)
543 }
544
545 enum
546 {
547 kFSEjectVolumeForceEject = (1 << 0)
548 }
549
550 enum
551 {
552 kFSUnmountVolumeForceUnmount = (1 << 0)
553 }
554
555 enum
556 {
557 kFSFileOperationDefaultOptions = 0,
558 kFSFileOperationOverwrite = 0x01,
559 kFSFileOperationSkipSourcePermissionErrors = 0x02,
560 kFSFileOperationDoNotMoveAcrossVolumes = 0x04,
561 kFSFileOperationSkipPreflight = 0x08
562 }
563
564 enum
565 {
566 kFSOperationStageUndefined = 0,
567 kFSOperationStagePreflighting = 1,
568 kFSOperationStageRunning = 2,
569 kFSOperationStageComplete = 3
570 }
571
572 enum
573 {
574 pleaseCacheBit = 4,
575 pleaseCacheMask = 0x0010,
576 noCacheBit = 5,
577 noCacheMask = 0x0020,
578 rdVerifyBit = 6,
579 rdVerifyMask = 0x0040,
580 rdVerify = 64,
581 forceReadBit = 6,
582 forceReadMask = 0x0040,
583 newLineBit = 7,
584 newLineMask = 0x0080,
585 newLineCharMask = 0xFF00
586 }
587
588 enum
589 {
590 kOwnerID2Name = 1,
591 kGroupID2Name = 2,
592 kOwnerName2ID = 3,
593 kGroupName2ID = 4,
594 kReturnNextUser = 1,
595 kReturnNextGroup = 2,
596 kReturnNextUG = 3
597 }
598
599 enum
600 {
601 kVCBFlagsIdleFlushBit = 3,
602 kVCBFlagsIdleFlushMask = 0x0008,
603 kVCBFlagsHFSPlusAPIsBit = 4,
604 kVCBFlagsHFSPlusAPIsMask = 0x0010,
605 kVCBFlagsHardwareGoneBit = 5,
606 kVCBFlagsHardwareGoneMask = 0x0020,
607 kVCBFlagsVolumeDirtyBit = 15,
608 kVCBFlagsVolumeDirtyMask = 0x8000
609 }
610
611 enum
612 {
613 kioVAtrbDefaultVolumeBit = 5,
614 kioVAtrbDefaultVolumeMask = 0x0020,
615 kioVAtrbFilesOpenBit = 6,
616 kioVAtrbFilesOpenMask = 0x0040,
617 kioVAtrbHardwareLockedBit = 7,
618 kioVAtrbHardwareLockedMask = 0x0080,
619 kioVAtrbSoftwareLockedBit = 15,
620 kioVAtrbSoftwareLockedMask = 0x8000
621 }
622
623 enum
624 {
625 kioFlAttribLockedBit = 0,
626 kioFlAttribLockedMask = 0x01,
627 kioFlAttribResOpenBit = 2,
628 kioFlAttribResOpenMask = 0x04,
629 kioFlAttribDataOpenBit = 3,
630 kioFlAttribDataOpenMask = 0x08,
631 kioFlAttribDirBit = 4,
632 kioFlAttribDirMask = 0x10,
633 ioDirFlg = 4,
634 ioDirMask = 0x10,
635 kioFlAttribCopyProtBit = 6,
636 kioFlAttribCopyProtMask = 0x40,
637 kioFlAttribFileOpenBit = 7,
638 kioFlAttribFileOpenMask = 0x80,
639 kioFlAttribInSharedBit = 2,
640 kioFlAttribInSharedMask = 0x04,
641 kioFlAttribMountedBit = 3,
642 kioFlAttribMountedMask = 0x08,
643 kioFlAttribSharePointBit = 5,
644 kioFlAttribSharePointMask = 0x20
645 }
646
647 enum
648 {
649 kioFCBWriteBit = 8,
650 kioFCBWriteMask = 0x0100,
651 kioFCBResourceBit = 9,
652 kioFCBResourceMask = 0x0200,
653 kioFCBWriteLockedBit = 10,
654 kioFCBWriteLockedMask = 0x0400,
655 kioFCBLargeFileBit = 11,
656 kioFCBLargeFileMask = 0x0800,
657 kioFCBSharedWriteBit = 12,
658 kioFCBSharedWriteMask = 0x1000,
659 kioFCBFileLockedBit = 13,
660 kioFCBFileLockedMask = 0x2000,
661 kioFCBOwnClumpBit = 14,
662 kioFCBOwnClumpMask = 0x4000,
663 kioFCBModifiedBit = 15,
664 kioFCBModifiedMask = 0x8000
665 }
666
667 enum
668 {
669 kioACUserNoSeeFolderBit = 0,
670 kioACUserNoSeeFolderMask = 0x01,
671 kioACUserNoSeeFilesBit = 1,
672 kioACUserNoSeeFilesMask = 0x02,
673 kioACUserNoMakeChangesBit = 2,
674 kioACUserNoMakeChangesMask = 0x04,
675 kioACUserNotOwnerBit = 7,
676 kioACUserNotOwnerMask = 0x80
677 }
678
679 enum
680 {
681 kioACAccessOwnerBit = 31,
682 kioACAccessOwnerMask = cast(c_long)0x80000000,
683 kioACAccessBlankAccessBit = 28,
684 kioACAccessBlankAccessMask = 0x10000000,
685 kioACAccessUserWriteBit = 26,
686 kioACAccessUserWriteMask = 0x04000000,
687 kioACAccessUserReadBit = 25,
688 kioACAccessUserReadMask = 0x02000000,
689 kioACAccessUserSearchBit = 24,
690 kioACAccessUserSearchMask = 0x01000000,
691 kioACAccessEveryoneWriteBit = 18,
692 kioACAccessEveryoneWriteMask = 0x00040000,
693 kioACAccessEveryoneReadBit = 17,
694 kioACAccessEveryoneReadMask = 0x00020000,
695 kioACAccessEveryoneSearchBit = 16,
696 kioACAccessEveryoneSearchMask = 0x00010000,
697 kioACAccessGroupWriteBit = 10,
698 kioACAccessGroupWriteMask = 0x00000400,
699 kioACAccessGroupReadBit = 9,
700 kioACAccessGroupReadMask = 0x00000200,
701 kioACAccessGroupSearchBit = 8,
702 kioACAccessGroupSearchMask = 0x00000100,
703 kioACAccessOwnerWriteBit = 2,
704 kioACAccessOwnerWriteMask = 0x00000004,
705 kioACAccessOwnerReadBit = 1,
706 kioACAccessOwnerReadMask = 0x00000002,
707 kioACAccessOwnerSearchBit = 0,
708 kioACAccessOwnerSearchMask = 0x00000001,
709 kfullPrivileges = 0x00070007,
710 kownerPrivileges = 0x00000007
711 }
712
713 struct HFSUniStr255
714 {
715 ushort length;
716 wchar* unicode;
717 }
718
719
720 struct FSRef
721 {
722 ubyte[80] hidden;
723 }
724
725
726 struct CatPositionRec
727 {
728 int initialize;
729 short[6] priv;
730 }
731
732
733 struct FSSpec
734 {
735 ubyte[70] hidden;
736 }
737
738
739 struct FSPermissionInfo
740 {
741 uint userID;
742 uint groupID;
743 ubyte reserved1;
744 ubyte userAccess;
745 ushort mode;
746 FSFileSecurityRef fileSec;
747 }
748
749
750 struct FSCatalogInfo
751 {
752 ushort nodeFlags;
753 short volume;
754 uint parentDirID;
755 uint nodeID;
756 ubyte sharingFlags;
757 ubyte userPrivileges;
758 ubyte reserved1;
759 ubyte reserved2;
760 UTCDateTime createDate;
761 UTCDateTime contentModDate;
762 UTCDateTime attributeModDate;
763 UTCDateTime accessDate;
764 UTCDateTime backupDate;
765 FSPermissionInfo permissions;
766 char* finderInfo;
767 char* extFinderInfo;
768 ulong dataLogicalSize;
769 ulong dataPhysicalSize;
770 ulong rsrcLogicalSize;
771 ulong rsrcPhysicalSize;
772 uint valence;
773 uint textEncodingHint;
774 }
775
776
777 struct FSRefParam
778 {
779 QElemPtr qLink;
780 short qType;
781 short ioTrap;
782 char* ioCmdAddr;
783 IOCompletionUPP ioCompletion;
784 short ioResult;
785 char* ioNamePtr;
786 short ioVRefNum;
787 short reserved1;
788 ubyte reserved2;
789 ubyte reserved3;
790 FSRef* ref_;
791 uint whichInfo;
792 FSCatalogInfo* catInfo;
793 uint nameLength;
794 wchar* name;
795 uint ioDirID;
796 FSSpecPtr spec;
797 FSRef* parentRef;
798 FSRef* newRef;
799 uint textEncodingHint;
800 HFSUniStr255* outName;
801 }
802
803
804 struct FSRefForkIOParam
805 {
806 QElemPtr qLink;
807 short qType;
808 short ioTrap;
809 char* ioCmdAddr;
810 IOCompletionUPP ioCompletion;
811 short ioResult;
812 FSRef* parentRef;
813 uint nameLength;
814 wchar* name;
815 uint whichInfo;
816 FSCatalogInfo* catInfo;
817 uint forkNameLength;
818 wchar* forkName;
819 byte permissions;
820 ubyte reserved1;
821 short forkRefNum;
822 FSRef* newRef;
823 }
824
825
826 struct FSSearchParams
827 {
828 int searchTime;
829 uint searchBits;
830 uint searchNameLength;
831 wchar* searchName;
832 FSCatalogInfo* searchInfo1;
833 FSCatalogInfo* searchInfo2;
834 }
835
836
837 struct FSCatalogBulkParam
838 {
839 QElemPtr qLink;
840 short qType;
841 short ioTrap;
842 char* ioCmdAddr;
843 IOCompletionUPP ioCompletion;
844 short ioResult;
845 ubyte containerChanged;
846 ubyte reserved;
847 uint iteratorFlags;
848 FSIterator iterator;
849 FSRef* container;
850 uint maximumItems;
851 uint actualItems;
852 uint whichInfo;
853 FSCatalogInfo* catalogInfo;
854 FSRef* refs;
855 FSSpecPtr specs;
856 HFSUniStr255* names;
857 FSSearchParams* searchParams;
858 }
859
860
861 struct FSForkIOParam
862 {
863 QElemPtr qLink;
864 short qType;
865 short ioTrap;
866 char* ioCmdAddr;
867 IOCompletionUPP ioCompletion;
868 short ioResult;
869 void* reserved1;
870 short reserved2;
871 short forkRefNum;
872 ubyte reserved3;
873 byte permissions;
874 FSRef* ref_;
875 char* buffer;
876 uint requestCount;
877 uint actualCount;
878 ushort positionMode;
879 long positionOffset;
880 ushort allocationFlags;
881 ulong allocationAmount;
882 uint forkNameLength;
883 wchar* forkName;
884 CatPositionRec forkIterator;
885 HFSUniStr255* outForkName;
886 }
887
888
889 struct FSForkInfo
890 {
891 byte flags;
892 byte permissions;
893 short volume;
894 uint reserved2;
895 uint nodeID;
896 uint forkID;
897 ulong currentPosition;
898 ulong logicalEOF;
899 ulong physicalEOF;
900 ulong process;
901 }
902
903
904 struct FSForkCBInfoParam
905 {
906 QElemPtr qLink;
907 short qType;
908 short ioTrap;
909 char* ioCmdAddr;
910 IOCompletionUPP ioCompletion;
911 short ioResult;
912 short desiredRefNum;
913 short volumeRefNum;
914 short iterator;
915 short actualRefNum;
916 FSRef* ref_;
917 FSForkInfo* forkInfo;
918 HFSUniStr255* forkName;
919 }
920
921
922 struct FSRangeLockParam
923 {
924 QElemPtr qLink;
925 short qType;
926 short ioTrap;
927 char* ioCmdAddr;
928 IOCompletionUPP ioCompletion;
929 short ioResult;
930 short forkRefNum;
931 ulong requestCount;
932 ushort positionMode;
933 long positionOffset;
934 ulong rangeStart;
935 }
936
937
938 struct FSVolumeInfo
939 {
940 UTCDateTime createDate;
941 UTCDateTime modifyDate;
942 UTCDateTime backupDate;
943 UTCDateTime checkedDate;
944 uint fileCount;
945 uint folderCount;
946 ulong totalBytes;
947 ulong freeBytes;
948 uint blockSize;
949 uint totalBlocks;
950 uint freeBlocks;
951 uint nextAllocation;
952 uint rsrcClumpSize;
953 uint dataClumpSize;
954 uint nextCatalogID;
955 char* finderInfo;
956 ushort flags;
957 ushort filesystemID;
958 ushort signature;
959 ushort driveNumber;
960 short driverRefNum;
961 }
962
963
964 struct FSVolumeInfoParam
965 {
966 QElemPtr qLink;
967 short qType;
968 short ioTrap;
969 char* ioCmdAddr;
970 IOCompletionUPP ioCompletion;
971 short ioResult;
972 char* ioNamePtr;
973 short ioVRefNum;
974 uint volumeIndex;
975 uint whichInfo;
976 FSVolumeInfo* volumeInfo;
977 HFSUniStr255* volumeName;
978 FSRef* ref_;
979 }
980
981
982 struct GetVolParmsInfoBuffer
983 {
984 short vMVersion;
985 int vMAttrib;
986 Handle vMLocalHand;
987 int vMServerAdr;
988 int vMVolumeGrade;
989 short vMForeignPrivID;
990 int vMExtendedAttributes;
991 void* vMDeviceID;
992 uint vMMaxNameLength;
993 }
994
995
996 struct VolMountInfoHeader
997 {
998 short length;
999 uint media;
1000 }
1001
1002
1003 struct VolumeMountInfoHeader
1004 {
1005 short length;
1006 uint media;
1007 short flags;
1008 }
1009
1010
1011 struct AFPVolMountInfo
1012 {
1013 short length;
1014 uint media;
1015 short flags;
1016 byte nbpInterval;
1017 byte nbpCount;
1018 short uamType;
1019 short zoneNameOffset;
1020 short serverNameOffset;
1021 short volNameOffset;
1022 short userNameOffset;
1023 short userPasswordOffset;
1024 short volPasswordOffset;
1025 char* AFPData;
1026 }
1027
1028
1029 struct AFPXVolMountInfo
1030 {
1031 short length;
1032 uint media;
1033 short flags;
1034 byte nbpInterval;
1035 byte nbpCount;
1036 short uamType;
1037 short zoneNameOffset;
1038 short serverNameOffset;
1039 short volNameOffset;
1040 short userNameOffset;
1041 short userPasswordOffset;
1042 short volPasswordOffset;
1043 short extendedFlags;
1044 short uamNameOffset;
1045 short alternateAddressOffset;
1046 char* AFPData;
1047 }
1048
1049
1050 struct AFPTagData
1051 {
1052 ubyte fLength;
1053 ubyte fType;
1054 char* fData;
1055 }
1056
1057
1058 struct AFPAlternateAddress
1059 {
1060 ubyte fVersion;
1061 ubyte fAddressCount;
1062 char* fAddressList;
1063 }
1064
1065
1066 struct FSFileOperationClientContext
1067 {
1068 int version_;
1069 void* info;
1070 CFAllocatorRetainCallBack retain;
1071 CFAllocatorReleaseCallBack release;
1072 CFAllocatorCopyDescriptionCallBack copyDescription;
1073 }
1074
1075 extern (C)
1076 {
1077 IOCompletionUPP NewIOCompletionUPP (IOCompletionProcPtr userRoutine);
1078 void DisposeIOCompletionUPP (IOCompletionUPP userUPP);
1079 void InvokeIOCompletionUPP (ParmBlkPtr paramBlock, IOCompletionUPP userUPP);
1080 short FSMakeFSRefUnicode (FSRef* parentRef, uint nameLength, wchar* name, uint textEncodingHint, FSRef* newRef);
1081 short PBMakeFSRefUnicodeSync (FSRefParam* paramBlock);
1082 void PBMakeFSRefUnicodeAsync (FSRefParam* paramBlock);
1083 short FSCompareFSRefs (FSRef* ref1, FSRef* ref2);
1084 short PBCompareFSRefsSync (FSRefParam* paramBlock);
1085 void PBCompareFSRefsAsync (FSRefParam* paramBlock);
1086 short FSCreateFileUnicode (FSRef* parentRef, uint nameLength, wchar* name, uint whichInfo, FSCatalogInfo* catalogInfo, FSRef* newRef, FSSpecPtr newSpec);
1087 short PBCreateFileUnicodeSync (FSRefParam* paramBlock);
1088 void PBCreateFileUnicodeAsync (FSRefParam* paramBlock);
1089 short FSCreateDirectoryUnicode (FSRef* parentRef, uint nameLength, wchar* name, uint whichInfo, FSCatalogInfo* catalogInfo, FSRef* newRef, FSSpecPtr newSpec, UInt32* newDirID);
1090 short PBCreateDirectoryUnicodeSync (FSRefParam* paramBlock);
1091 void PBCreateDirectoryUnicodeAsync (FSRefParam* paramBlock);
1092 short FSDeleteObject (FSRef* ref_);
1093 short PBDeleteObjectSync (FSRefParam* paramBlock);
1094 void PBDeleteObjectAsync (FSRefParam* paramBlock);
1095 short FSUnlinkObject (FSRef* ref_);
1096 short PBUnlinkObjectSync (FSRefParam* paramBlock);
1097 void PBUnlinkObjectAsync (FSRefParam* paramBlock);
1098 short FSMoveObject (FSRef* ref_, FSRef* destDirectory, FSRef* newRef);
1099 short PBMoveObjectSync (FSRefParam* paramBlock);
1100 void PBMoveObjectAsync (FSRefParam* paramBlock);
1101 short FSExchangeObjects (FSRef* ref_, FSRef* destRef);
1102 short PBExchangeObjectsSync (FSRefParam* paramBlock);
1103 void PBExchangeObjectsAsync (FSRefParam* paramBlock);
1104 int FSReplaceObject (FSRef* originalObject, FSRef* replacementObject, CFStringRef newName, CFStringRef temporaryName, FSRef* temporaryDirectory, uint flags, FSRef* resultObject);
1105 int FSPathReplaceObject (char* originalObjectPath, char* replacementObjectPath, CFStringRef newName, CFStringRef temporaryName, char* temporaryDirectoryPath, uint flags);
1106 int FSGetTemporaryDirectoryForReplaceObject (FSRef* originalObject, FSRef* temporaryDirectory, uint flags);
1107 int FSPathGetTemporaryDirectoryForReplaceObject (char* originalObjectPath, char* temporaryDirectoryPath, uint maxPathSize, uint flags);
1108 short FSRenameUnicode (FSRef* ref_, uint nameLength, wchar* name, uint textEncodingHint, FSRef* newRef);
1109 short PBRenameUnicodeSync (FSRefParam* paramBlock);
1110 void PBRenameUnicodeAsync (FSRefParam* paramBlock);
1111 short FSGetCatalogInfo (FSRef* ref_, uint whichInfo, FSCatalogInfo* catalogInfo, HFSUniStr255* outName, FSSpecPtr fsSpec, FSRef* parentRef);
1112 short PBGetCatalogInfoSync (FSRefParam* paramBlock);
1113 void PBGetCatalogInfoAsync (FSRefParam* paramBlock);
1114 short FSSetCatalogInfo (FSRef* ref_, uint whichInfo, FSCatalogInfo* catalogInfo);
1115 short PBSetCatalogInfoSync (FSRefParam* paramBlock);
1116 void PBSetCatalogInfoAsync (FSRefParam* paramBlock);
1117 short FSOpenIterator (FSRef* container, uint iteratorFlags, FSIterator* iterator);
1118 short PBOpenIteratorSync (FSCatalogBulkParam* paramBlock);
1119 void PBOpenIteratorAsync (FSCatalogBulkParam* paramBlock);
1120 short FSCloseIterator (FSIterator iterator);
1121 short PBCloseIteratorSync (FSCatalogBulkParam* paramBlock);
1122 void PBCloseIteratorAsync (FSCatalogBulkParam* paramBlock);
1123 short FSGetCatalogInfoBulk (FSIterator iterator, uint maximumObjects, ItemCount* actualObjects, char* containerChanged, uint whichInfo, FSCatalogInfo* catalogInfos, FSRef* refs, FSSpecPtr specs, HFSUniStr255* names);
1124 short PBGetCatalogInfoBulkSync (FSCatalogBulkParam* paramBlock);
1125 void PBGetCatalogInfoBulkAsync (FSCatalogBulkParam* paramBlock);
1126 short FSCatalogSearch (FSIterator iterator, FSSearchParams* searchCriteria, uint maximumObjects, ItemCount* actualObjects, char* containerChanged, uint whichInfo, FSCatalogInfo* catalogInfos, FSRef* refs, FSSpecPtr specs, HFSUniStr255* names);
1127 short PBCatalogSearchSync (FSCatalogBulkParam* paramBlock);
1128 void PBCatalogSearchAsync (FSCatalogBulkParam* paramBlock);
1129 int FSCreateFileAndOpenForkUnicode (FSRef* parentRef, uint nameLength, wchar* name, uint whichInfo, FSCatalogInfo* catalogInfo, uint forkNameLength, wchar* forkName, byte permissions, FSIORefNum* forkRefNum, FSRef* newRef);
1130 int PBCreateFileAndOpenForkUnicodeSync (FSRefForkIOParamPtr paramBlock);
1131 void PBCreateFileAndOpenForkUnicodeAsync (FSRefForkIOParamPtr paramBlock);
1132 short FSCreateFork (FSRef* ref_, uint forkNameLength, wchar* forkName);
1133 short PBCreateForkSync (FSForkIOParam* paramBlock);
1134 void PBCreateForkAsync (FSForkIOParam* paramBlock);
1135 short FSDeleteFork (FSRef* ref_, uint forkNameLength, wchar* forkName);
1136 short PBDeleteForkSync (FSForkIOParam* paramBlock);
1137 void PBDeleteForkAsync (FSForkIOParam* paramBlock);
1138 short FSIterateForks (FSRef* ref_, CatPositionRec* forkIterator, HFSUniStr255* forkName, SInt64* forkSize, UInt64* forkPhysicalSize);
1139 short PBIterateForksSync (FSForkIOParam* paramBlock);
1140 void PBIterateForksAsync (FSForkIOParam* paramBlock);
1141 short FSOpenFork (FSRef* ref_, uint forkNameLength, wchar* forkName, byte permissions, FSIORefNum* forkRefNum);
1142 short PBOpenForkSync (FSForkIOParam* paramBlock);
1143 void PBOpenForkAsync (FSForkIOParam* paramBlock);
1144 short FSReadFork (short forkRefNum, ushort positionMode, long positionOffset, uint requestCount, void* buffer, ByteCount* actualCount);
1145 short PBReadForkSync (FSForkIOParam* paramBlock);
1146 void PBReadForkAsync (FSForkIOParam* paramBlock);
1147 short FSWriteFork (short forkRefNum, ushort positionMode, long positionOffset, uint requestCount, void* buffer, ByteCount* actualCount);
1148 short PBWriteForkSync (FSForkIOParam* paramBlock);
1149 void PBWriteForkAsync (FSForkIOParam* paramBlock);
1150 short FSGetForkPosition (short forkRefNum, SInt64* position);
1151 short PBGetForkPositionSync (FSForkIOParam* paramBlock);
1152 void PBGetForkPositionAsync (FSForkIOParam* paramBlock);
1153 short FSSetForkPosition (short forkRefNum, ushort positionMode, long positionOffset);
1154 short PBSetForkPositionSync (FSForkIOParam* paramBlock);
1155 void PBSetForkPositionAsync (FSForkIOParam* paramBlock);
1156 short FSGetForkSize (short forkRefNum, SInt64* forkSize);
1157 short PBGetForkSizeSync (FSForkIOParam* paramBlock);
1158 void PBGetForkSizeAsync (FSForkIOParam* paramBlock);
1159 short FSSetForkSize (short forkRefNum, ushort positionMode, long positionOffset);
1160 short PBSetForkSizeSync (FSForkIOParam* paramBlock);
1161 void PBSetForkSizeAsync (FSForkIOParam* paramBlock);
1162 short FSAllocateFork (short forkRefNum, ushort flags, ushort positionMode, long positionOffset, ulong requestCount, UInt64* actualCount);
1163 short PBAllocateForkSync (FSForkIOParam* paramBlock);
1164 void PBAllocateForkAsync (FSForkIOParam* paramBlock);
1165 short FSFlushFork (short forkRefNum);
1166 short PBFlushForkSync (FSForkIOParam* paramBlock);
1167 void PBFlushForkAsync (FSForkIOParam* paramBlock);
1168 short FSCloseFork (short forkRefNum);
1169 short PBCloseForkSync (FSForkIOParam* paramBlock);
1170 void PBCloseForkAsync (FSForkIOParam* paramBlock);
1171 short FSGetForkCBInfo (short desiredRefNum, short volume, short* iterator, FSIORefNum* actualRefNum, FSForkInfo* forkInfo, FSRef* ref_, HFSUniStr255* outForkName);
1172 short PBGetForkCBInfoSync (FSForkCBInfoParam* paramBlock);
1173 void PBGetForkCBInfoAsync (FSForkCBInfoParam* paramBlock);
1174 int FSLockRange (short forkRefNum, ushort positionMode, long positionOffset, ulong requestCount, UInt64* rangeStart);
1175 int PBXLockRangeSync (FSRangeLockParamPtr paramBlock);
1176 int PBXLockRangeAsync (FSRangeLockParamPtr paramBlock);
1177 int FSUnlockRange (short forkRefNum, ushort positionMode, long positionOffset, ulong requestCount, UInt64* rangeStart);
1178 int PBXUnlockRangeSync (FSRangeLockParamPtr paramBlock);
1179 int PBXUnlockRangeAsync (FSRangeLockParamPtr paramBlock);
1180 short FSGetVolumeInfo (short volume, uint volumeIndex, FSVolumeRefNum* actualVolume, uint whichInfo, FSVolumeInfo* info, HFSUniStr255* volumeName, FSRef* rootDirectory);
1181 short PBGetVolumeInfoSync (FSVolumeInfoParam* paramBlock);
1182 void PBGetVolumeInfoAsync (FSVolumeInfoParam* paramBlock);
1183 short FSSetVolumeInfo (short volume, uint whichInfo, FSVolumeInfo* info);
1184 short PBSetVolumeInfoSync (FSVolumeInfoParam* paramBlock);
1185 void PBSetVolumeInfoAsync (FSVolumeInfoParam* paramBlock);
1186 short FSGetDataForkName (HFSUniStr255* dataForkName);
1187 short FSGetResourceForkName (HFSUniStr255* resourceForkName);
1188 int FSRefMakePath (FSRef* ref_, char* path, uint pathBufferSize);
1189 int FSPathMakeRef (char* path, FSRef* ref_, char* isDirectory);
1190 int FSPathMakeRefWithOptions (char* path, uint options, FSRef* ref_, char* isDirectory);
1191 ubyte FSIsFSRefValid (FSRef* ref_);
1192 int FNNotify (FSRef* ref_, uint message, uint flags);
1193 int FNNotifyByPath (char* path, uint message, uint flags);
1194 int FNNotifyAll (uint message, uint flags);
1195 FNSubscriptionUPP NewFNSubscriptionUPP (FNSubscriptionProcPtr userRoutine);
1196 void DisposeFNSubscriptionUPP (FNSubscriptionUPP userUPP);
1197 void InvokeFNSubscriptionUPP (uint message, uint flags, void* refcon, FNSubscriptionRef subscription, FNSubscriptionUPP userUPP);
1198 int FNSubscribe (FSRef* directoryRef, FNSubscriptionUPP callback, void* refcon, uint flags, FNSubscriptionRef* subscription);
1199 int FNSubscribeByPath (char* directoryPath, FNSubscriptionUPP callback, void* refcon, uint flags, FNSubscriptionRef* subscription);
1200 int FNUnsubscribe (FNSubscriptionRef subscription);
1201 int FNGetDirectoryForSubscription (FNSubscriptionRef subscription, FSRef* ref_);
1202 FSVolumeMountUPP NewFSVolumeMountUPP (FSVolumeMountProcPtr userRoutine);
1203 FSVolumeUnmountUPP NewFSVolumeUnmountUPP (FSVolumeUnmountProcPtr userRoutine);
1204 FSVolumeEjectUPP NewFSVolumeEjectUPP (FSVolumeEjectProcPtr userRoutine);
1205 void DisposeFSVolumeMountUPP (FSVolumeMountUPP userUPP);
1206 void DisposeFSVolumeUnmountUPP (FSVolumeUnmountUPP userUPP);
1207 void DisposeFSVolumeEjectUPP (FSVolumeEjectUPP userUPP);
1208 void InvokeFSVolumeMountUPP (FSVolumeOperation volumeOp, void* clientData, int err, short mountedVolumeRefNum, FSVolumeMountUPP userUPP);
1209 void InvokeFSVolumeUnmountUPP (FSVolumeOperation volumeOp, void* clientData, int err, short volumeRefNum, int dissenter, FSVolumeUnmountUPP userUPP);
1210 void InvokeFSVolumeEjectUPP (FSVolumeOperation volumeOp, void* clientData, int err, short volumeRefNum, int dissenter, FSVolumeEjectUPP userUPP);
1211 int FSCreateVolumeOperation (FSVolumeOperation* volumeOp);
1212 int FSDisposeVolumeOperation (FSVolumeOperation volumeOp);
1213 int FSMountLocalVolumeSync (CFStringRef diskID, CFURLRef mountDir, FSVolumeRefNum* mountedVolumeRefNum, uint flags);
1214 int FSMountLocalVolumeAsync (CFStringRef diskID, CFURLRef mountDir, FSVolumeOperation volumeOp, void* clientData, uint flags, FSVolumeMountUPP callback, CFRunLoopRef runloop, CFStringRef runloopMode);
1215 int FSMountServerVolumeSync (CFURLRef url, CFURLRef mountDir, CFStringRef user, CFStringRef password, FSVolumeRefNum* mountedVolumeRefNum, uint flags);
1216 int FSMountServerVolumeAsync (CFURLRef url, CFURLRef mountDir, CFStringRef user, CFStringRef password, FSVolumeOperation volumeOp, void* clientData, uint flags, FSVolumeMountUPP callback, CFRunLoopRef runloop, CFStringRef runloopMode);
1217 int FSGetAsyncMountStatus (FSVolumeOperation volumeOp, FSMountStatus* status, OSStatus* volumeOpStatus, FSVolumeRefNum* mountedVolumeRefNum, void** clientData);
1218 int FSUnmountVolumeSync (short vRefNum, uint flags, pid_t* dissenter);
1219 int FSUnmountVolumeAsync (short vRefNum, uint flags, FSVolumeOperation volumeOp, void* clientData, FSVolumeUnmountUPP callback, CFRunLoopRef runloop, CFStringRef runloopMode);
1220 int FSGetAsyncUnmountStatus (FSVolumeOperation volumeOp, FSUnmountStatus* status, OSStatus* volumeOpStatus, FSVolumeRefNum* volumeRefNum, pid_t* dissenter, void** clientData);
1221 int FSCancelVolumeOperation (FSVolumeOperation volumeOp);
1222 int FSEjectVolumeSync (short vRefNum, uint flags, pid_t* dissenter);
1223 int FSEjectVolumeAsync (short vRefNum, uint flags, FSVolumeOperation volumeOp, void* clientData, FSVolumeEjectUPP callback, CFRunLoopRef runloop, CFStringRef runloopMode);
1224 int FSGetAsyncEjectStatus (FSVolumeOperation volumeOp, FSEjectStatus* status, OSStatus* volumeOpStatus, FSVolumeRefNum* volumeRefNum, pid_t* dissenter, void** clientData);
1225 int FSCopyDiskIDForVolume (short vRefNum, CFStringRef* diskID);
1226 int FSCopyURLForVolume (short vRefNum, CFURLRef* url);
1227 int FSGetVolumeForDiskID (CFStringRef diskID, FSVolumeRefNum* vRefNum);
1228 int FSCopyDADiskForVolume (short vRefNum, DADiskRef* disk);
1229 int FSGetVolumeForDADisk (DADiskRef disk, FSVolumeRefNum* vRefNum);
1230 int FSCopyObjectSync (FSRef* source, FSRef* destDir, CFStringRef destName, FSRef* target, uint options);
1231 int FSMoveObjectSync (FSRef* source, FSRef* destDir, CFStringRef destName, FSRef* target, uint options);
1232 int FSMoveObjectToTrashSync (FSRef* source, FSRef* target, uint options);
1233 int FSPathCopyObjectSync (char* sourcePath, char* destDirPath, CFStringRef destName, char** targetPath, uint options);
1234 int FSPathMoveObjectSync (char* sourcePath, char* destDirPath, CFStringRef destName, char** targetPath, uint options);
1235 int FSPathMoveObjectToTrashSync (char* sourcePath, char** targetPath, uint options);
1236 uint FSFileOperationGetTypeID ();
1237 FSFileOperationRef FSFileOperationCreate (CFAllocatorRef alloc);
1238 int FSFileOperationScheduleWithRunLoop (FSFileOperationRef fileOp, CFRunLoopRef runLoop, CFStringRef runLoopMode);
1239 int FSFileOperationUnscheduleFromRunLoop (FSFileOperationRef fileOp, CFRunLoopRef runLoop, CFStringRef runLoopMode);
1240 int FSCopyObjectAsync (FSFileOperationRef fileOp, FSRef* source, FSRef* destDir, CFStringRef destName, uint flags, FSFileOperationStatusProcPtr callback, double statusChangeInterval, FSFileOperationClientContext* clientContext);
1241 int FSMoveObjectAsync (FSFileOperationRef fileOp, FSRef* source, FSRef* destDir, CFStringRef destName, uint flags, FSFileOperationStatusProcPtr callback, double statusChangeInterval, FSFileOperationClientContext* clientContext);
1242 int FSMoveObjectToTrashAsync (FSFileOperationRef fileOp, FSRef* source, uint flags, FSFileOperationStatusProcPtr callback, double statusChangeInterval, FSFileOperationClientContext* clientContext);
1243 int FSPathCopyObjectAsync (FSFileOperationRef fileOp, char* sourcePath, char* destDirPath, CFStringRef destName, uint flags, FSPathFileOperationStatusProcPtr callback, double statusChangeInterval, FSFileOperationClientContext* clientContext);
1244 int FSPathMoveObjectAsync (FSFileOperationRef fileOp, char* sourcePath, char* destDirPath, CFStringRef destName, uint flags, FSPathFileOperationStatusProcPtr callback, double statusChangeInterval, FSFileOperationClientContext* clientContext);
1245 int FSPathMoveObjectToTrashAsync (FSFileOperationRef fileOp, char* sourcePath, uint flags, FSPathFileOperationStatusProcPtr callback, double statusChangeInterval, FSFileOperationClientContext* clientContext);
1246 int FSFileOperationCancel (FSFileOperationRef fileOp);
1247 int FSFileOperationCopyStatus (FSFileOperationRef fileOp, FSRef* currentItem, FSFileOperationStage* stage, OSStatus* error, CFDictionaryRef* statusDictionary, void** info);
1248 int FSPathFileOperationCopyStatus (FSFileOperationRef fileOp, char** currentItem, FSFileOperationStage* stage, OSStatus* error, CFDictionaryRef* statusDictionary, void** info);
1249 CFStringRef FSCreateStringFromHFSUniStr (CFAllocatorRef alloc, HFSUniStr255* uniStr);
1250 int FSGetHFSUniStrFromString (CFStringRef theString, HFSUniStr255* uniStr);
1251 uint FSFileSecurityGetTypeID ();
1252 FSFileSecurityRef FSFileSecurityCreate (CFAllocatorRef alloc);
1253 FSFileSecurityRef FSFileSecurityCreateWithFSPermissionInfo (CFAllocatorRef alloc, FSPermissionInfo* permissions);
1254 FSFileSecurityRef FSFileSecurityRefCreateCopy (CFAllocatorRef alloc, FSFileSecurityRef fileSec);
1255 int FSFileSecurityGetOwnerUUID (FSFileSecurityRef fileSec, CFUUIDBytes* owner);
1256 int FSFileSecuritySetOwnerUUID (FSFileSecurityRef fileSec, CFUUIDBytes* owner);
1257 int FSFileSecurityGetGroupUUID (FSFileSecurityRef fileSec, CFUUIDBytes* group);
1258 int FSFileSecuritySetGroupUUID (FSFileSecurityRef fileSec, CFUUIDBytes* group);
1259 int FSFileSecurityCopyAccessControlList (FSFileSecurityRef fileSec, acl_t* accessControlList);
1260 int FSFileSecuritySetAccessControlList (FSFileSecurityRef fileSec, acl_t accessControlList);
1261 int FSFileSecurityGetOwner (FSFileSecurityRef fileSec, UInt32* owner);
1262 int FSFileSecuritySetOwner (FSFileSecurityRef fileSec, uint owner);
1263 int FSFileSecurityGetGroup (FSFileSecurityRef fileSec, UInt32* group);
1264 int FSFileSecuritySetGroup (FSFileSecurityRef fileSec, uint group);
1265 int FSFileSecurityGetMode (FSFileSecurityRef fileSec, UInt16* mode);
1266 int FSFileSecuritySetMode (FSFileSecurityRef fileSec, ushort mode);
1267 int FSGetVolumeParms (short volume, GetVolParmsInfoBuffer* buffer, uint bufferSize);
1268 int FSGetVolumeMountInfoSize (short volume, ByteCount* size);
1269 int FSGetVolumeMountInfo (short volume, char* buffer, uint bufferSize, ByteCount* actualSize);
1270 int FSVolumeMount (char* buffer, FSVolumeRefNum* mountedVolume);
1271 int FSFlushVolume (short vRefNum);
1272 int PBFlushVolumeSync (FSRefParamPtr paramBlock);
1273 int PBFlushVolumeAsync (FSRefParamPtr paramBlock);
1274 int PBFSCopyFileSync (FSRefParamPtr paramBlock);
1275 int PBFSCopyFileAsync (FSRefParamPtr paramBlock);
1276 int FSResolveNodeID (short volume, uint nodeID, FSRefPtr newRef);
1277 int PBFSResolveNodeIDSync (FSRefParamPtr paramBlock);
1278 int PBFSResolveNodeIDAsync (FSRefParamPtr paramBlock);
1279 }