Files.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:276k
- /*
- File: Files.h
-
- Contains: File Manager (MFS, HFS, and HFS+) Interfaces.
-
- Version: Technology: Mac OS 8.5
- Release: QuickTime 6.0.2
-
- Copyright: (c) 1985-2001 by Apple Computer, Inc., all rights reserved
-
- Bugs?: For bug reports, consult the following page on
- the World Wide Web:
-
- http://developer.apple.com/bugreporter/
-
- */
- #ifndef __FILES__
- #define __FILES__
- #ifndef __MACTYPES__
- #include "MacTypes.h"
- #endif
- #ifndef __MIXEDMODE__
- #include "MixedMode.h"
- #endif
- #ifndef __OSUTILS__
- #include "OSUtils.h"
- #endif
- #ifndef __TEXTCOMMON__
- #include "TextCommon.h"
- #endif
- #ifndef __UTCUTILS__
- #include "UTCUtils.h"
- #endif
- /* Finder constants were moved to Finder.* */
- #ifndef __FINDER__
- #include "Finder.h"
- #endif
- #if PRAGMA_ONCE
- #pragma once
- #endif
- #ifdef __cplusplus
- extern "C" {
- #endif
- #if PRAGMA_IMPORT
- #pragma import on
- #endif
- #if PRAGMA_STRUCT_ALIGN
- #pragma options align=mac68k
- #elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(push, 2)
- #elif PRAGMA_STRUCT_PACK
- #pragma pack(2)
- #endif
- /* HFSUniStr255 is the Unicode equivalent of Str255 */
- struct HFSUniStr255 {
- UInt16 length; /* number of unicode characters */
- UniChar unicode[255]; /* unicode characters */
- };
- typedef struct HFSUniStr255 HFSUniStr255;
- typedef const HFSUniStr255 * ConstHFSUniStr255Param;
- enum {
- fsCurPerm = 0x00, /* open access permissions in ioPermssn */
- fsRdPerm = 0x01,
- fsWrPerm = 0x02,
- fsRdWrPerm = 0x03,
- fsRdWrShPerm = 0x04,
- fsRdDenyPerm = 0x10, /* for use with OpenDeny and OpenRFDeny */
- fsWrDenyPerm = 0x20 /* for use with OpenDeny and OpenRFDeny */
- };
- enum {
- fsRtParID = 1,
- fsRtDirID = 2
- };
- enum {
- fsAtMark = 0, /* positioning modes in ioPosMode */
- fsFromStart = 1,
- fsFromLEOF = 2,
- fsFromMark = 3
- };
- enum {
- /* ioPosMode flags */
- pleaseCacheBit = 4, /* please cache this request */
- pleaseCacheMask = 0x0010,
- noCacheBit = 5, /* please don't cache this request */
- noCacheMask = 0x0020,
- rdVerifyBit = 6, /* read verify mode */
- rdVerifyMask = 0x0040,
- rdVerify = 64, /* old name of rdVerifyMask */
- forceReadBit = 6,
- forceReadMask = 0x0040,
- newLineBit = 7, /* newline mode */
- newLineMask = 0x0080,
- newLineCharMask = 0xFF00 /* newline character */
- };
- enum {
- /* CatSearch Search bitmask Constants */
- fsSBPartialName = 1,
- fsSBFullName = 2,
- fsSBFlAttrib = 4,
- fsSBFlFndrInfo = 8,
- fsSBFlLgLen = 32,
- fsSBFlPyLen = 64,
- fsSBFlRLgLen = 128,
- fsSBFlRPyLen = 256,
- fsSBFlCrDat = 512,
- fsSBFlMdDat = 1024,
- fsSBFlBkDat = 2048,
- fsSBFlXFndrInfo = 4096,
- fsSBFlParID = 8192,
- fsSBNegate = 16384,
- fsSBDrUsrWds = 8,
- fsSBDrNmFls = 16,
- fsSBDrCrDat = 512,
- fsSBDrMdDat = 1024,
- fsSBDrBkDat = 2048,
- fsSBDrFndrInfo = 4096,
- fsSBDrParID = 8192
- };
- enum {
- /* CatSearch Search bit value Constants */
- fsSBPartialNameBit = 0, /*ioFileName points to a substring*/
- fsSBFullNameBit = 1, /*ioFileName points to a match string*/
- fsSBFlAttribBit = 2, /*search includes file attributes*/
- fsSBFlFndrInfoBit = 3, /*search includes finder info*/
- fsSBFlLgLenBit = 5, /*search includes data logical length*/
- fsSBFlPyLenBit = 6, /*search includes data physical length*/
- fsSBFlRLgLenBit = 7, /*search includes resource logical length*/
- fsSBFlRPyLenBit = 8, /*search includes resource physical length*/
- fsSBFlCrDatBit = 9, /*search includes create date*/
- fsSBFlMdDatBit = 10, /*search includes modification date*/
- fsSBFlBkDatBit = 11, /*search includes backup date*/
- fsSBFlXFndrInfoBit = 12, /*search includes extended finder info*/
- fsSBFlParIDBit = 13, /*search includes file's parent ID*/
- fsSBNegateBit = 14, /*return all non-matches*/
- fsSBDrUsrWdsBit = 3, /*search includes directory finder info*/
- fsSBDrNmFlsBit = 4, /*search includes directory valence*/
- fsSBDrCrDatBit = 9, /*directory-named version of fsSBFlCrDatBit*/
- fsSBDrMdDatBit = 10, /*directory-named version of fsSBFlMdDatBit*/
- fsSBDrBkDatBit = 11, /*directory-named version of fsSBFlBkDatBit*/
- fsSBDrFndrInfoBit = 12, /*directory-named version of fsSBFlXFndrInfoBit*/
- fsSBDrParIDBit = 13 /*directory-named version of fsSBFlParIDBit*/
- };
- enum {
- /* vMAttrib (GetVolParms) bit position constants */
- 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, /* asynchronous requests to this volume are handled correctly at any time*/
- bSupportsTrashVolumeCache = 2
- };
- enum {
- /* vMExtendedAttributes (GetVolParms) bit position constants */
- bIsEjectable = 0, /* volume is in an ejectable disk drive */
- bSupportsHFSPlusAPIs = 1, /* volume supports HFS Plus APIs directly (not through compatibility layer) */
- bSupportsFSCatalogSearch = 2, /* volume supports FSCatalogSearch */
- bSupportsFSExchangeObjects = 3, /* volume supports FSExchangeObjects */
- bSupports2TBFiles = 4, /* volume supports supports 2 terabyte files */
- bSupportsLongNames = 5, /* volume supports file/directory/volume names longer than 31 characters */
- bSupportsMultiScriptNames = 6, /* volume supports file/directory/volume names with characters from multiple script systems */
- bSupportsNamedForks = 7, /* volume supports forks beyond the data and resource forks */
- bSupportsSubtreeIterators = 8, /* volume supports recursive iterators not at the volume root */
- bL2PCanMapFileBlocks = 9, /* volume supports Lg2Phys SPI correctly */
- bAllowCDiDataHandler = 17 /* allow QuickTime's CDi data handler to examine this volume */
- };
- enum {
- /* Desktop Database icon Constants */
- kLargeIcon = 1,
- kLarge4BitIcon = 2,
- kLarge8BitIcon = 3,
- kSmallIcon = 4,
- kSmall4BitIcon = 5,
- kSmall8BitIcon = 6
- };
- enum {
- kLargeIconSize = 256,
- kLarge4BitIconSize = 512,
- kLarge8BitIconSize = 1024,
- kSmallIconSize = 64,
- kSmall4BitIconSize = 128,
- kSmall8BitIconSize = 256
- };
- enum {
- /* Large Volume Constants */
- kWidePosOffsetBit = 8,
- kUseWidePositioning = (1 << kWidePosOffsetBit),
- kMaximumBlocksIn4GB = 0x007FFFFF
- };
- enum {
- /* Foreign Privilege Model Identifiers */
- fsUnixPriv = 1
- };
- enum {
- /* Authentication Constants */
- kNoUserAuthentication = 1,
- kPassword = 2,
- kEncryptPassword = 3,
- kTwoWayEncryptPassword = 6
- };
- /* mapping codes (ioObjType) for MapName & MapID */
- enum {
- kOwnerID2Name = 1,
- kGroupID2Name = 2,
- kOwnerName2ID = 3,
- kGroupName2ID = 4, /* types of oj object to be returned (ioObjType) for _GetUGEntry */
- kReturnNextUser = 1,
- kReturnNextGroup = 2,
- kReturnNextUG = 3
- };
- /* vcbFlags bits */
- enum {
- kVCBFlagsIdleFlushBit = 3, /* Set if volume should be flushed at idle time */
- kVCBFlagsIdleFlushMask = 0x0008,
- kVCBFlagsHFSPlusAPIsBit = 4, /* Set if volume implements HFS Plus APIs itself (not via emulation) */
- kVCBFlagsHFSPlusAPIsMask = 0x0010,
- kVCBFlagsHardwareGoneBit = 5, /* Set if disk driver returned a hardwareGoneErr to Read or Write */
- kVCBFlagsHardwareGoneMask = 0x0020,
- kVCBFlagsVolumeDirtyBit = 15, /* Set if volume information has changed since the last FlushVol */
- kVCBFlagsVolumeDirtyMask = 0x8000
- };
- /* ioFlAttrib bits returned by PBGetCatInfo */
- enum {
- /* file and directory attributes in ioFlAttrib */
- kioFlAttribLockedBit = 0, /* Set if file or directory is locked */
- kioFlAttribLockedMask = 0x01,
- kioFlAttribResOpenBit = 2, /* Set if resource fork is open */
- kioFlAttribResOpenMask = 0x04,
- kioFlAttribDataOpenBit = 3, /* Set if data fork is open */
- kioFlAttribDataOpenMask = 0x08,
- kioFlAttribDirBit = 4, /* Set if this is a directory */
- kioFlAttribDirMask = 0x10,
- ioDirFlg = 4, /* Set if this is a directory (old name) */
- ioDirMask = 0x10,
- kioFlAttribCopyProtBit = 6, /* Set if AppleShare server "copy-protects" the file */
- kioFlAttribCopyProtMask = 0x40,
- kioFlAttribFileOpenBit = 7, /* Set if file (either fork) is open */
- kioFlAttribFileOpenMask = 0x80, /* ioFlAttrib for directories only */
- kioFlAttribInSharedBit = 2, /* Set if the directory is within a shared area of the directory hierarchy */
- kioFlAttribInSharedMask = 0x04,
- kioFlAttribMountedBit = 3, /* Set if the directory is a share point that is mounted by some user */
- kioFlAttribMountedMask = 0x08,
- kioFlAttribSharePointBit = 5, /* Set if the directory is a share point */
- kioFlAttribSharePointMask = 0x20
- };
- /* ioFCBFlags bits returned by PBGetFCBInfo */
- enum {
- kioFCBWriteBit = 8, /* Data can be written to this file */
- kioFCBWriteMask = 0x0100,
- kioFCBResourceBit = 9, /* This file is a resource fork */
- kioFCBResourceMask = 0x0200,
- kioFCBWriteLockedBit = 10, /* File has a locked byte range */
- kioFCBWriteLockedMask = 0x0400,
- kioFCBLargeFileBit = 11, /* File may grow beyond 2GB; cache uses file blocks, not bytes */
- kioFCBLargeFileMask = 0x0800,
- kioFCBSharedWriteBit = 12, /* File is open for shared write access */
- kioFCBSharedWriteMask = 0x1000,
- kioFCBFileLockedBit = 13, /* File is locked (write-protected) */
- kioFCBFileLockedMask = 0x2000,
- kioFCBOwnClumpBit = 14, /* File has clump size specified in FCB */
- kioFCBOwnClumpMask = 0x4000,
- kioFCBModifiedBit = 15, /* File has changed since it was last flushed */
- kioFCBModifiedMask = 0x8000
- };
- /* ioACUser bits returned by PBGetCatInfo */
- /* Note: you must clear ioACUser before calling PBGetCatInfo because some file systems do not use this field */
- enum {
- kioACUserNoSeeFolderBit = 0, /* Set if user does not have See Folder privileges */
- kioACUserNoSeeFolderMask = 0x01,
- kioACUserNoSeeFilesBit = 1, /* Set if user does not have See Files privileges */
- kioACUserNoSeeFilesMask = 0x02,
- kioACUserNoMakeChangesBit = 2, /* Set if user does not have Make Changes privileges */
- kioACUserNoMakeChangesMask = 0x04,
- kioACUserNotOwnerBit = 7, /* Set if user is not owner of the directory */
- kioACUserNotOwnerMask = 0x80
- };
- /* Folder and File values of access privileges in ioACAccess */
- enum {
- kioACAccessOwnerBit = 31, /* User is owner of directory */
- kioACAccessOwnerMask = (long)0x80000000,
- kioACAccessBlankAccessBit = 28, /* Directory has blank access privileges */
- kioACAccessBlankAccessMask = 0x10000000,
- kioACAccessUserWriteBit = 26, /* User has write privileges */
- kioACAccessUserWriteMask = 0x04000000,
- kioACAccessUserReadBit = 25, /* User has read privileges */
- kioACAccessUserReadMask = 0x02000000,
- kioACAccessUserSearchBit = 24, /* User has search privileges */
- kioACAccessUserSearchMask = 0x01000000,
- kioACAccessEveryoneWriteBit = 18, /* Everyone has write privileges */
- kioACAccessEveryoneWriteMask = 0x00040000,
- kioACAccessEveryoneReadBit = 17, /* Everyone has read privileges */
- kioACAccessEveryoneReadMask = 0x00020000,
- kioACAccessEveryoneSearchBit = 16, /* Everyone has search privileges */
- kioACAccessEveryoneSearchMask = 0x00010000,
- kioACAccessGroupWriteBit = 10, /* Group has write privileges */
- kioACAccessGroupWriteMask = 0x00000400,
- kioACAccessGroupReadBit = 9, /* Group has read privileges */
- kioACAccessGroupReadMask = 0x00000200,
- kioACAccessGroupSearchBit = 8, /* Group has search privileges */
- kioACAccessGroupSearchMask = 0x00000100,
- kioACAccessOwnerWriteBit = 2, /* Owner has write privileges */
- kioACAccessOwnerWriteMask = 0x00000004,
- kioACAccessOwnerReadBit = 1, /* Owner has read privileges */
- kioACAccessOwnerReadMask = 0x00000002,
- kioACAccessOwnerSearchBit = 0, /* Owner has search privileges */
- kioACAccessOwnerSearchMask = 0x00000001,
- kfullPrivileges = 0x00070007, /* all privileges for everybody and owner*/
- kownerPrivileges = 0x00000007 /* all privileges for owner only*/
- };
- /* values of user IDs and group IDs */
- enum {
- knoUser = 0,
- kadministratorUser = 1
- };
- enum {
- knoGroup = 0
- };
- struct GetVolParmsInfoBuffer {
- short vMVersion; /*version number*/
- long vMAttrib; /*bit vector of attributes (see vMAttrib constants)*/
- Handle vMLocalHand; /*handle to private data*/
- long vMServerAdr; /*AppleTalk server address or zero*/
- /* vMVersion 1 GetVolParmsInfoBuffer ends here */
- long vMVolumeGrade; /*approx. speed rating or zero if unrated*/
- short vMForeignPrivID; /*foreign privilege model supported or zero if none*/
- /* vMVersion 2 GetVolParmsInfoBuffer ends here */
- long vMExtendedAttributes; /*extended attribute bits (see vMExtendedAttributes constants)*/
- /* vMVersion 3 GetVolParmsInfoBuffer ends here */
- };
- typedef struct GetVolParmsInfoBuffer GetVolParmsInfoBuffer;
- typedef union ParamBlockRec ParamBlockRec;
- typedef ParamBlockRec * ParmBlkPtr;
- typedef CALLBACK_API( void , IOCompletionProcPtr )(ParmBlkPtr paramBlock);
- /*
- WARNING: IOCompletionProcPtr uses register based parameters under classic 68k
- and cannot be written in a high-level language without
- the help of mixed mode or assembly glue.
- */
- typedef REGISTER_UPP_TYPE(IOCompletionProcPtr) IOCompletionUPP;
- struct IOParam {
- QElemPtr qLink; /*queue link in header*/
- short qType; /*type byte for safety check*/
- short ioTrap; /*FS: the Trap*/
- Ptr ioCmdAddr; /*FS: address to dispatch to*/
- IOCompletionUPP ioCompletion; /*completion routine addr (0 for synch calls)*/
- volatile OSErr ioResult; /*result code*/
- StringPtr ioNamePtr; /*ptr to Vol:FileName string*/
- short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/
- short ioRefNum; /*refNum for I/O operation*/
- SInt8 ioVersNum; /*version number*/
- SInt8 ioPermssn; /*Open: permissions (byte)*/
- Ptr ioMisc; /*Rename: new name (GetEOF,SetEOF: logical end of file) (Open: optional ptr to buffer) (SetFileType: new type)*/
- Ptr ioBuffer; /*data buffer Ptr*/
- long ioReqCount; /*requested byte count; also = ioNewDirID*/
- long ioActCount; /*actual byte count completed*/
- short ioPosMode; /*initial file positioning*/
- long ioPosOffset; /*file position offset*/
- };
- typedef struct IOParam IOParam;
- typedef IOParam * IOParamPtr;
- struct FileParam {
- QElemPtr qLink; /*queue link in header*/
- short qType; /*type byte for safety check*/
- short ioTrap; /*FS: the Trap*/
- Ptr ioCmdAddr; /*FS: address to dispatch to*/
- IOCompletionUPP ioCompletion; /*completion routine addr (0 for synch calls)*/
- volatile OSErr ioResult; /*result code*/
- StringPtr ioNamePtr; /*ptr to Vol:FileName string*/
- short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/
- short ioFRefNum; /*reference number*/
- SInt8 ioFVersNum; /*version number*/
- SInt8 filler1;
- short ioFDirIndex; /*GetFInfo directory index*/
- SInt8 ioFlAttrib; /*GetFInfo: in-use bit=7, lock bit=0*/
- SInt8 ioFlVersNum; /*file version number*/
- FInfo ioFlFndrInfo; /*user info*/
- unsigned long ioFlNum; /*GetFInfo: file number; TF- ioDirID*/
- unsigned short ioFlStBlk; /*start file block (0 if none)*/
- long ioFlLgLen; /*logical length (EOF)*/
- long ioFlPyLen; /*physical length*/
- unsigned short ioFlRStBlk; /*start block rsrc fork*/
- long ioFlRLgLen; /*file logical length rsrc fork*/
- long ioFlRPyLen; /*file physical length rsrc fork*/
- unsigned long ioFlCrDat; /*file creation date& time (32 bits in secs)*/
- unsigned long ioFlMdDat; /*last modified date and time*/
- };
- typedef struct FileParam FileParam;
- typedef FileParam * FileParamPtr;
- struct VolumeParam {
- QElemPtr qLink; /*queue link in header*/
- short qType; /*type byte for safety check*/
- short ioTrap; /*FS: the Trap*/
- Ptr ioCmdAddr; /*FS: address to dispatch to*/
- IOCompletionUPP ioCompletion; /*completion routine addr (0 for synch calls)*/
- volatile OSErr ioResult; /*result code*/
- StringPtr ioNamePtr; /*ptr to Vol:FileName string*/
- short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/
- long filler2;
- short ioVolIndex; /*volume index number*/
- unsigned long ioVCrDate; /*creation date and time*/
- unsigned long ioVLsBkUp; /*last backup date and time*/
- unsigned short ioVAtrb; /*volume attrib*/
- unsigned short ioVNmFls; /*number of files in directory*/
- unsigned short ioVDirSt; /*start block of file directory*/
- short ioVBlLn; /*GetVolInfo: length of dir in blocks*/
- unsigned short ioVNmAlBlks; /*for compatibilty ioVNmAlBlks * ioVAlBlkSiz <= 2 GB*/
- unsigned long ioVAlBlkSiz; /*for compatibilty ioVAlBlkSiz is <= $0000FE00 (65,024)*/
- unsigned long ioVClpSiz; /*GetVolInfo: bytes to allocate at a time*/
- unsigned short ioAlBlSt; /*starting disk(512-byte) block in block map*/
- unsigned long ioVNxtFNum; /*GetVolInfo: next free file number*/
- unsigned short ioVFrBlk; /*GetVolInfo: # free alloc blks for this vol*/
- };
- typedef struct VolumeParam VolumeParam;
- typedef VolumeParam * VolumeParamPtr;
- struct CntrlParam {
- QElemPtr qLink; /*queue link in header*/
- short qType; /*type byte for safety check*/
- short ioTrap; /*FS: the Trap*/
- Ptr ioCmdAddr; /*FS: address to dispatch to*/
- IOCompletionUPP ioCompletion; /*completion routine addr (0 for synch calls)*/
- volatile OSErr ioResult; /*result code*/
- StringPtr ioNamePtr; /*ptr to Vol:FileName string*/
- short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/
- short ioCRefNum; /*refNum for I/O operation*/
- short csCode; /*word for control status code*/
- short csParam[11]; /*operation-defined parameters*/
- };
- typedef struct CntrlParam CntrlParam;
- typedef CntrlParam * CntrlParamPtr;
- struct SlotDevParam {
- QElemPtr qLink; /*queue link in header*/
- short qType; /*type byte for safety check*/
- short ioTrap; /*FS: the Trap*/
- Ptr ioCmdAddr; /*FS: address to dispatch to*/
- IOCompletionUPP ioCompletion; /*completion routine addr (0 for synch calls)*/
- volatile OSErr ioResult; /*result code*/
- StringPtr ioNamePtr; /*ptr to Vol:FileName string*/
- short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/
- short ioSRefNum;
- SInt8 ioSVersNum;
- SInt8 ioSPermssn;
- Ptr ioSMix;
- short ioSFlags;
- SInt8 ioSlot;
- SInt8 ioID;
- };
- typedef struct SlotDevParam SlotDevParam;
- typedef SlotDevParam * SlotDevParamPtr;
- struct MultiDevParam {
- QElemPtr qLink; /*queue link in header*/
- short qType; /*type byte for safety check*/
- short ioTrap; /*FS: the Trap*/
- Ptr ioCmdAddr; /*FS: address to dispatch to*/
- IOCompletionUPP ioCompletion; /*completion routine addr (0 for synch calls)*/
- volatile OSErr ioResult; /*result code*/
- StringPtr ioNamePtr; /*ptr to Vol:FileName string*/
- short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/
- short ioMRefNum;
- SInt8 ioMVersNum;
- SInt8 ioMPermssn;
- Ptr ioMMix;
- short ioMFlags;
- Ptr ioSEBlkPtr;
- };
- typedef struct MultiDevParam MultiDevParam;
- typedef MultiDevParam * MultiDevParamPtr;
- union ParamBlockRec {
- IOParam ioParam;
- FileParam fileParam;
- VolumeParam volumeParam;
- CntrlParam cntrlParam;
- SlotDevParam slotDevParam;
- MultiDevParam multiDevParam;
- };
- struct HFileInfo {
- QElemPtr qLink; /*queue link in header*/
- short qType; /*type byte for safety check*/
- short ioTrap; /*FS: the Trap*/
- Ptr ioCmdAddr; /*FS: address to dispatch to*/
- IOCompletionUPP ioCompletion; /*completion routine addr (0 for synch calls)*/
- volatile OSErr ioResult; /*result code*/
- StringPtr ioNamePtr; /*ptr to Vol:FileName string*/
- short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/
- short ioFRefNum;
- SInt8 ioFVersNum;
- SInt8 filler1;
- short ioFDirIndex;
- SInt8 ioFlAttrib;
- SInt8 ioACUser;
- FInfo ioFlFndrInfo;
- long ioDirID;
- unsigned short ioFlStBlk;
- long ioFlLgLen;
- long ioFlPyLen;
- unsigned short ioFlRStBlk;
- long ioFlRLgLen;
- long ioFlRPyLen;
- unsigned long ioFlCrDat;
- unsigned long ioFlMdDat;
- unsigned long ioFlBkDat;
- FXInfo ioFlXFndrInfo;
- long ioFlParID;
- long ioFlClpSiz;
- };
- typedef struct HFileInfo HFileInfo;
- struct DirInfo {
- QElemPtr qLink; /*queue link in header*/
- short qType; /*type byte for safety check*/
- short ioTrap; /*FS: the Trap*/
- Ptr ioCmdAddr; /*FS: address to dispatch to*/
- IOCompletionUPP ioCompletion; /*completion routine addr (0 for synch calls)*/
- volatile OSErr ioResult; /*result code*/
- StringPtr ioNamePtr; /*ptr to Vol:FileName string*/
- short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/
- short ioFRefNum;
- SInt8 ioFVersNum;
- SInt8 filler1;
- short ioFDirIndex;
- SInt8 ioFlAttrib;
- SInt8 ioACUser;
- DInfo ioDrUsrWds;
- long ioDrDirID;
- unsigned short ioDrNmFls;
- short filler3[9];
- unsigned long ioDrCrDat;
- unsigned long ioDrMdDat;
- unsigned long ioDrBkDat;
- DXInfo ioDrFndrInfo;
- long ioDrParID;
- };
- typedef struct DirInfo DirInfo;
- union CInfoPBRec {
- HFileInfo hFileInfo;
- DirInfo dirInfo;
- };
- typedef union CInfoPBRec CInfoPBRec;
- typedef CInfoPBRec * CInfoPBPtr;
- struct XCInfoPBRec {
- QElemPtr qLink;
- short qType;
- short ioTrap;
- Ptr ioCmdAddr;
- ProcPtr ioCompletion; /* --> A pointer to a completion routine */
- volatile OSErr ioResult; /* --> The result code of the function */
- StringPtr ioNamePtr; /* --> Pointer to pathname to object */
- short ioVRefNum; /* --> A volume specification */
- long filler1;
- StringPtr ioShortNamePtr; /* <-> A pointer to the short name string buffer - required! */
- short filler2;
- short ioPDType; /* <-- The ProDOS file type */
- long ioPDAuxType; /* <-- The ProDOS aux type */
- long filler3[2];
- long ioDirID; /* --> A directory ID */
- };
- typedef struct XCInfoPBRec XCInfoPBRec;
- typedef XCInfoPBRec * XCInfoPBPtr;
- /* Catalog position record */
- struct CatPositionRec {
- long initialize;
- short priv[6];
- };
- typedef struct CatPositionRec CatPositionRec;
- struct FSSpec {
- short vRefNum;
- long parID;
- StrFileName name; /* a Str63 on MacOS*/
- };
- typedef struct FSSpec FSSpec;
- typedef FSSpec * FSSpecPtr;
- typedef FSSpecPtr * FSSpecHandle;
- /* pointer to array of FSSpecs */
- typedef FSSpecPtr FSSpecArrayPtr;
- /*
- The only difference between "const FSSpec*" and "ConstFSSpecPtr" is
- that as a parameter, ConstFSSpecPtr is allowed to be NULL
- */
- typedef const FSSpec * ConstFSSpecPtr;
- /*
- The following are structures to be filled out with the _PBGetVolMountInfo call
- and passed back into the _PBVolumeMount call for external file system mounts.
- */
- /* the "signature" of the file system */
- typedef OSType VolumeType;
- enum {
- /* the signature for AppleShare */
- AppleShareMediaType = FOUR_CHAR_CODE('afpm')
- };
- /*
- VolMount stuff was once in FSM.*
- */
- struct VolMountInfoHeader {
- short length; /* length of location data (including self) */
- VolumeType media; /* type of media. Variable length data follows */
- };
- typedef struct VolMountInfoHeader VolMountInfoHeader;
- typedef VolMountInfoHeader * VolMountInfoPtr;
- /* The new volume mount info record. The old one is included for compatibility.
- the new record allows access by foriegn filesystems writers to the flags
- portion of the record. This portion is now public.
- */
- struct VolumeMountInfoHeader {
- short length; /* length of location data (including self) */
- VolumeType media; /* type of media (must be registered with Apple) */
- short flags; /* volume mount flags. Variable length data follows */
- };
- typedef struct VolumeMountInfoHeader VolumeMountInfoHeader;
- typedef VolumeMountInfoHeader * VolumeMountInfoHeaderPtr;
- /* volume mount flags */
- enum {
- volMountNoLoginMsgFlagBit = 0, /* Input to VolumeMount: If set, the file system */
- volMountNoLoginMsgFlagMask = 0x0001, /* should suppresss any log-in message/greeting dialog */
- volMountExtendedFlagsBit = 7, /* Input to VolumeMount: If set, the mount info is a */
- volMountExtendedFlagsMask = 0x0080, /* AFPXVolMountInfo record for 3.7 AppleShare Client */
- volMountInteractBit = 15, /* Input to VolumeMount: If set, it's OK for the file system */
- volMountInteractMask = 0x8000, /* to perform user interaction to mount the volume */
- volMountChangedBit = 14, /* Output from VoumeMount: If set, the volume was mounted, but */
- volMountChangedMask = 0x4000, /* the volume mounting information record needs to be updated. */
- volMountFSReservedMask = 0x00FF, /* bits 0-7 are defined by each file system for its own use */
- volMountSysReservedMask = 0xFF00 /* bits 8-15 are reserved for Apple system use */
- };
- struct AFPVolMountInfo {
- short length; /* length of location data (including self) */
- VolumeType media; /* type of media */
- short flags; /* bits for no messages, no reconnect */
- SInt8 nbpInterval; /* NBP Interval parameter (IM2, p.322) */
- SInt8 nbpCount; /* NBP Interval parameter (IM2, p.322) */
- short uamType; /* User Authentication Method */
- short zoneNameOffset; /* short positive offset from start of struct to Zone Name */
- short serverNameOffset; /* offset to pascal Server Name string */
- short volNameOffset; /* offset to pascal Volume Name string */
- short userNameOffset; /* offset to pascal User Name string */
- short userPasswordOffset; /* offset to pascal User Password string */
- short volPasswordOffset; /* offset to pascal Volume Password string */
- char AFPData[144]; /* variable length data may follow */
- };
- typedef struct AFPVolMountInfo AFPVolMountInfo;
- typedef AFPVolMountInfo * AFPVolMountInfoPtr;
- /* AFPXVolMountInfo is the new AFP volume mount info record, requires the 3.7 AppleShare Client */
- struct AFPXVolMountInfo {
- short length; /* length of location data (including self) */
- VolumeType media; /* type of media */
- short flags; /* bits for no messages, no reconnect */
- SInt8 nbpInterval; /* NBP Interval parameter (IM2, p.322) */
- SInt8 nbpCount; /* NBP Interval parameter (IM2, p.322) */
- short uamType; /* User Authentication Method type */
- short zoneNameOffset; /* short positive offset from start of struct to Zone Name */
- short serverNameOffset; /* offset to pascal Server Name string */
- short volNameOffset; /* offset to pascal Volume Name string */
- short userNameOffset; /* offset to pascal User Name string */
- short userPasswordOffset; /* offset to pascal User Password string */
- short volPasswordOffset; /* offset to pascal Volume Password string */
- short extendedFlags; /* extended flags word */
- short uamNameOffset; /* offset to a pascal UAM name string */
- short alternateAddressOffset; /* offset to Alternate Addresses in tagged format */
- char AFPData[176]; /* variable length data may follow */
- };
- typedef struct AFPXVolMountInfo AFPXVolMountInfo;
- typedef AFPXVolMountInfo * AFPXVolMountInfoPtr;
- enum {
- kAFPExtendedFlagsAlternateAddressMask = 1 /* bit in AFPXVolMountInfo.extendedFlags that means alternateAddressOffset is used*/
- };
- enum {
- /* constants for use in AFPTagData.fType field*/
- kAFPTagTypeIP = 0x01, /* 4 byte IP address (MSB first) */
- kAFPTagTypeIPPort = 0x02, /* 4 byte IP address, 2 byte port (MSB first) */
- kAFPTagTypeDDP = 0x03, /* Net,Node,Socket Sent by the server, currently unused by the client */
- kAFPTagTypeDNS = 0x04 /* DNS name in address:port format (total length variable up to 254 chars of dns name) */
- };
- enum {
- /* constants for use in AFPTagData.fLength field*/
- kAFPTagLengthIP = 0x06,
- kAFPTagLengthIPPort = 0x08,
- kAFPTagLengthDDP = 0x06
- };
- struct AFPTagData {
- UInt8 fLength; /* length of this data tag including the fLength field */
- UInt8 fType;
- UInt8 fData[1]; /* variable length data */
- };
- typedef struct AFPTagData AFPTagData;
- struct AFPAlternateAddress {
- /* ooo.NOTE: fVersion was missing in 3.2 Universal Interfaces*/
- UInt8 fVersion; /* version of the structure (currently 0x00)*/
- UInt8 fAddressCount;
- UInt8 fAddressList[1]; /* actually variable length packed set of AFPTagData */
- };
- typedef struct AFPAlternateAddress AFPAlternateAddress;
- struct DTPBRec {
- QElemPtr qLink; /*queue link in header*/
- short qType; /*type byte for safety check*/
- short ioTrap; /*FS: the Trap*/
- Ptr ioCmdAddr; /*FS: address to dispatch to*/
- IOCompletionUPP ioCompletion; /*completion routine addr (0 for synch calls)*/
- volatile OSErr ioResult; /*result code*/
- StringPtr ioNamePtr; /*ptr to Vol:FileName string*/
- short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/
- short ioDTRefNum; /* desktop refnum */
- short ioIndex;
- long ioTagInfo;
- Ptr ioDTBuffer;
- long ioDTReqCount;
- long ioDTActCount;
- SInt8 ioFiller1;
- SInt8 ioIconType;
- short ioFiller2;
- long ioDirID;
- OSType ioFileCreator;
- OSType ioFileType;
- long ioFiller3;
- long ioDTLgLen;
- long ioDTPyLen;
- short ioFiller4[14];
- long ioAPPLParID;
- };
- typedef struct DTPBRec DTPBRec;
- typedef DTPBRec * DTPBPtr;
- struct HIOParam {
- QElemPtr qLink; /*queue link in header*/
- short qType; /*type byte for safety check*/
- short ioTrap; /*FS: the Trap*/
- Ptr ioCmdAddr; /*FS: address to dispatch to*/
- IOCompletionUPP ioCompletion; /*completion routine addr (0 for synch calls)*/
- volatile OSErr ioResult; /*result code*/
- StringPtr ioNamePtr; /*ptr to Vol:FileName string*/
- short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/
- short ioRefNum;
- SInt8 ioVersNum;
- SInt8 ioPermssn;
- Ptr ioMisc;
- Ptr ioBuffer;
- long ioReqCount;
- long ioActCount;
- short ioPosMode;
- long ioPosOffset;
- };
- typedef struct HIOParam HIOParam;
- typedef HIOParam * HIOParamPtr;
- struct HFileParam {
- QElemPtr qLink; /*queue link in header*/
- short qType; /*type byte for safety check*/
- short ioTrap; /*FS: the Trap*/
- Ptr ioCmdAddr; /*FS: address to dispatch to*/
- IOCompletionUPP ioCompletion; /*completion routine addr (0 for synch calls)*/
- volatile OSErr ioResult; /*result code*/
- StringPtr ioNamePtr; /*ptr to Vol:FileName string*/
- short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/
- short ioFRefNum;
- SInt8 ioFVersNum;
- SInt8 filler1;
- short ioFDirIndex;
- SInt8 ioFlAttrib;
- SInt8 ioFlVersNum;
- FInfo ioFlFndrInfo;
- long ioDirID;
- unsigned short ioFlStBlk;
- long ioFlLgLen;
- long ioFlPyLen;
- unsigned short ioFlRStBlk;
- long ioFlRLgLen;
- long ioFlRPyLen;
- unsigned long ioFlCrDat;
- unsigned long ioFlMdDat;
- };
- typedef struct HFileParam HFileParam;
- typedef HFileParam * HFileParamPtr;
- struct HVolumeParam {
- QElemPtr qLink; /*queue link in header*/
- short qType; /*type byte for safety check*/
- short ioTrap; /*FS: the Trap*/
- Ptr ioCmdAddr; /*FS: address to dispatch to*/
- IOCompletionUPP ioCompletion; /*completion routine addr (0 for synch calls)*/
- volatile OSErr ioResult; /*result code*/
- StringPtr ioNamePtr; /*ptr to Vol:FileName string*/
- short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/
- long filler2;
- short ioVolIndex;
- unsigned long ioVCrDate;
- unsigned long ioVLsMod;
- short ioVAtrb;
- unsigned short ioVNmFls;
- unsigned short ioVBitMap;
- unsigned short ioAllocPtr;
- unsigned short ioVNmAlBlks;
- unsigned long ioVAlBlkSiz;
- unsigned long ioVClpSiz;
- unsigned short ioAlBlSt;
- unsigned long ioVNxtCNID;
- unsigned short ioVFrBlk;
- unsigned short ioVSigWord;
- short ioVDrvInfo;
- short ioVDRefNum;
- short ioVFSID;
- unsigned long ioVBkUp;
- short ioVSeqNum;
- unsigned long ioVWrCnt;
- unsigned long ioVFilCnt;
- unsigned long ioVDirCnt;
- long ioVFndrInfo[8];
- };
- typedef struct HVolumeParam HVolumeParam;
- typedef HVolumeParam * HVolumeParamPtr;
- struct XIOParam {
- QElemPtr qLink;
- short qType;
- short ioTrap;
- Ptr ioCmdAddr;
- IOCompletionUPP ioCompletion;
- volatile OSErr ioResult;
- StringPtr ioNamePtr;
- short ioVRefNum;
- short ioRefNum;
- SInt8 ioVersNum;
- SInt8 ioPermssn;
- Ptr ioMisc;
- Ptr ioBuffer;
- long ioReqCount;
- long ioActCount;
- short ioPosMode; /* must have kUseWidePositioning bit set */
- wide ioWPosOffset; /* wide positioning offset */
- };
- typedef struct XIOParam XIOParam;
- typedef XIOParam * XIOParamPtr;
- struct XVolumeParam {
- QElemPtr qLink;
- short qType;
- short ioTrap;
- Ptr ioCmdAddr;
- IOCompletionUPP ioCompletion;
- volatile OSErr ioResult;
- StringPtr ioNamePtr;
- short ioVRefNum;
- unsigned long ioXVersion; /* this XVolumeParam version (0) */
- short ioVolIndex;
- unsigned long ioVCrDate;
- unsigned long ioVLsMod;
- short ioVAtrb;
- unsigned short ioVNmFls;
- unsigned short ioVBitMap;
- unsigned short ioAllocPtr;
- unsigned short ioVNmAlBlks;
- unsigned long ioVAlBlkSiz;
- unsigned long ioVClpSiz;
- unsigned short ioAlBlSt;
- unsigned long ioVNxtCNID;
- unsigned short ioVFrBlk;
- unsigned short ioVSigWord;
- short ioVDrvInfo;
- short ioVDRefNum;
- short ioVFSID;
- unsigned long ioVBkUp;
- short ioVSeqNum;
- unsigned long ioVWrCnt;
- unsigned long ioVFilCnt;
- unsigned long ioVDirCnt;
- long ioVFndrInfo[8];
- UInt64 ioVTotalBytes; /* total number of bytes on volume */
- UInt64 ioVFreeBytes; /* number of free bytes on volume */
- };
- typedef struct XVolumeParam XVolumeParam;
- typedef XVolumeParam * XVolumeParamPtr;
- struct AccessParam {
- QElemPtr qLink; /*queue link in header*/
- short qType; /*type byte for safety check*/
- short ioTrap; /*FS: the Trap*/
- Ptr ioCmdAddr; /*FS: address to dispatch to*/
- IOCompletionUPP ioCompletion; /*completion routine addr (0 for synch calls)*/
- volatile OSErr ioResult; /*result code*/
- StringPtr ioNamePtr; /*ptr to Vol:FileName string*/
- short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/
- short filler3;
- short ioDenyModes; /*access rights data*/
- short filler4;
- SInt8 filler5;
- SInt8 ioACUser; /*access rights for directory only*/
- long filler6;
- long ioACOwnerID; /*owner ID*/
- long ioACGroupID; /*group ID*/
- long ioACAccess; /*access rights*/
- long ioDirID;
- };
- typedef struct AccessParam AccessParam;
- typedef AccessParam * AccessParamPtr;
- struct ObjParam {
- QElemPtr qLink; /*queue link in header*/
- short qType; /*type byte for safety check*/
- short ioTrap; /*FS: the Trap*/
- Ptr ioCmdAddr; /*FS: address to dispatch to*/
- IOCompletionUPP ioCompletion; /*completion routine addr (0 for synch calls)*/
- volatile OSErr ioResult; /*result code*/
- StringPtr ioNamePtr; /*ptr to Vol:FileName string*/
- short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/
- short filler7;
- short ioObjType; /*function code*/
- StringPtr ioObjNamePtr; /*ptr to returned creator/group name*/
- long ioObjID; /*creator/group ID*/
- };
- typedef struct ObjParam ObjParam;
- typedef ObjParam * ObjParamPtr;
- struct CopyParam {
- QElemPtr qLink; /*queue link in header*/
- short qType; /*type byte for safety check*/
- short ioTrap; /*FS: the Trap*/
- Ptr ioCmdAddr; /*FS: address to dispatch to*/
- IOCompletionUPP ioCompletion; /*completion routine addr (0 for synch calls)*/
- volatile OSErr ioResult; /*result code*/
- StringPtr ioNamePtr; /*ptr to Vol:FileName string*/
- short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/
- short ioDstVRefNum; /*destination vol identifier*/
- short filler8;
- StringPtr ioNewName; /*ptr to destination pathname*/
- StringPtr ioCopyName; /*ptr to optional name*/
- long ioNewDirID; /*destination directory ID*/
- long filler14;
- long filler15;
- long ioDirID;
- };
- typedef struct CopyParam CopyParam;
- typedef CopyParam * CopyParamPtr;
- struct WDParam {
- QElemPtr qLink; /*queue link in header*/
- short qType; /*type byte for safety check*/
- short ioTrap; /*FS: the Trap*/
- Ptr ioCmdAddr; /*FS: address to dispatch to*/
- IOCompletionUPP ioCompletion; /*completion routine addr (0 for synch calls)*/
- volatile OSErr ioResult; /*result code*/
- StringPtr ioNamePtr; /*ptr to Vol:FileName string*/
- short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/
- short filler9;
- short ioWDIndex;
- long ioWDProcID;
- short ioWDVRefNum;
- short filler10;
- long filler11;
- long filler12;
- long filler13;
- long ioWDDirID;
- };
- typedef struct WDParam WDParam;
- typedef WDParam * WDParamPtr;
- struct FIDParam {
- QElemPtr qLink; /*queue link in header*/
- short qType; /*type byte for safety check*/
- short ioTrap; /*FS: the Trap*/
- Ptr ioCmdAddr; /*FS: address to dispatch to*/
- IOCompletionUPP ioCompletion; /*completion routine addr (0 for synch calls)*/
- volatile OSErr ioResult; /*result code*/
- StringPtr ioNamePtr; /*ptr to Vol:FileName string*/
- short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/
- long filler14;
- StringPtr ioDestNamePtr; /* dest file name */
- long filler15;
- long ioDestDirID; /* dest file's directory id */
- long filler16;
- long filler17;
- long ioSrcDirID; /* source file's directory id */
- short filler18;
- long ioFileID; /* file ID */
- };
- typedef struct FIDParam FIDParam;
- typedef FIDParam * FIDParamPtr;
- struct ForeignPrivParam {
- QElemPtr qLink; /*queue link in header*/
- short qType; /*type byte for safety check*/
- short ioTrap; /*FS: the Trap*/
- Ptr ioCmdAddr; /*FS: address to dispatch to*/
- IOCompletionUPP ioCompletion; /*completion routine addr (0 for synch calls)*/
- volatile OSErr ioResult; /*result code*/
- StringPtr ioNamePtr; /*ptr to Vol:FileName string*/
- short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/
- long ioFiller21;
- long ioFiller22;
- Ptr ioForeignPrivBuffer;
- long ioForeignPrivActCount;
- long ioForeignPrivReqCount;
- long ioFiller23;
- long ioForeignPrivDirID;
- long ioForeignPrivInfo1;
- long ioForeignPrivInfo2;
- long ioForeignPrivInfo3;
- long ioForeignPrivInfo4;
- };
- typedef struct ForeignPrivParam ForeignPrivParam;
- typedef ForeignPrivParam * ForeignPrivParamPtr;
- struct CSParam {
- QElemPtr qLink; /*queue link in header*/
- short qType; /*type byte for safety check*/
- short ioTrap; /*FS: the Trap*/
- Ptr ioCmdAddr; /*FS: address to dispatch to*/
- IOCompletionUPP ioCompletion; /*completion routine addr (0 for synch calls)*/
- volatile OSErr ioResult; /*result code*/
- StringPtr ioNamePtr; /*ptr to Vol:FileName string*/
- short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/
- FSSpecPtr ioMatchPtr; /* match array */
- long ioReqMatchCount; /* maximum allowable matches */
- long ioActMatchCount; /* actual match count */
- long ioSearchBits; /* search criteria selector */
- CInfoPBPtr ioSearchInfo1; /* search values and range lower bounds */
- CInfoPBPtr ioSearchInfo2; /* search values and range upper bounds */
- long ioSearchTime; /* length of time to run search */
- CatPositionRec ioCatPosition; /* current position in the catalog */
- Ptr ioOptBuffer; /* optional performance enhancement buffer */
- long ioOptBufSize; /* size of buffer pointed to by ioOptBuffer */
- };
- typedef struct CSParam CSParam;
- typedef CSParam * CSParamPtr;
- union HParamBlockRec {
- HIOParam ioParam;
- HFileParam fileParam;
- HVolumeParam volumeParam;
- AccessParam accessParam;
- ObjParam objParam;
- CopyParam copyParam;
- WDParam wdParam;
- FIDParam fidParam;
- CSParam csParam;
- ForeignPrivParam foreignPrivParam;
- };
- typedef union HParamBlockRec HParamBlockRec;
- typedef HParamBlockRec * HParmBlkPtr;
- struct CMovePBRec {
- QElemPtr qLink;
- short qType;
- short ioTrap;
- Ptr ioCmdAddr;
- IOCompletionUPP ioCompletion;
- volatile OSErr ioResult;
- StringPtr ioNamePtr;
- short ioVRefNum;
- long filler1;
- StringPtr ioNewName;
- long filler2;
- long ioNewDirID;
- long filler3[2];
- long ioDirID;
- };
- typedef struct CMovePBRec CMovePBRec;
- typedef CMovePBRec * CMovePBPtr;
- struct WDPBRec {
- QElemPtr qLink;
- short qType;
- short ioTrap;
- Ptr ioCmdAddr;
- IOCompletionUPP ioCompletion;
- volatile OSErr ioResult;
- StringPtr ioNamePtr;
- short ioVRefNum;
- short filler1;
- short ioWDIndex;
- long ioWDProcID;
- short ioWDVRefNum;
- short filler2[7];
- long ioWDDirID;
- };
- typedef struct WDPBRec WDPBRec;
- typedef WDPBRec * WDPBPtr;
- struct FCBPBRec {
- QElemPtr qLink;
- short qType;
- short ioTrap;
- Ptr ioCmdAddr;
- IOCompletionUPP ioCompletion;
- volatile OSErr ioResult;
- StringPtr ioNamePtr;
- short ioVRefNum;
- short ioRefNum;
- short filler;
- short ioFCBIndx;
- short filler1;
- long ioFCBFlNm;
- short ioFCBFlags;
- unsigned short ioFCBStBlk;
- long ioFCBEOF;
- long ioFCBPLen;
- long ioFCBCrPs;
- short ioFCBVRefNum;
- long ioFCBClpSiz;
- long ioFCBParID;
- };
- typedef struct FCBPBRec FCBPBRec;
- typedef FCBPBRec * FCBPBPtr;
- struct VCB {
- QElemPtr qLink;
- short qType;
- short vcbFlags;
- unsigned short vcbSigWord;
- unsigned long vcbCrDate;
- unsigned long vcbLsMod;
- short vcbAtrb;
- unsigned short vcbNmFls;
- short vcbVBMSt;
- short vcbAllocPtr;
- unsigned short vcbNmAlBlks;
- long vcbAlBlkSiz;
- long vcbClpSiz;
- short vcbAlBlSt;
- long vcbNxtCNID;
- unsigned short vcbFreeBks;
- Str27 vcbVN;
- short vcbDrvNum;
- short vcbDRefNum;
- short vcbFSID;
- short vcbVRefNum;
- Ptr vcbMAdr;
- Ptr vcbBufAdr;
- short vcbMLen;
- short vcbDirIndex;
- short vcbDirBlk;
- unsigned long vcbVolBkUp;
- unsigned short vcbVSeqNum;
- long vcbWrCnt;
- long vcbXTClpSiz;
- long vcbCTClpSiz;
- unsigned short vcbNmRtDirs;
- long vcbFilCnt;
- long vcbDirCnt;
- long vcbFndrInfo[8];
- unsigned short vcbVCSize;
- unsigned short vcbVBMCSiz;
- unsigned short vcbCtlCSiz;
- unsigned short vcbXTAlBlks;
- unsigned short vcbCTAlBlks;
- short vcbXTRef;
- short vcbCTRef;
- Ptr vcbCtlBuf;
- long vcbDirIDM;
- short vcbOffsM;
- };
- typedef struct VCB VCB;
- typedef VCB * VCBPtr;
- struct DrvQEl {
- QElemPtr qLink;
- short qType;
- short dQDrive;
- short dQRefNum;
- short dQFSID;
- unsigned short dQDrvSz;
- unsigned short dQDrvSz2;
- };
- typedef struct DrvQEl DrvQEl;
- typedef DrvQEl * DrvQElPtr;
- #if OPAQUE_UPP_TYPES
- EXTERN_API(IOCompletionUPP)
- NewIOCompletionUPP (IOCompletionProcPtr userRoutine);
- EXTERN_API(void)
- DisposeIOCompletionUPP (IOCompletionUPP userUPP);
- EXTERN_API(void)
- InvokeIOCompletionUPP (ParmBlkPtr paramBlock,
- IOCompletionUPP userUPP);
- #else
- enum { uppIOCompletionProcInfo = 0x00009802 }; /* register no_return_value Func(4_bytes:A0) */
- #define NewIOCompletionUPP(userRoutine) (IOCompletionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppIOCompletionProcInfo, GetCurrentArchitecture())
- #define DisposeIOCompletionUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter InvokeIOCompletionUPP(__A0, __A1)
- void InvokeIOCompletionUPP(ParmBlkPtr paramBlock, IOCompletionUPP userUPP) = 0x4E91;
- #else
- #define InvokeIOCompletionUPP(paramBlock, userUPP) CALL_ONE_PARAMETER_UPP((userUPP), uppIOCompletionProcInfo, (paramBlock))
- #endif
- #endif
- /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
- #define NewIOCompletionProc(userRoutine) NewIOCompletionUPP(userRoutine)
- #define CallIOCompletionProc(userRoutine, paramBlock) InvokeIOCompletionUPP(paramBlock, userRoutine)
- /*
- PBOpenSync(), PBOpenAsync(), PBOpenImmed() were moved to Devices.h
- PBCloseSync(), PBCloseAsync(), PBCloseImmed() were moved to Devices.h
- PBReadSync(), PBReadAsync(), PBReadImmed() were moved to Devices.h
- PBWriteSync(), PBWriteAsync(), PBWriteImmed() were moved to Devices.h
- */
- #if CALL_NOT_IN_CARBON
- #if CALL_NOT_IN_CARBON
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBGetVInfoSync(__A0)
- #endif
- EXTERN_API( OSErr ) PBGetVInfoSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA007);
- #endif /* CALL_NOT_IN_CARBON */
- #endif /* CALL_NOT_IN_CARBON */
- #if CALL_NOT_IN_CARBON
- #if CALL_NOT_IN_CARBON
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBGetVInfoAsync(__A0)
- #endif
- EXTERN_API( OSErr ) PBGetVInfoAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA407);
- #endif /* CALL_NOT_IN_CARBON */
- #endif /* CALL_NOT_IN_CARBON */
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBXGetVolInfoSync(__A0)
- #endif
- EXTERN_API( OSErr ) PBXGetVolInfoSync(XVolumeParamPtr paramBlock) TWOWORDINLINE(0x7012, 0xA060);
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBXGetVolInfoAsync(__A0)
- #endif
- EXTERN_API( OSErr ) PBXGetVolInfoAsync(XVolumeParamPtr paramBlock) TWOWORDINLINE(0x7012, 0xA460);
- #if CALL_NOT_IN_CARBON
- #if CALL_NOT_IN_CARBON
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBGetVolSync(__A0)
- #endif
- EXTERN_API( OSErr ) PBGetVolSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA014);
- #endif /* CALL_NOT_IN_CARBON */
- #endif /* CALL_NOT_IN_CARBON */
- #if CALL_NOT_IN_CARBON
- #if CALL_NOT_IN_CARBON
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBGetVolAsync(__A0)
- #endif
- EXTERN_API( OSErr ) PBGetVolAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA414);
- #endif /* CALL_NOT_IN_CARBON */
- #endif /* CALL_NOT_IN_CARBON */
- #if CALL_NOT_IN_CARBON
- #if CALL_NOT_IN_CARBON
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBSetVolSync(__A0)
- #endif
- EXTERN_API( OSErr ) PBSetVolSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA015);
- #endif /* CALL_NOT_IN_CARBON */
- #endif /* CALL_NOT_IN_CARBON */
- #if CALL_NOT_IN_CARBON
- #if CALL_NOT_IN_CARBON
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBSetVolAsync(__A0)
- #endif
- EXTERN_API( OSErr ) PBSetVolAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA415);
- #endif /* CALL_NOT_IN_CARBON */
- #endif /* CALL_NOT_IN_CARBON */
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBFlushVolSync(__A0)
- #endif
- EXTERN_API( OSErr ) PBFlushVolSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA013);
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBFlushVolAsync(__A0)
- #endif
- EXTERN_API( OSErr ) PBFlushVolAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA413);
- #if CALL_NOT_IN_CARBON
- #if CALL_NOT_IN_CARBON
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBHTrashVolumeCachesSync(__A0)
- #endif
- EXTERN_API( OSErr ) PBHTrashVolumeCachesSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA213);
- #endif /* CALL_NOT_IN_CARBON */
- #endif /* CALL_NOT_IN_CARBON */
- #if CALL_NOT_IN_CARBON
- #if CALL_NOT_IN_CARBON
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBCreateSync(__A0)
- #endif
- EXTERN_API( OSErr ) PBCreateSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA008);
- #endif /* CALL_NOT_IN_CARBON */
- #endif /* CALL_NOT_IN_CARBON */
- #if CALL_NOT_IN_CARBON
- #if CALL_NOT_IN_CARBON
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBCreateAsync(__A0)
- #endif
- EXTERN_API( OSErr ) PBCreateAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA408);
- #endif /* CALL_NOT_IN_CARBON */
- #endif /* CALL_NOT_IN_CARBON */
- #if CALL_NOT_IN_CARBON
- #if CALL_NOT_IN_CARBON
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBDeleteSync(__A0)
- #endif
- EXTERN_API( OSErr ) PBDeleteSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA009);
- #endif /* CALL_NOT_IN_CARBON */
- #endif /* CALL_NOT_IN_CARBON */
- #if CALL_NOT_IN_CARBON
- #if CALL_NOT_IN_CARBON
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBDeleteAsync(__A0)
- #endif
- EXTERN_API( OSErr ) PBDeleteAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA409);
- #endif /* CALL_NOT_IN_CARBON */
- #endif /* CALL_NOT_IN_CARBON */
- #if CALL_NOT_IN_CARBON
- #if CALL_NOT_IN_CARBON
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBOpenDFSync(__A0)
- #endif
- EXTERN_API( OSErr ) PBOpenDFSync(ParmBlkPtr paramBlock) TWOWORDINLINE(0x701A, 0xA060);
- #endif /* CALL_NOT_IN_CARBON */
- #endif /* CALL_NOT_IN_CARBON */
- #if CALL_NOT_IN_CARBON
- #if CALL_NOT_IN_CARBON
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBOpenDFAsync(__A0)
- #endif
- EXTERN_API( OSErr ) PBOpenDFAsync(ParmBlkPtr paramBlock) TWOWORDINLINE(0x701A, 0xA460);
- #endif /* CALL_NOT_IN_CARBON */
- #endif /* CALL_NOT_IN_CARBON */
- #if CALL_NOT_IN_CARBON
- #if CALL_NOT_IN_CARBON
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 PBOpenRFSync(__A0)
- #endif