Show Files.h syntax highlighted
/*
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
EXTERN_API( OSErr ) PBOpenRFSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA00A);
#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 PBOpenRFAsync(__A0)
#endif
EXTERN_API( OSErr ) PBOpenRFAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA40A);
#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 PBRenameSync(__A0)
#endif
EXTERN_API( OSErr ) PBRenameSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA00B);
#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 PBRenameAsync(__A0)
#endif
EXTERN_API( OSErr ) PBRenameAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA40B);
#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 PBGetFInfoSync(__A0)
#endif
EXTERN_API( OSErr ) PBGetFInfoSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA00C);
#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 PBGetFInfoAsync(__A0)
#endif
EXTERN_API( OSErr ) PBGetFInfoAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA40C);
#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 PBSetFInfoSync(__A0)
#endif
EXTERN_API( OSErr ) PBSetFInfoSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA00D);
#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 PBSetFInfoAsync(__A0)
#endif
EXTERN_API( OSErr ) PBSetFInfoAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA40D);
#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 PBSetFLockSync(__A0)
#endif
EXTERN_API( OSErr ) PBSetFLockSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA041);
#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 PBSetFLockAsync(__A0)
#endif
EXTERN_API( OSErr ) PBSetFLockAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA441);
#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 PBRstFLockSync(__A0)
#endif
EXTERN_API( OSErr ) PBRstFLockSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA042);
#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 PBRstFLockAsync(__A0)
#endif
EXTERN_API( OSErr ) PBRstFLockAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA442);
#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 PBSetFVersSync(__A0)
#endif
EXTERN_API( OSErr ) PBSetFVersSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA043);
#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 PBSetFVersAsync(__A0)
#endif
EXTERN_API( OSErr ) PBSetFVersAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA443);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBAllocateSync(__A0)
#endif
EXTERN_API( OSErr ) PBAllocateSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA010);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBAllocateAsync(__A0)
#endif
EXTERN_API( OSErr ) PBAllocateAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA410);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBGetEOFSync(__A0)
#endif
EXTERN_API( OSErr ) PBGetEOFSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA011);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBGetEOFAsync(__A0)
#endif
EXTERN_API( OSErr ) PBGetEOFAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA411);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBSetEOFSync(__A0)
#endif
EXTERN_API( OSErr ) PBSetEOFSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA012);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBSetEOFAsync(__A0)
#endif
EXTERN_API( OSErr ) PBSetEOFAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA412);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBGetFPosSync(__A0)
#endif
EXTERN_API( OSErr ) PBGetFPosSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA018);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBGetFPosAsync(__A0)
#endif
EXTERN_API( OSErr ) PBGetFPosAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA418);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBSetFPosSync(__A0)
#endif
EXTERN_API( OSErr ) PBSetFPosSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA044);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBSetFPosAsync(__A0)
#endif
EXTERN_API( OSErr ) PBSetFPosAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA444);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBFlushFileSync(__A0)
#endif
EXTERN_API( OSErr ) PBFlushFileSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA045);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBFlushFileAsync(__A0)
#endif
EXTERN_API( OSErr ) PBFlushFileAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA445);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBMountVol(__A0)
#endif
EXTERN_API( OSErr ) PBMountVol(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA00F);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBUnmountVol(__A0)
#endif
EXTERN_API( OSErr ) PBUnmountVol(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA00E);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBUnmountVolImmed(__A0)
#endif
EXTERN_API( OSErr ) PBUnmountVolImmed(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA20E);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBEject(__A0)
#endif
EXTERN_API( OSErr ) PBEject(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA017);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBOffLine(__A0)
#endif
EXTERN_API( OSErr ) PBOffLine(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA035);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBCatSearchSync(__A0)
#endif
EXTERN_API( OSErr ) PBCatSearchSync(CSParamPtr paramBlock) TWOWORDINLINE(0x7018, 0xA260);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBCatSearchAsync(__A0)
#endif
EXTERN_API( OSErr ) PBCatSearchAsync(CSParamPtr paramBlock) TWOWORDINLINE(0x7018, 0xA660);
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API( OSErr )
SetVol (ConstStr63Param volName, /* can be NULL */
short vRefNum);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
EXTERN_API( OSErr )
UnmountVol (ConstStr63Param volName, /* can be NULL */
short vRefNum);
EXTERN_API( OSErr )
Eject (ConstStr63Param volName, /* can be NULL */
short vRefNum);
EXTERN_API( OSErr )
FlushVol (ConstStr63Param volName, /* can be NULL */
short vRefNum);
EXTERN_API( OSErr )
HSetVol (ConstStr63Param volName, /* can be NULL */
short vRefNum,
long dirID);
/* AddDrive() was moved to Devices.h*/
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API( OSErr )
FSOpen (ConstStr255Param fileName,
short vRefNum,
short * refNum);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API( OSErr )
OpenDF (ConstStr255Param fileName,
short vRefNum,
short * refNum);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
EXTERN_API( OSErr )
FSClose (short refNum);
EXTERN_API( OSErr )
FSRead (short refNum,
long * count,
void * buffPtr);
EXTERN_API( OSErr )
FSWrite (short refNum,
long * count,
const void * buffPtr);
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API( OSErr )
GetVInfo (short drvNum,
StringPtr volName,
short * vRefNum,
long * freeBytes);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API( OSErr )
GetFInfo (ConstStr255Param fileName,
short vRefNum,
FInfo * fndrInfo);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API( OSErr )
GetVol (StringPtr volName,
short * vRefNum);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API( OSErr )
Create (ConstStr255Param fileName,
short vRefNum,
OSType creator,
OSType fileType);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API( OSErr )
FSDelete (ConstStr255Param fileName,
short vRefNum);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API( OSErr )
OpenRF (ConstStr255Param fileName,
short vRefNum,
short * refNum);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API( OSErr )
Rename (ConstStr255Param oldName,
short vRefNum,
ConstStr255Param newName);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API( OSErr )
SetFInfo (ConstStr255Param fileName,
short vRefNum,
const FInfo * fndrInfo);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API( OSErr )
SetFLock (ConstStr255Param fileName,
short vRefNum);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API( OSErr )
RstFLock (ConstStr255Param fileName,
short vRefNum);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
EXTERN_API( OSErr )
Allocate (short refNum,
long * count);
EXTERN_API( OSErr )
GetEOF (short refNum,
long * logEOF);
EXTERN_API( OSErr )
SetEOF (short refNum,
long logEOF);
EXTERN_API( OSErr )
GetFPos (short refNum,
long * filePos);
EXTERN_API( OSErr )
SetFPos (short refNum,
short posMode,
long posOff);
EXTERN_API( OSErr )
GetVRefNum (short fileRefNum,
short * vRefNum);
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API_C( OSErr )
fsopen (const char * fileName,
short vRefNum,
short * refNum);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API_C( OSErr )
getvinfo (short drvNum,
char * volName,
short * vRefNum,
long * freeBytes);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API_C( OSErr )
getfinfo (const char * fileName,
short vRefNum,
FInfo * fndrInfo);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API_C( OSErr )
getvol (char * volName,
short * vRefNum);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API_C( OSErr )
setvol (const char * volName,
short vRefNum);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API_C( OSErr )
unmountvol (const char * volName,
short vRefNum);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API_C( OSErr )
eject (const char * volName,
short vRefNum);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API_C( OSErr )
flushvol (const char * volName,
short vRefNum);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API_C( OSErr )
create (const char * fileName,
short vRefNum,
OSType creator,
OSType fileType);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API_C( OSErr )
fsdelete (const char * fileName,
short vRefNum);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API_C( OSErr )
openrf (const char * fileName,
short vRefNum,
short * refNum);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API_C( OSErr )
fsrename (const char * oldName,
short vRefNum,
const char * newName);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API_C( OSErr )
setfinfo (const char * fileName,
short vRefNum,
const FInfo * fndrInfo);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API_C( OSErr )
setflock (const char * fileName,
short vRefNum);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
EXTERN_API_C( OSErr )
rstflock (const char * fileName,
short vRefNum);
#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 PBOpenWDSync(__A0)
#endif
EXTERN_API( OSErr ) PBOpenWDSync(WDPBPtr paramBlock) TWOWORDINLINE(0x7001, 0xA260);
#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 PBOpenWDAsync(__A0)
#endif
EXTERN_API( OSErr ) PBOpenWDAsync(WDPBPtr paramBlock) TWOWORDINLINE(0x7001, 0xA660);
#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 PBCloseWDSync(__A0)
#endif
EXTERN_API( OSErr ) PBCloseWDSync(WDPBPtr paramBlock) TWOWORDINLINE(0x7002, 0xA260);
#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 PBCloseWDAsync(__A0)
#endif
EXTERN_API( OSErr ) PBCloseWDAsync(WDPBPtr paramBlock) TWOWORDINLINE(0x7002, 0xA660);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBHSetVolSync(__A0)
#endif
EXTERN_API( OSErr ) PBHSetVolSync(WDPBPtr paramBlock) ONEWORDINLINE(0xA215);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBHSetVolAsync(__A0)
#endif
EXTERN_API( OSErr ) PBHSetVolAsync(WDPBPtr paramBlock) ONEWORDINLINE(0xA615);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBHGetVolSync(__A0)
#endif
EXTERN_API( OSErr ) PBHGetVolSync(WDPBPtr paramBlock) ONEWORDINLINE(0xA214);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBHGetVolAsync(__A0)
#endif
EXTERN_API( OSErr ) PBHGetVolAsync(WDPBPtr paramBlock) ONEWORDINLINE(0xA614);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBCatMoveSync(__A0)
#endif
EXTERN_API( OSErr ) PBCatMoveSync(CMovePBPtr paramBlock) TWOWORDINLINE(0x7005, 0xA260);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBCatMoveAsync(__A0)
#endif
EXTERN_API( OSErr ) PBCatMoveAsync(CMovePBPtr paramBlock) TWOWORDINLINE(0x7005, 0xA660);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBDirCreateSync(__A0)
#endif
EXTERN_API( OSErr ) PBDirCreateSync(HParmBlkPtr paramBlock) TWOWORDINLINE(0x7006, 0xA260);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBDirCreateAsync(__A0)
#endif
EXTERN_API( OSErr ) PBDirCreateAsync(HParmBlkPtr paramBlock) TWOWORDINLINE(0x7006, 0xA660);
#if CALL_NOT_IN_CARBON
#if CALL_NOT_IN_CARBON
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBGetWDInfoSync(__A0)
#endif
EXTERN_API( OSErr ) PBGetWDInfoSync(WDPBPtr paramBlock) TWOWORDINLINE(0x7007, 0xA260);
#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 PBGetWDInfoAsync(__A0)
#endif
EXTERN_API( OSErr ) PBGetWDInfoAsync(WDPBPtr paramBlock) TWOWORDINLINE(0x7007, 0xA660);
#endif /* CALL_NOT_IN_CARBON */
#endif /* CALL_NOT_IN_CARBON */
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBGetFCBInfoSync(__A0)
#endif
EXTERN_API( OSErr ) PBGetFCBInfoSync(FCBPBPtr paramBlock) TWOWORDINLINE(0x7008, 0xA260);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBGetFCBInfoAsync(__A0)
#endif
EXTERN_API( OSErr ) PBGetFCBInfoAsync(FCBPBPtr paramBlock) TWOWORDINLINE(0x7008, 0xA660);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBGetCatInfoSync(__A0)
#endif
EXTERN_API( OSErr ) PBGetCatInfoSync(CInfoPBPtr paramBlock) TWOWORDINLINE(0x7009, 0xA260);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBGetCatInfoAsync(__A0)
#endif
EXTERN_API( OSErr ) PBGetCatInfoAsync(CInfoPBPtr paramBlock) TWOWORDINLINE(0x7009, 0xA660);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBSetCatInfoSync(__A0)
#endif
EXTERN_API( OSErr ) PBSetCatInfoSync(CInfoPBPtr paramBlock) TWOWORDINLINE(0x700A, 0xA260);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBSetCatInfoAsync(__A0)
#endif
EXTERN_API( OSErr ) PBSetCatInfoAsync(CInfoPBPtr paramBlock) TWOWORDINLINE(0x700A, 0xA660);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBAllocContigSync(__A0)
#endif
EXTERN_API( OSErr ) PBAllocContigSync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA210);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBAllocContigAsync(__A0)
#endif
EXTERN_API( OSErr ) PBAllocContigAsync(ParmBlkPtr paramBlock) ONEWORDINLINE(0xA610);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBLockRangeSync(__A0)
#endif
EXTERN_API( OSErr ) PBLockRangeSync(ParmBlkPtr paramBlock) TWOWORDINLINE(0x7010, 0xA260);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBLockRangeAsync(__A0)
#endif
EXTERN_API( OSErr ) PBLockRangeAsync(ParmBlkPtr paramBlock) TWOWORDINLINE(0x7010, 0xA660);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBUnlockRangeSync(__A0)
#endif
EXTERN_API( OSErr ) PBUnlockRangeSync(ParmBlkPtr paramBlock) TWOWORDINLINE(0x7011, 0xA260);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter __D0 PBUnlockRangeAsync(__A0)
#endif
EXTERN_API( OSErr ) PBUnlockRangeAsync(ParmBlkPtr paramBlock) TWOWORDINLINE(0x7011, 0xA660);
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM