/************************************************************ Created: Tuesday, July 30, 1991 at 3:46 PM Files.h C Interface to the Macintosh Libraries Copyright Apple Computer, Inc. 1985-1991 All rights reserved Change History (most recent first): 10/14/93 pdw Changed CntrlParamBlockRec to use ParamBlockHeader instead of individual fields. 8/5/93 JDR Moved NumVersions to Types.h <43> 7/30/91 JL Updated Copyright. Restored comments. <42> 6/14/91 JL Checked in official MPW 3.2Ä version. Fixed Inline for PBSetFInfoSync and PBSetFInfoAsync calls. Adjusted some comment formats to match the DSG Database. Temporarily lost the updated copyright date; will be restored. Updated the creation date (3rd line of this file.) <41> 2/5/91 dnf stb, gs, Add VolMountInfoHeader. <40> 2/5/91 stb gs: change ioDirFlg back to its historical value <39> 2/1/91 stb dnf,dnf003: change the inlines to set the HFS bit (10 in the trap word) for all HFS calls which have a dirID (CatSearch, Get|SetForeignPrivs). <38> 1/28/91 LN Checked in Database Generated File from DSG. changed foreignprivParam branch of HParamBlock union to foreignPrivParam; changed ioDirFlg from 3 to 4;moved obsolete names to end of file <37> 1/25/91 stb JDR: remove MakeFSSpec <36> 1/18/91 stb & dnf; add Get/SetForeignPrivs; fix spelling on bHasBTreeMgr; add authentication constants; change to FSSpec *spec for MakeFSSpec <35> 1/16/91 dnf (dfh) Add fsUnixPriv <34> 1/10/91 PP (PWD) Remove AFPVolMountBlock structure since it should not be made public. <33> 1/7/91 JDR (dba) Adding the FSSpecArray type. <32> 1/2/91 dba (JDR) fix PBCloseWDAsync (wasnÕt asynchronous), and the trap number for AllocContig <30> 12/14/90 PP (JSM) Remove duplicate definition of MediaType and AppleShareMediaType. <29> 12/14/90 dnf (w/dba) Change ioDestNamePtr (in FIDParam), ioObjNamePtr (in ObjParam) and ioNewName and ioCopyName (in CopyParam) to StringPtr. This matches Pascal and is more correct. <28> 12/6/90 JL Fixed PBLockRange,PBUnlockRange,PBSetVInfo Sync and ASync inline code. Wasn't getting selector into A0 and was calling wrong trap numbers. <27> 12/5/90 dba Fix inlines for PBHOpenDFSync and PBHOpenDFAsync. Add GetVolParmsInfoBuffer definition, definitions for desktop database icon types, and definitions for vMAttrib bits. <26> 11/29/90 JL Put formal parameter names back. <25> 11/29/90 PP (prp/JSM) Fix typos and struct names of VolumeMount equates. <24> 11/27/90 PWD Add VolumeMount equates, three associated a060 traps <23> 11/7/90 JL Changed all #defines to anonymous enums <22> 11/4/90 dba fixed some scrambled comments; got rid of some extraneous parameter names; used constStr255Parameter; made some parameters void* instead of Ptr; added more use of const in parameters; used const FSSpec * instead of FSSpecPtr for calls that take input-only FSSpecs <21> 10/30/90 dnf (dnf/ngk) moved FSpCreateResFile and FSpOpenResFile into Resources.h. Added OpenDF and HOpenDF high-level glue. Removed async parameter (and #pragma glue) for DTGetPath, DTCloseDown and DTOpenInform. (dnf/th) Changed FXInfo and DXInfo to add fdXFlags/frXFlags fields. <20> 10/21/90 gbm (with dba) Made compatible with 3.2 C compiler (and incompatible with previous compilers). <20> 10/10/90 JAL Added Sync and ASync calls, New style #Pragma Parameters for MPW 3.2 C. <19> 9/5/90 JNG Update FXInfo and DXInfo <18> 8/29/90 dnf Add FSpExchangeFiles, Fix definition of FSpCreateResFile <17> 8/6/90 dnf Add inline code for _FSp traps <16> 8/6/90 dnf Add definitions of _FSp traps <15> 6/2/90 dnf Correct the length of CatPostionRec and the dirInfo record, Add definitions for FSP glue. <14> 5/4/90 dnf Add MakeFSSpec function prototype <13> 4/25/90 dnf Change filler length in DTPBRec <12> 4/25/90 dnf Fix DTPBRec param block <11> 4/13/90 dnf Add ioAPPLParID, ioDTLgLen and ioDTPyLen to DTParam. Move it out of HParamBlockRec (since it's now too big) and rename it (since there's a different convention for things that aren't in HParamBlockRec). Move DTParam out of HParamBlockRec because it's now too big. <10> 4/10/90 dnf Change hFileInfo back to hfileInfo to remain consistent w/existing interfaces. <9> 3/16/90 dnf Added FSSpec record and AltAccessParam. Changed DT call names to match latest from traps.a. Added OpenDF/HOpenDF and Get/SetAltAccess. Removed obsolete call names again and also removed non-existant high-level FileOpen calls. <8> 3/8/90 JAL Changed changed hfileInfo to hFileInfo to stay consistent. <7> 2/25/90 dnf Rename CSParam.ioQuant to ioSearchTime, positionRec to CatPositionRec. Remove obsolete call names. <6> 2/16/90 DNF Add fsSBNegate <2> 1/9/90 dnf Add fsSBFlParID <1.4> 11/11/89 ngk Added Desktop manger calls <1.3> 9/5/89 dnf Added CatSearch equates <1.2> 7/31/89 EKN Added FIDParam and FileIDs calls. <1.1> 11/9/88 CCH Fixed headers and removed projector resource. <1.0> 11/9/88 CCH Adding to EASE. ************************************************************/ #ifndef __FILES__ #define __FILES__ #ifndef __TYPES__ #include #endif #ifndef __OSUTILS__ #include #endif #ifndef __SEGLOAD__ #include #endif enum { /* Finder Constants */ fsAtMark = 0, fOnDesk = 1, fsCurPerm = 0, fHasBundle = 8192, fsRdPerm = 1, fInvisible = 16384, fTrash = -3, fsWrPerm = 2, fDesktop = -2, fsRdWrPerm = 3, fDisk = 0, fsRdWrShPerm = 4, fsFromStart = 1, fsFromLEOF = 2, fsFromMark = 3, rdVerify = 64, ioDirFlg = 3, /* see IM IV-125 */ ioDirMask = 0x10, fsRtParID = 1, fsRtDirID = 2 }; enum { /* CatSearch SearchBits 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 }; enum { fsSBDrParID = 8192, /* 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 }; enum { bHasUserGroupList = 8, bHasCatSearch = 7, bHasFileIDs = 6, bHasBTreeMgr = 5, bHasBlankAccessPrivileges = 4, /* Desktop Database icon Constants */ kLargeIcon = 1, kLarge4BitIcon = 2, kLarge8BitIcon = 3, kSmallIcon = 4, kSmall4BitIcon = 5, kSmall8BitIcon = 6, kLargeIconSize = 256, kLarge4BitIconSize = 512, kLarge8BitIconSize = 1024, kSmallIconSize = 64, kSmall4BitIconSize = 128, kSmall8BitIconSize = 256, /* Foreign Privilege Model Identifiers */ fsUnixPriv = 1, /* Version Release Stage Codes */ developStage = 0x20, alphaStage = 0x40 }; enum { betaStage = 0x60, finalStage = 0x80, /* Authentication Constants */ kNoUserAuthentication = 1, kPassword = 2, kEncryptPassword = 3, kTwoWayEncryptPassword = 6 }; enum {hFileInfo,dirInfo}; typedef unsigned char CInfoType; struct FInfo { OSType fdType; /*the type of the file*/ OSType fdCreator; /*file's creator*/ unsigned short fdFlags; /*flags ex. hasbundle,invisible,locked, etc.*/ Point fdLocation; /*file's location in folder*/ short fdFldr; /*folder containing file*/ }; typedef struct FInfo FInfo; struct FXInfo { short fdIconID; /*Icon ID*/ short fdUnused[3]; /*unused but reserved 6 bytes*/ char fdScript; /*Script flag and number*/ char fdXFlags; /*More flag bits*/ short fdComment; /*Comment ID*/ long fdPutAway; /*Home Dir ID*/ }; typedef struct FXInfo FXInfo; struct DInfo { Rect frRect; /*folder rect*/ unsigned short frFlags; /*Flags*/ Point frLocation; /*folder location*/ short frView; /*folder view*/ }; typedef struct DInfo DInfo; struct DXInfo { Point frScroll; /*scroll position*/ long frOpenChain; /*DirID chain of open folders*/ char frScript; /*Script flag and number*/ char frXFlags; /*More flag bits*/ short frComment; /*comment*/ long frPutAway; /*DirID*/ }; typedef struct DXInfo DXInfo; 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*/ long vMVolumeGrade; /*approx. speed rating or zero if unrated*/ short vMForeignPrivID; /*foreign privilege model supported or zero if none*/ }; typedef struct GetVolParmsInfoBuffer GetVolParmsInfoBuffer; #define ParamBlockHeader \ 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*/\ ProcPtr ioCompletion; /*completion routine addr (0 for synch calls)*/\ OSErr ioResult; /*result code*/\ StringPtr ioNamePtr; /*ptr to Vol:FileName string*/\ short ioVRefNum; /*volume refnum (DrvNum for Eject and MountVol)*/ struct IOParam { ParamBlockHeader short ioRefNum; /*refNum for I/O operation*/ char ioVersNum; /*version number*/ char 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; struct FileParam { ParamBlockHeader short ioFRefNum; /*reference number*/ char ioFVersNum; /*version number*/ char filler1; short ioFDirIndex; /*GetFInfo directory index*/ unsigned char ioFlAttrib; /*GetFInfo: in-use bit=7, lock bit=0*/ unsigned char 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; struct VolumeParam { ParamBlockHeader 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; /*GetVolInfo: num blks (of alloc size)*/ long ioVAlBlkSiz; /*GetVolInfo: alloc blk byte size*/ 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; struct CntrlParam { ParamBlockHeader short ioCRefNum; /*refNum for I/O operation*/ short csCode; /*word for control status code*/ short csParam[11]; /*operation-defined parameters*/ }; typedef struct CntrlParam CntrlParam; struct SlotDevParam { ParamBlockHeader short ioRefNum; char ioVersNum; char ioPermssn; Ptr ioMix; short ioFlags; char ioSlot; char ioID; }; typedef struct SlotDevParam SlotDevParam; struct MultiDevParam { ParamBlockHeader short ioRefNum; char ioVersNum; char ioPermssn; Ptr ioMix; short ioFlags; Ptr ioSEBlkPtr; }; typedef struct MultiDevParam MultiDevParam; union ParamBlockRec { IOParam ioParam; FileParam fileParam; VolumeParam volumeParam; CntrlParam cntrlParam; SlotDevParam slotDevParam; MultiDevParam multiDevParam; }; typedef union ParamBlockRec ParamBlockRec; typedef ParamBlockRec *ParmBlkPtr; struct HFileInfo { ParamBlockHeader short ioFRefNum; char ioFVersNum; char filler1; short ioFDirIndex; char ioFlAttrib; char filler2; 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 { ParamBlockHeader short ioFRefNum; short filler1; short ioFDirIndex; char ioFlAttrib; char filler2; 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 HIOParam { ParamBlockHeader short ioRefNum; char ioVersNum; char ioPermssn; Ptr ioMisc; Ptr ioBuffer; long ioReqCount; long ioActCount; short ioPosMode; long ioPosOffset; short filler1; }; typedef struct HIOParam HIOParam; struct HFileParam { ParamBlockHeader short ioFRefNum; char ioFVersNum; char filler1; short ioFDirIndex; char ioFlAttrib; char 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; struct HVolumeParam { ParamBlockHeader long filler2; short ioVolIndex; unsigned long ioVCrDate; unsigned long ioVLsMod; short ioVAtrb; unsigned short ioVNmFls; short ioVBitMap; short ioAllocPtr; unsigned short ioVNmAlBlks; long ioVAlBlkSiz; long ioVClpSiz; short ioAlBlSt; long ioVNxtCNID; unsigned short ioVFrBlk; unsigned short ioVSigWord; short ioVDrvInfo; short ioVDRefNum; short ioVFSID; unsigned long ioVBkUp; unsigned short ioVSeqNum; long ioVWrCnt; long ioVFilCnt; long ioVDirCnt; long ioVFndrInfo[8]; }; typedef struct HVolumeParam HVolumeParam; struct AccessParam { ParamBlockHeader short filler3; short ioDenyModes; /*access rights data*/ short filler4; char filler5; char ioACUser; /*access rights for directory only*/ long filler6; long ioACOwnerID; /*owner ID*/ long ioACGroupID; /*group ID*/ long ioACAccess; /*access rights*/ }; typedef struct AccessParam AccessParam; struct ObjParam { ParamBlockHeader short filler7; short ioObjType; /*function code*/ StringPtr ioObjNamePtr; /*ptr to returned creator/group name*/ long ioObjID; /*creator/group ID*/ long ioReqCount; /*size of buffer area*/ long ioActCount; /*length of vol parms data*/ }; typedef struct ObjParam ObjParam; struct CopyParam { ParamBlockHeader 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; /*same as in FileParam*/ }; typedef struct CopyParam CopyParam; struct WDParam { ParamBlockHeader short filler9; short ioWDIndex; long ioWDProcID; short ioWDVRefNum; short filler10; long filler11; long filler12; long filler13; long ioWDDirID; }; typedef struct WDParam WDParam; struct FIDParam { ParamBlockHeader long filler1; StringPtr ioDestNamePtr; /* dest file name */ long filler2; long ioDestDirID; /* dest file's directory id */ long filler3; long filler4; long ioSrcDirID; /* source file's directory id */ short filler5; long ioFileID; /* file ID */ }; typedef struct FIDParam FIDParam; /* Catalog position record */ struct CatPositionRec { long initialize; short priv[6]; }; typedef struct CatPositionRec CatPositionRec; struct FSSpec { short vRefNum; long parID; Str63 name; }; typedef struct FSSpec FSSpec; typedef FSSpec *FSSpecPtr, **FSSpecHandle; typedef FSSpecPtr FSSpecArrayPtr; /* pointer to array of FSSpecs */ /* The following are structures to be filled out with the _GetVolMountInfo call and passed back into the _VolumeMount call for external file system mounts. */ typedef OSType VolumeType; /* the "signature" of the file system */ #define AppleShareMediaType 'afpm' /* the signature for AppleShare */ 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; struct AFPVolMountInfo { short length; /* length of location data (including self) */ VolumeType media; /* type of media */ short flags; /* bits for no messages, no reconnect */ char nbpInterval; /* NBP Interval parameter (IM2, p.322) */ char 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; struct CSParam { ParamBlockHeader 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; struct DTPBRec { ParamBlockHeader short ioDTRefNum; /* desktop refnum */ short ioIndex; long ioTagInfo; Ptr ioDTBuffer; long ioDTReqCount; long ioDTActCount; char ioFiller1; char 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 ForeignPrivParam { ParamBlockHeader long ioFiller1; long ioFiller2; Ptr ioForeignPrivBuffer; long ioForeignPrivActCount; long ioForeignPrivReqCount; long ioFiller3; long ioForeignPrivDirID; long ioForeignPrivInfo1; long ioForeignPrivInfo2; long ioForeignPrivInfo3; long ioForeignPrivInfo4; }; typedef struct ForeignPrivParam ForeignPrivParam; typedef ForeignPrivParam *ForeignPrivParamPtr; 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; ProcPtr ioCompletion; 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; ProcPtr ioCompletion; 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; ProcPtr ioCompletion; 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; 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; #ifdef __cplusplus extern "C" { #endif pascal OSErr PBOpen(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBOpenSync(__A0) pascal OSErr PBOpenSync(ParmBlkPtr paramBlock) = 0xA000; #pragma parameter __D0 PBOpenAsync(__A0) pascal OSErr PBOpenAsync(ParmBlkPtr paramBlock) = 0xA400; pascal OSErr PBClose(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBCloseSync(__A0) pascal OSErr PBCloseSync(ParmBlkPtr paramBlock) = 0xA001; #pragma parameter __D0 PBCloseAsync(__A0) pascal OSErr PBCloseAsync(ParmBlkPtr paramBlock) = 0xA401; pascal OSErr PBRead(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBReadSync(__A0) pascal OSErr PBReadSync(ParmBlkPtr paramBlock) = 0xA002; #pragma parameter __D0 PBReadAsync(__A0) pascal OSErr PBReadAsync(ParmBlkPtr paramBlock) = 0xA402; pascal OSErr PBWrite(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBWriteSync(__A0) pascal OSErr PBWriteSync(ParmBlkPtr paramBlock) = 0xA003; #pragma parameter __D0 PBWriteAsync(__A0) pascal OSErr PBWriteAsync(ParmBlkPtr paramBlock) = 0xA403; pascal OSErr PBGetVInfo(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBGetVInfoSync(__A0) pascal OSErr PBGetVInfoSync(ParmBlkPtr paramBlock) = 0xA007; #pragma parameter __D0 PBGetVInfoAsync(__A0) pascal OSErr PBGetVInfoAsync(ParmBlkPtr paramBlock) = 0xA407; pascal OSErr PBGetVol(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBGetVolSync(__A0) pascal OSErr PBGetVolSync(ParmBlkPtr paramBlock) = 0xA014; #pragma parameter __D0 PBGetVolAsync(__A0) pascal OSErr PBGetVolAsync(ParmBlkPtr paramBlock) = 0xA414; pascal OSErr PBSetVol(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBSetVolSync(__A0) pascal OSErr PBSetVolSync(ParmBlkPtr paramBlock) = 0xA015; #pragma parameter __D0 PBSetVolAsync(__A0) pascal OSErr PBSetVolAsync(ParmBlkPtr paramBlock) = 0xA415; pascal OSErr PBFlushVol(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBFlushVolSync(__A0) pascal OSErr PBFlushVolSync(ParmBlkPtr paramBlock) = 0xA013; #pragma parameter __D0 PBFlushVolAsync(__A0) pascal OSErr PBFlushVolAsync(ParmBlkPtr paramBlock) = 0xA413; pascal OSErr PBCreate(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBCreateSync(__A0) pascal OSErr PBCreateSync(ParmBlkPtr paramBlock) = 0xA008; #pragma parameter __D0 PBCreateAsync(__A0) pascal OSErr PBCreateAsync(ParmBlkPtr paramBlock) = 0xA408; pascal OSErr PBDelete(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBDeleteSync(__A0) pascal OSErr PBDeleteSync(ParmBlkPtr paramBlock) = 0xA009; #pragma parameter __D0 PBDeleteAsync(__A0) pascal OSErr PBDeleteAsync(ParmBlkPtr paramBlock) = 0xA409; pascal OSErr PBOpenDF(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBOpenDFSync(__A0) pascal OSErr PBOpenDFSync(ParmBlkPtr paramBlock) = {0x701A,0xA060}; #pragma parameter __D0 PBOpenDFAsync(__A0) pascal OSErr PBOpenDFAsync(ParmBlkPtr paramBlock) = {0x701A,0xA460}; pascal OSErr PBOpenRF(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBOpenRFSync(__A0) pascal OSErr PBOpenRFSync(ParmBlkPtr paramBlock) = 0xA00A; #pragma parameter __D0 PBOpenRFAsync(__A0) pascal OSErr PBOpenRFAsync(ParmBlkPtr paramBlock) = 0xA40A; pascal OSErr PBRename(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBRenameSync(__A0) pascal OSErr PBRenameSync(ParmBlkPtr paramBlock) = 0xA00B; #pragma parameter __D0 PBRenameAsync(__A0) pascal OSErr PBRenameAsync(ParmBlkPtr paramBlock) = 0xA40B; pascal OSErr PBGetFInfo(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBGetFInfoSync(__A0) pascal OSErr PBGetFInfoSync(ParmBlkPtr paramBlock) = 0xA00C; #pragma parameter __D0 PBGetFInfoAsync(__A0) pascal OSErr PBGetFInfoAsync(ParmBlkPtr paramBlock) = 0xA40C; pascal OSErr PBSetFInfo(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBSetFInfoSync(__A0) pascal OSErr PBSetFInfoSync(ParmBlkPtr paramBlock) = 0xA00D; #pragma parameter __D0 PBSetFInfoAsync(__A0) pascal OSErr PBSetFInfoAsync(ParmBlkPtr paramBlock) = 0xA40D; pascal OSErr PBSetFLock(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBSetFLockSync(__A0) pascal OSErr PBSetFLockSync(ParmBlkPtr paramBlock) = 0xA041; #pragma parameter __D0 PBSetFLockAsync(__A0) pascal OSErr PBSetFLockAsync(ParmBlkPtr paramBlock) = 0xA441; pascal OSErr PBRstFLock(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBRstFLockSync(__A0) pascal OSErr PBRstFLockSync(ParmBlkPtr paramBlock) = 0xA042; #pragma parameter __D0 PBRstFLockAsync(__A0) pascal OSErr PBRstFLockAsync(ParmBlkPtr paramBlock) = 0xA442; pascal OSErr PBSetFVers(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBSetFVersSync(__A0) pascal OSErr PBSetFVersSync(ParmBlkPtr paramBlock) = 0xA043; #pragma parameter __D0 PBSetFVersAsync(__A0) pascal OSErr PBSetFVersAsync(ParmBlkPtr paramBlock) = 0xA443; pascal OSErr PBAllocate(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBAllocateSync(__A0) pascal OSErr PBAllocateSync(ParmBlkPtr paramBlock) = 0xA010; #pragma parameter __D0 PBAllocateAsync(__A0) pascal OSErr PBAllocateAsync(ParmBlkPtr paramBlock) = 0xA410; pascal OSErr PBGetEOF(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBGetEOFSync(__A0) pascal OSErr PBGetEOFSync(ParmBlkPtr paramBlock) = 0xA011; #pragma parameter __D0 PBGetEOFAsync(__A0) pascal OSErr PBGetEOFAsync(ParmBlkPtr paramBlock) = 0xA411; pascal OSErr PBSetEOF(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBSetEOFSync(__A0) pascal OSErr PBSetEOFSync(ParmBlkPtr paramBlock) = 0xA012; #pragma parameter __D0 PBSetEOFAsync(__A0) pascal OSErr PBSetEOFAsync(ParmBlkPtr paramBlock) = 0xA412; pascal OSErr PBGetFPos(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBGetFPosSync(__A0) pascal OSErr PBGetFPosSync(ParmBlkPtr paramBlock) = 0xA018; #pragma parameter __D0 PBGetFPosAsync(__A0) pascal OSErr PBGetFPosAsync(ParmBlkPtr paramBlock) = 0xA418; pascal OSErr PBSetFPos(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBSetFPosSync(__A0) pascal OSErr PBSetFPosSync(ParmBlkPtr paramBlock) = 0xA044; #pragma parameter __D0 PBSetFPosAsync(__A0) pascal OSErr PBSetFPosAsync(ParmBlkPtr paramBlock) = 0xA444; pascal OSErr PBFlushFile(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBFlushFileSync(__A0) pascal OSErr PBFlushFileSync(ParmBlkPtr paramBlock) = 0xA045; #pragma parameter __D0 PBFlushFileAsync(__A0) pascal OSErr PBFlushFileAsync(ParmBlkPtr paramBlock) = 0xA445; #pragma parameter __D0 PBMountVol(__A0) pascal OSErr PBMountVol(ParmBlkPtr paramBlock) = 0xA00F; #pragma parameter __D0 PBUnmountVol(__A0) pascal OSErr PBUnmountVol(ParmBlkPtr paramBlock) = 0xA00E; #pragma parameter __D0 PBEject(__A0) pascal OSErr PBEject(ParmBlkPtr paramBlock) = 0xA017; #pragma parameter __D0 PBOffLine(__A0) pascal OSErr PBOffLine(ParmBlkPtr paramBlock) = 0xA035; pascal OSErr PBCatSearch(CSParamPtr paramBlock,Boolean async); #pragma parameter __D0 PBCatSearchSync(__A0) pascal OSErr PBCatSearchSync(CSParamPtr paramBlock) = {0x7018,0xA260}; #pragma parameter __D0 PBCatSearchAsync(__A0) pascal OSErr PBCatSearchAsync(CSParamPtr paramBlock) = {0x7018,0xA660}; pascal void AddDrive(short drvrRefNum,short drvNum,DrvQElPtr qEl); pascal OSErr FSOpen(ConstStr255Param fileName,short vRefNum,short *refNum); pascal OSErr OpenDF(ConstStr255Param fileName,short vRefNum,short *refNum); OSErr fsopen(char *fileName,short vRefNum,short *refNum); pascal OSErr FSClose(short refNum); pascal OSErr FSRead(short refNum,long *count,void *buffPtr); pascal OSErr FSWrite(short refNum,long *count,const void *buffPtr); pascal OSErr GetVInfo(short drvNum,StringPtr volName,short *vRefNum,long *freeBytes); OSErr getvinfo(short drvNum,char *volName,short *vRefNum,long *freeBytes); pascal OSErr GetFInfo(ConstStr255Param fileName,short vRefNum,FInfo *fndrInfo); OSErr getfinfo(char *fileName,short vRefNum,FInfo *fndrInfo); pascal OSErr GetVol(StringPtr volName,short *vRefNum); OSErr getvol(char *volName,short *vRefNum); pascal OSErr SetVol(StringPtr volName,short vRefNum); OSErr setvol(char *volName,short vRefNum); pascal OSErr UnmountVol(StringPtr volName,short vRefNum); OSErr unmountvol(char *volName,short vRefNum); pascal OSErr Eject(StringPtr volName,short vRefNum); OSErr eject(char *volName,short vRefNum); pascal OSErr FlushVol(StringPtr volName,short vRefNum); OSErr flushvol(char *volName,short vRefNum); pascal OSErr Create(ConstStr255Param fileName,short vRefNum,OSType creator, OSType fileType); OSErr create(char *fileName,short vRefNum,OSType creator,OSType fileType); pascal OSErr FSDelete(ConstStr255Param fileName,short vRefNum); OSErr fsdelete(char *fileName,short vRefNum); pascal OSErr OpenRF(ConstStr255Param fileName,short vRefNum,short *refNum); OSErr openrf(char *fileName,short vRefNum,short *refNum); pascal OSErr Rename(ConstStr255Param oldName,short vRefNum,ConstStr255Param newName); OSErr fsrename(char *oldName,short vRefNum,char *newName); pascal OSErr SetFInfo(ConstStr255Param fileName,short vRefNum,const FInfo *fndrInfo); OSErr setfinfo(char *fileName,short vRefNum,FInfo *fndrInfo); pascal OSErr SetFLock(ConstStr255Param fileName,short vRefNum); OSErr setflock(char *fileName,short vRefNum); pascal OSErr RstFLock(ConstStr255Param fileName,short vRefNum); OSErr rstflock(char *fileName,short vRefNum); pascal OSErr Allocate(short refNum,long *count); pascal OSErr GetEOF(short refNum,long *logEOF); pascal OSErr SetEOF(short refNum,long logEOF); pascal OSErr GetFPos(short refNum,long *filePos); pascal OSErr SetFPos(short refNum,short posMode,long posOff); pascal OSErr GetVRefNum(short fileRefNum,short *vRefNum); pascal OSErr PBOpenWD(WDPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBOpenWDSync(__A0) pascal OSErr PBOpenWDSync(WDPBPtr paramBlock) = {0x7001,0xA260}; #pragma parameter __D0 PBOpenWDAsync(__A0) pascal OSErr PBOpenWDAsync(WDPBPtr paramBlock) = {0x7001,0xA660}; pascal OSErr PBCloseWD(WDPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBCloseWDSync(__A0) pascal OSErr PBCloseWDSync(WDPBPtr paramBlock) = {0x7002,0xA260}; #pragma parameter __D0 PBCloseWDAsync(__A0) pascal OSErr PBCloseWDAsync(WDPBPtr paramBlock) = {0x7002,0xA660}; pascal OSErr PBHSetVol(WDPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBHSetVolSync(__A0) pascal OSErr PBHSetVolSync(WDPBPtr paramBlock) = 0xA215; #pragma parameter __D0 PBHSetVolAsync(__A0) pascal OSErr PBHSetVolAsync(WDPBPtr paramBlock) = 0xA615; pascal OSErr PBHGetVol(WDPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBHGetVolSync(__A0) pascal OSErr PBHGetVolSync(WDPBPtr paramBlock) = 0xA214; #pragma parameter __D0 PBHGetVolAsync(__A0) pascal OSErr PBHGetVolAsync(WDPBPtr paramBlock) = 0xA614; pascal OSErr PBCatMove(CMovePBPtr paramBlock,Boolean async); #pragma parameter __D0 PBCatMoveSync(__A0) pascal OSErr PBCatMoveSync(CMovePBPtr paramBlock) = {0x7005,0xA260}; #pragma parameter __D0 PBCatMoveAsync(__A0) pascal OSErr PBCatMoveAsync(CMovePBPtr paramBlock) = {0x7005,0xA660}; pascal OSErr PBDirCreate(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBDirCreateSync(__A0) pascal OSErr PBDirCreateSync(HParmBlkPtr paramBlock) = {0x7006,0xA260}; #pragma parameter __D0 PBDirCreateAsync(__A0) pascal OSErr PBDirCreateAsync(HParmBlkPtr paramBlock) = {0x7006,0xA660}; pascal OSErr PBGetWDInfo(WDPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBGetWDInfoSync(__A0) pascal OSErr PBGetWDInfoSync(WDPBPtr paramBlock) = {0x7007,0xA260}; #pragma parameter __D0 PBGetWDInfoAsync(__A0) pascal OSErr PBGetWDInfoAsync(WDPBPtr paramBlock) = {0x7007,0xA660}; pascal OSErr PBGetFCBInfo(FCBPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBGetFCBInfoSync(__A0) pascal OSErr PBGetFCBInfoSync(FCBPBPtr paramBlock) = {0x7008,0xA260}; #pragma parameter __D0 PBGetFCBInfoAsync(__A0) pascal OSErr PBGetFCBInfoAsync(FCBPBPtr paramBlock) = {0x7008,0xA660}; pascal OSErr PBGetCatInfo(CInfoPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBGetCatInfoSync(__A0) pascal OSErr PBGetCatInfoSync(CInfoPBPtr paramBlock) = {0x7009,0xA260}; #pragma parameter __D0 PBGetCatInfoAsync(__A0) pascal OSErr PBGetCatInfoAsync(CInfoPBPtr paramBlock) = {0x7009,0xA660}; pascal OSErr PBSetCatInfo(CInfoPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBSetCatInfoSync(__A0) pascal OSErr PBSetCatInfoSync(CInfoPBPtr paramBlock) = {0x700A,0xA260}; #pragma parameter __D0 PBSetCatInfoAsync(__A0) pascal OSErr PBSetCatInfoAsync(CInfoPBPtr paramBlock) = {0x700A,0xA660}; pascal OSErr PBAllocContig(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBAllocContigSync(__A0) pascal OSErr PBAllocContigSync(ParmBlkPtr paramBlock) = 0xA210; #pragma parameter __D0 PBAllocContigAsync(__A0) pascal OSErr PBAllocContigAsync(ParmBlkPtr paramBlock) = 0xA610; pascal OSErr PBLockRange(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBLockRangeSync(__A0) pascal OSErr PBLockRangeSync(ParmBlkPtr paramBlock) = {0x7010,0xA260}; #pragma parameter __D0 PBLockRangeAsync(__A0) pascal OSErr PBLockRangeAsync(ParmBlkPtr paramBlock) = {0x7010,0xA660}; pascal OSErr PBUnlockRange(ParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBUnlockRangeSync(__A0) pascal OSErr PBUnlockRangeSync(ParmBlkPtr paramBlock) = {0x7011,0xA260}; #pragma parameter __D0 PBUnlockRangeAsync(__A0) pascal OSErr PBUnlockRangeAsync(ParmBlkPtr paramBlock) = {0x7011,0xA660}; pascal OSErr PBSetVInfo(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBSetVInfoSync(__A0) pascal OSErr PBSetVInfoSync(HParmBlkPtr paramBlock) = {0x700B,0xA260}; #pragma parameter __D0 PBSetVInfoAsync(__A0) pascal OSErr PBSetVInfoAsync(HParmBlkPtr paramBlock) = {0x700B,0xA660}; pascal OSErr PBHGetVInfo(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHGetVInfoSync(__A0) pascal OSErr PBHGetVInfoSync(HParmBlkPtr paramBlock) = 0xA207; #pragma parameter __D0 PBHGetVInfoAsync(__A0) pascal OSErr PBHGetVInfoAsync(HParmBlkPtr paramBlock) = 0xA607; pascal OSErr PBHOpen(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHOpenSync(__A0) pascal OSErr PBHOpenSync(HParmBlkPtr paramBlock) = 0xA200; #pragma parameter __D0 PBHOpenAsync(__A0) pascal OSErr PBHOpenAsync(HParmBlkPtr paramBlock) = 0xA600; pascal OSErr PBHOpenRF(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHOpenRFSync(__A0) pascal OSErr PBHOpenRFSync(HParmBlkPtr paramBlock) = 0xA20A; #pragma parameter __D0 PBHOpenRFAsync(__A0) pascal OSErr PBHOpenRFAsync(HParmBlkPtr paramBlock) = 0xA60A; pascal OSErr PBHOpenDF(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHOpenDFSync(__A0) pascal OSErr PBHOpenDFSync(HParmBlkPtr paramBlock) = {0x701A,0xA260}; #pragma parameter __D0 PBHOpenDFAsync(__A0) pascal OSErr PBHOpenDFAsync(HParmBlkPtr paramBlock) = {0x701A,0xA660}; pascal OSErr PBHCreate(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHCreateSync(__A0) pascal OSErr PBHCreateSync(HParmBlkPtr paramBlock) = 0xA208; #pragma parameter __D0 PBHCreateAsync(__A0) pascal OSErr PBHCreateAsync(HParmBlkPtr paramBlock) = 0xA608; pascal OSErr PBHDelete(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHDeleteSync(__A0) pascal OSErr PBHDeleteSync(HParmBlkPtr paramBlock) = 0xA209; #pragma parameter __D0 PBHDeleteAsync(__A0) pascal OSErr PBHDeleteAsync(HParmBlkPtr paramBlock) = 0xA609; pascal OSErr PBHRename(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHRenameSync(__A0) pascal OSErr PBHRenameSync(HParmBlkPtr paramBlock) = 0xA20B; #pragma parameter __D0 PBHRenameAsync(__A0) pascal OSErr PBHRenameAsync(HParmBlkPtr paramBlock) = 0xA60B; pascal OSErr PBHRstFLock(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHRstFLockSync(__A0) pascal OSErr PBHRstFLockSync(HParmBlkPtr paramBlock) = 0xA242; #pragma parameter __D0 PBHRstFLockAsync(__A0) pascal OSErr PBHRstFLockAsync(HParmBlkPtr paramBlock) = 0xA642; pascal OSErr PBHSetFLock(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHSetFLockSync(__A0) pascal OSErr PBHSetFLockSync(HParmBlkPtr paramBlock) = 0xA241; #pragma parameter __D0 PBHSetFLockAsync(__A0) pascal OSErr PBHSetFLockAsync(HParmBlkPtr paramBlock) = 0xA641; pascal OSErr PBHGetFInfo(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHGetFInfoSync(__A0) pascal OSErr PBHGetFInfoSync(HParmBlkPtr paramBlock) = 0xA20C; #pragma parameter __D0 PBHGetFInfoAsync(__A0) pascal OSErr PBHGetFInfoAsync(HParmBlkPtr paramBlock) = 0xA60C; pascal OSErr PBHSetFInfo(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHSetFInfoSync(__A0) pascal OSErr PBHSetFInfoSync(HParmBlkPtr paramBlock) = 0xA20D; #pragma parameter __D0 PBHSetFInfoAsync(__A0) pascal OSErr PBHSetFInfoAsync(HParmBlkPtr paramBlock) = 0xA60D; pascal OSErr PBMakeFSSpec(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBMakeFSSpecSync(__A0) pascal OSErr PBMakeFSSpecSync(HParmBlkPtr paramBlock) = {0x701B,0xA260}; #pragma parameter __D0 PBMakeFSSpecAsync(__A0) pascal OSErr PBMakeFSSpecAsync(HParmBlkPtr paramBlock) = {0x701B,0xA660}; pascal void FInitQueue(void) = 0xA016; #define GetFSQHdr() ((QHdrPtr) 0x0360) #define GetDrvQHdr() ((QHdrPtr) 0x0308) #define GetVCBQHdr() ((QHdrPtr) 0x0356) pascal OSErr HGetVol(StringPtr volName,short *vRefNum,long *dirID); pascal OSErr HSetVol(StringPtr volName,short vRefNum,long dirID); pascal OSErr HOpen(short vRefNum,long dirID,ConstStr255Param fileName,char permission, short *refNum); pascal OSErr HOpenDF(short vRefNum,long dirID,ConstStr255Param fileName, char permission,short *refNum); pascal OSErr HOpenRF(short vRefNum,long dirID,ConstStr255Param fileName, char permission,short *refNum); pascal OSErr AllocContig(short refNum,long *count); pascal OSErr HCreate(short vRefNum,long dirID,ConstStr255Param fileName, OSType creator,OSType fileType); pascal OSErr DirCreate(short vRefNum,long parentDirID,ConstStr255Param directoryName, long *createdDirID); pascal OSErr HDelete(short vRefNum,long dirID,ConstStr255Param fileName); pascal OSErr HGetFInfo(short vRefNum,long dirID,ConstStr255Param fileName, FInfo *fndrInfo); pascal OSErr HSetFInfo(short vRefNum,long dirID,ConstStr255Param fileName, const FInfo *fndrInfo); pascal OSErr HSetFLock(short vRefNum,long dirID,ConstStr255Param fileName); pascal OSErr HRstFLock(short vRefNum,long dirID,ConstStr255Param fileName); pascal OSErr HRename(short vRefNum,long dirID,ConstStr255Param oldName, ConstStr255Param newName); pascal OSErr CatMove(short vRefNum,long dirID,ConstStr255Param oldName, long newDirID,ConstStr255Param newName); pascal OSErr OpenWD(short vRefNum,long dirID,long procID,short *wdRefNum); pascal OSErr CloseWD(short wdRefNum); pascal OSErr GetWDInfo(short wdRefNum,short *vRefNum,long *dirID,long *procID); /* shared environment */ pascal OSErr PBHGetVolParms(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHGetVolParmsSync(__A0) pascal OSErr PBHGetVolParmsSync(HParmBlkPtr paramBlock) = {0x7030,0xA260}; #pragma parameter __D0 PBHGetVolParmsAsync(__A0) pascal OSErr PBHGetVolParmsAsync(HParmBlkPtr paramBlock) = {0x7030,0xA660}; pascal OSErr PBHGetLogInInfo(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHGetLogInInfoSync(__A0) pascal OSErr PBHGetLogInInfoSync(HParmBlkPtr paramBlock) = {0x7031,0xA260}; #pragma parameter __D0 PBHGetLogInInfoAsync(__A0) pascal OSErr PBHGetLogInInfoAsync(HParmBlkPtr paramBlock) = {0x7031,0xA660}; pascal OSErr PBHGetDirAccess(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHGetDirAccessSync(__A0) pascal OSErr PBHGetDirAccessSync(HParmBlkPtr paramBlock) = {0x7032,0xA260}; #pragma parameter __D0 PBHGetDirAccessAsync(__A0) pascal OSErr PBHGetDirAccessAsync(HParmBlkPtr paramBlock) = {0x7032,0xA660}; pascal OSErr PBHSetDirAccess(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHSetDirAccessSync(__A0) pascal OSErr PBHSetDirAccessSync(HParmBlkPtr paramBlock) = {0x7033,0xA260}; #pragma parameter __D0 PBHSetDirAccessAsync(__A0) pascal OSErr PBHSetDirAccessAsync(HParmBlkPtr paramBlock) = {0x7033,0xA660}; pascal OSErr PBHMapID(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHMapIDSync(__A0) pascal OSErr PBHMapIDSync(HParmBlkPtr paramBlock) = {0x7034,0xA260}; #pragma parameter __D0 PBHMapIDAsync(__A0) pascal OSErr PBHMapIDAsync(HParmBlkPtr paramBlock) = {0x7034,0xA660}; pascal OSErr PBHMapName(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHMapNameSync(__A0) pascal OSErr PBHMapNameSync(HParmBlkPtr paramBlock) = {0x7035,0xA260}; #pragma parameter __D0 PBHMapNameAsync(__A0) pascal OSErr PBHMapNameAsync(HParmBlkPtr paramBlock) = {0x7035,0xA660}; pascal OSErr PBHCopyFile(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHCopyFileSync(__A0) pascal OSErr PBHCopyFileSync(HParmBlkPtr paramBlock) = {0x7036,0xA260}; #pragma parameter __D0 PBHCopyFileAsync(__A0) pascal OSErr PBHCopyFileAsync(HParmBlkPtr paramBlock) = {0x7036,0xA660}; pascal OSErr PBHMoveRename(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHMoveRenameSync(__A0) pascal OSErr PBHMoveRenameSync(HParmBlkPtr paramBlock) = {0x7037,0xA260}; #pragma parameter __D0 PBHMoveRenameAsync(__A0) pascal OSErr PBHMoveRenameAsync(HParmBlkPtr paramBlock) = {0x7037,0xA660}; pascal OSErr PBHOpenDeny(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHOpenDenySync(__A0) pascal OSErr PBHOpenDenySync(HParmBlkPtr paramBlock) = {0x7038,0xA260}; #pragma parameter __D0 PBHOpenDenyAsync(__A0) pascal OSErr PBHOpenDenyAsync(HParmBlkPtr paramBlock) = {0x7038,0xA660}; pascal OSErr PBHOpenRFDeny(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBHOpenRFDenySync(__A0) pascal OSErr PBHOpenRFDenySync(HParmBlkPtr paramBlock) = {0x7039,0xA260}; #pragma parameter __D0 PBHOpenRFDenyAsync(__A0) pascal OSErr PBHOpenRFDenyAsync(HParmBlkPtr paramBlock) = {0x7039,0xA660}; pascal OSErr PBExchangeFiles(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBExchangeFilesSync(__A0) pascal OSErr PBExchangeFilesSync(HParmBlkPtr paramBlock) = {0x7017,0xA260}; #pragma parameter __D0 PBExchangeFilesAsync(__A0) pascal OSErr PBExchangeFilesAsync(HParmBlkPtr paramBlock) = {0x7017,0xA660}; pascal OSErr PBCreateFileIDRef(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBCreateFileIDRefSync(__A0) pascal OSErr PBCreateFileIDRefSync(HParmBlkPtr paramBlock) = {0x7014,0xA260}; #pragma parameter __D0 PBCreateFileIDRefAsync(__A0) pascal OSErr PBCreateFileIDRefAsync(HParmBlkPtr paramBlock) = {0x7014,0xA660}; pascal OSErr PBResolveFileIDRef(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBResolveFileIDRefSync(__A0) pascal OSErr PBResolveFileIDRefSync(HParmBlkPtr paramBlock) = {0x7016,0xA260}; #pragma parameter __D0 PBResolveFileIDRefAsync(__A0) pascal OSErr PBResolveFileIDRefAsync(HParmBlkPtr paramBlock) = {0x7016,0xA660}; pascal OSErr PBDeleteFileIDRef(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBDeleteFileIDRefSync(__A0) pascal OSErr PBDeleteFileIDRefSync(HParmBlkPtr paramBlock) = {0x7015,0xA260}; #pragma parameter __D0 PBDeleteFileIDRefAsync(__A0) pascal OSErr PBDeleteFileIDRefAsync(HParmBlkPtr paramBlock) = {0x7015,0xA660}; pascal OSErr PBGetForeignPrivs(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBGetForeignPrivsSync(__A0) pascal OSErr PBGetForeignPrivsSync(HParmBlkPtr paramBlock) = {0x7060,0xA260}; #pragma parameter __D0 PBGetForeignPrivsAsync(__A0) pascal OSErr PBGetForeignPrivsAsync(HParmBlkPtr paramBlock) = {0x7060,0xA660}; pascal OSErr PBSetForeignPrivs(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBSetForeignPrivsSync(__A0) pascal OSErr PBSetForeignPrivsSync(HParmBlkPtr paramBlock) = {0x7061,0xA260}; #pragma parameter __D0 PBSetForeignPrivsAsync(__A0) pascal OSErr PBSetForeignPrivsAsync(HParmBlkPtr paramBlock) = {0x7061,0xA660}; /* Desktop Manager */ #pragma parameter __D0 PBDTGetPath(__A0) pascal OSErr PBDTGetPath(DTPBPtr paramBlock) = {0x7020,0xA260}; #pragma parameter __D0 PBDTCloseDown(__A0) pascal OSErr PBDTCloseDown(DTPBPtr paramBlock) = {0x7021,0xA260}; pascal OSErr PBDTAddIcon(DTPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBDTAddIconSync(__A0) pascal OSErr PBDTAddIconSync(DTPBPtr paramBlock) = {0x7022,0xA260}; #pragma parameter __D0 PBDTAddIconAsync(__A0) pascal OSErr PBDTAddIconAsync(DTPBPtr paramBlock) = {0x7022,0xA660}; pascal OSErr PBDTGetIcon(DTPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBDTGetIconSync(__A0) pascal OSErr PBDTGetIconSync(DTPBPtr paramBlock) = {0x7023,0xA260}; #pragma parameter __D0 PBDTGetIconAsync(__A0) pascal OSErr PBDTGetIconAsync(DTPBPtr paramBlock) = {0x7023,0xA660}; pascal OSErr PBDTGetIconInfo(DTPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBDTGetIconInfoSync(__A0) pascal OSErr PBDTGetIconInfoSync(DTPBPtr paramBlock) = {0x7024,0xA260}; #pragma parameter __D0 PBDTGetIconInfoAsync(__A0) pascal OSErr PBDTGetIconInfoAsync(DTPBPtr paramBlock) = {0x7024,0xA660}; pascal OSErr PBDTAddAPPL(DTPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBDTAddAPPLSync(__A0) pascal OSErr PBDTAddAPPLSync(DTPBPtr paramBlock) = {0x7025,0xA260}; #pragma parameter __D0 PBDTAddAPPLAsync(__A0) pascal OSErr PBDTAddAPPLAsync(DTPBPtr paramBlock) = {0x7025,0xA660}; pascal OSErr PBDTRemoveAPPL(DTPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBDTRemoveAPPLSync(__A0) pascal OSErr PBDTRemoveAPPLSync(DTPBPtr paramBlock) = {0x7026,0xA260}; #pragma parameter __D0 PBDTRemoveAPPLAsync(__A0) pascal OSErr PBDTRemoveAPPLAsync(DTPBPtr paramBlock) = {0x7026,0xA660}; pascal OSErr PBDTGetAPPL(DTPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBDTGetAPPLSync(__A0) pascal OSErr PBDTGetAPPLSync(DTPBPtr paramBlock) = {0x7027,0xA260}; #pragma parameter __D0 PBDTGetAPPLAsync(__A0) pascal OSErr PBDTGetAPPLAsync(DTPBPtr paramBlock) = {0x7027,0xA660}; pascal OSErr PBDTSetComment(DTPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBDTSetCommentSync(__A0) pascal OSErr PBDTSetCommentSync(DTPBPtr paramBlock) = {0x7028,0xA260}; #pragma parameter __D0 PBDTSetCommentAsync(__A0) pascal OSErr PBDTSetCommentAsync(DTPBPtr paramBlock) = {0x7028,0xA660}; pascal OSErr PBDTRemoveComment(DTPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBDTRemoveCommentSync(__A0) pascal OSErr PBDTRemoveCommentSync(DTPBPtr paramBlock) = {0x7029,0xA260}; #pragma parameter __D0 PBDTRemoveCommentAsync(__A0) pascal OSErr PBDTRemoveCommentAsync(DTPBPtr paramBlock) = {0x7029,0xA660}; pascal OSErr PBDTGetComment(DTPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBDTGetCommentSync(__A0) pascal OSErr PBDTGetCommentSync(DTPBPtr paramBlock) = {0x702A,0xA260}; #pragma parameter __D0 PBDTGetCommentAsync(__A0) pascal OSErr PBDTGetCommentAsync(DTPBPtr paramBlock) = {0x702A,0xA660}; pascal OSErr PBDTFlush(DTPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBDTFlushSync(__A0) pascal OSErr PBDTFlushSync(DTPBPtr paramBlock) = {0x702B,0xA260}; #pragma parameter __D0 PBDTFlushAsync(__A0) pascal OSErr PBDTFlushAsync(DTPBPtr paramBlock) = {0x702B,0xA660}; pascal OSErr PBDTReset(DTPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBDTResetSync(__A0) pascal OSErr PBDTResetSync(DTPBPtr paramBlock) = {0x702C,0xA260}; #pragma parameter __D0 PBDTResetAsync(__A0) pascal OSErr PBDTResetAsync(DTPBPtr paramBlock) = {0x702C,0xA660}; pascal OSErr PBDTGetInfo(DTPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBDTGetInfoSync(__A0) pascal OSErr PBDTGetInfoSync(DTPBPtr paramBlock) = {0x702D,0xA260}; #pragma parameter __D0 PBDTGetInfoAsync(__A0) pascal OSErr PBDTGetInfoAsync(DTPBPtr paramBlock) = {0x702D,0xA660}; #pragma parameter __D0 PBDTOpenInform(__A0) pascal OSErr PBDTOpenInform(DTPBPtr paramBlock) = {0x702E,0xA060}; pascal OSErr PBDTDelete(DTPBPtr paramBlock,Boolean async); #pragma parameter __D0 PBDTDeleteSync(__A0) pascal OSErr PBDTDeleteSync(DTPBPtr paramBlock) = {0x702F,0xA060}; #pragma parameter __D0 PBDTDeleteAsync(__A0) pascal OSErr PBDTDeleteAsync(DTPBPtr paramBlock) = {0x702F,0xA460}; /* VolumeMount traps */ #pragma parameter __D0 PBGetVolMountInfoSize(__A0) pascal OSErr PBGetVolMountInfoSize(ParmBlkPtr paramBlock) = {0x703F,0xA260}; #pragma parameter __D0 PBGetVolMountInfo(__A0) pascal OSErr PBGetVolMountInfo(ParmBlkPtr paramBlock) = {0x7040,0xA260}; #pragma parameter __D0 PBVolumeMount(__A0) pascal OSErr PBVolumeMount(ParmBlkPtr paramBlock) = {0x7041,0xA260}; /* FSp traps */ pascal OSErr FSMakeFSSpec(short vRefNum,long dirID,ConstStr255Param fileName, FSSpecPtr spec) = {0x303C,0x0001,0xAA52}; pascal OSErr FSpOpenDF(const FSSpec *spec,char permission,short *refNum) = {0x303C,0x0002,0xAA52}; pascal OSErr FSpOpenRF(const FSSpec *spec,char permission,short *refNum) = {0x303C,0x0003,0xAA52}; pascal OSErr FSpCreate(const FSSpec *spec,OSType creator,OSType fileType, ScriptCode scriptTag) = {0x303C,0x0004,0xAA52}; pascal OSErr FSpDirCreate(const FSSpec *spec,ScriptCode scriptTag,long *createdDirID) = {0x303C,0x0005,0xAA52}; pascal OSErr FSpDelete(const FSSpec *spec) = {0x303C,0x0006,0xAA52}; pascal OSErr FSpGetFInfo(const FSSpec *spec,FInfo *fndrInfo) = {0x303C,0x0007,0xAA52}; pascal OSErr FSpSetFInfo(const FSSpec *spec,const FInfo *fndrInfo) = {0x303C,0x0008,0xAA52}; pascal OSErr FSpSetFLock(const FSSpec *spec) = {0x303C,0x0009,0xAA52}; pascal OSErr FSpRstFLock(const FSSpec *spec) = {0x303C,0x000A,0xAA52}; pascal OSErr FSpRename(const FSSpec *spec,ConstStr255Param newName) = {0x303C,0x000B,0xAA52}; pascal OSErr FSpCatMove(const FSSpec *source,const FSSpec *dest) = {0x303C,0x000C,0xAA52}; pascal OSErr FSpExchangeFiles(const FSSpec *source,const FSSpec *dest) = {0x303C,0x000F,0xAA52}; /* Obsoolete names for PBGetForeignPrivs and PBSetForeignPrivs */ pascal OSErr PBGetAltAccess(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBGetAltAccessSync(__A0) pascal OSErr PBGetAltAccessSync(HParmBlkPtr paramBlock) = {0x7060,0xA060}; #pragma parameter __D0 PBGetAltAccessAsync(__A0) pascal OSErr PBGetAltAccessAsync(HParmBlkPtr paramBlock) = {0x7060,0xA460}; pascal OSErr PBSetAltAccess(HParmBlkPtr paramBlock,Boolean async); #pragma parameter __D0 PBSetAltAccessSync(__A0) pascal OSErr PBSetAltAccessSync(HParmBlkPtr paramBlock) = {0x7061,0xA060}; #pragma parameter __D0 PBSetAltAccessAsync(__A0) pascal OSErr PBSetAltAccessAsync(HParmBlkPtr paramBlock) = {0x7061,0xA460}; #ifdef __cplusplus } #endif #endif