Package Name: files

Return to: Package List


with Interfaces.C; use  Interfaces.C;
with Interfaces.C.Extensions; use  Interfaces.C.Extensions;
with Interfaces.C.Strings; use  Interfaces.C.Strings;
with Types; use  Types;
with OSUtils; use  OSUtils;

package Files is
   --  
   --  File:       Files.h
   --  
   --  Contains:   File Manager (HFS and MFS) Interfaces.
   --  
   --  Version:    Technology: System 7.5
   --              Package:    Universal Interfaces 2.0 in �MPW Latest� on ETO #17
   --  
   --  Copyright:  � 1984-1995 by Apple Computer, Inc.
   --              All rights reserved.

   --  
	fsCurPerm      : constant := 0;
	fsRdPerm       : constant := 1;
	fsWrPerm       : constant := 2;
	fsRdWrPerm     : constant := 3;

	fsRdWrShPerm   : constant := 4;
	fsAtMark       : constant := 0;
	fsFromStart    : constant := 1;
	fsFromLEOF     : constant := 2;
	fsFromMark     : constant := 3;

	rdVerify       : constant := 64;
	ioMapBuffer    : constant := 4;
	ioModeReserved : constant := 8;
 	ioDirFlg       : constant := 4; -- see IM IV-125 }
	ioDirMask      : constant := 16#10#;
	fsRtParID      : constant := 1;

	fsRtDirID      : constant := 2;
	fOnDesk        : constant := 1;
	fInvisible     : constant := 16384;
	fHasBundle     : constant := 8192;
	fTrash         : constant := -3;
	fDesktop       : constant := -2;

	fDisk          : constant := 0;

   subtype CInfoType is SInt8;
   type FInfo is 
      record
         fdType : OSType;                         --  the type of the file
         fdCreator : OSType;                      --  file's creator
         fdFlags : unsigned_short;                --  flags ex. hasbundle,invisible,locked, etc.
         fdLocation : Point;                      --  file's location in folder
         fdFldr : Short_Integer;                  --  folder containing file

      end record;
   type Short_Integer_Vec_3 is array (0 .. 2) of Short_Integer;
   type FXInfo is 
      record
         fdIconID : Short_Integer;                --  Icon ID
         fdUnused : Short_Integer_Vec_3;          --  unused but reserved 6 bytes
         fdScript : SInt8;                        --  Script flag and number
         fdXFlags : SInt8;                        --  More flag bits
         fdComment : Short_Integer;               --  Comment ID
         fdPutAway : Long_Integer;                --  Home Dir ID

      end record;
   type DInfo is 
      record
         frRect : Rect;                           --  folder rect
         frFlags : unsigned_short;                --  Flags
         frLocation : Point;                      --  folder location
         frView : Short_Integer;                  --  folder view

      end record;
   type DXInfo is 
      record
         frScroll : Point;                        --  scroll position
         frOpenChain : Long_Integer;              --  DirID chain of open folders
         frScript : SInt8;                        --  Script flag and number
         frXFlags : SInt8;                        --  More flag bits
         frComment : Short_Integer;               --  comment
         frPutAway : Long_Integer;                --  DirID

      end record;
   type GetVolParmsInfoBuffer is 
      record
         vMVersion : Short_Integer;               --  version number
         vMAttrib : Long_Integer;                 --  bit vector of attributes (see vMAttrib constants)
         vMLocalHand : Handle;                    --  handle to private date
         vMServerAdr : Long_Integer;              --  AppleTalk server address or zero
         vMVolumeGrade : Long_Integer;            --  approx. speed rating or zero if unrated
         vMForeignPrivID : Short_Integer;         --  foreign privilege model supported or zero if none

      end record;
   type ParamBlockRec is array (0 .. 87) of char;
   type ParmBlkPtr is Access ParamBlockRec;
   subtype IOCompletionUPP is UniversalProcPtr;
   type IOParam is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         ioRefNum : Short_Integer;
         ioVersNum : SInt8;
         ioPermssn : SInt8;
         ioMisc : Ptr;
         ioBuffer : Ptr;
         ioReqCount : Long_Integer;
         ioActCount : Long_Integer;
         ioPosMode : Short_Integer;
         ioPosOffset : Long_Integer;
      end record;
   type IOParamPtr is Access IOParam;

   subtype ParamBlockRec_ioParam is IOParam;
   type FileParam is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         ioFRefNum : Short_Integer;
         ioFVersNum : SInt8;
         filler1 : SInt8;
         ioFDirIndex : Short_Integer;
         ioFlAttrib : SInt8;
         ioFlVersNum : SInt8;
         ioFlFndrInfo : FInfo;
         ioFlNum : unsigned_long;
         ioFlStBlk : unsigned_short;
         ioFlLgLen : Long_Integer;
         ioFlPyLen : Long_Integer;
         ioFlRStBlk : unsigned_short;
         ioFlRLgLen : Long_Integer;
         ioFlRPyLen : Long_Integer;
         ioFlCrDat : unsigned_long;
         ioFlMdDat : unsigned_long;
      end record;
   type FileParamPtr is Access FileParam;

   subtype ParamBlockRec_fileParam is FileParam;
   type VolumeParam is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         filler2 : Long_Integer;
         ioVolIndex : Short_Integer;
         ioVCrDate : unsigned_long;
         ioVLsBkUp : unsigned_long;
         ioVAtrb : unsigned_short;
         ioVNmFls : unsigned_short;
         ioVDirSt : unsigned_short;
         ioVBlLn : Short_Integer;
         ioVNmAlBlks : unsigned_short;
         ioVAlBlkSiz : Long_Integer;
         ioVClpSiz : Long_Integer;
         ioAlBlSt : unsigned_short;
         ioVNxtFNum : unsigned_long;
         ioVFrBlk : unsigned_short;
      end record;
   type VolumeParamPtr is Access VolumeParam;

   subtype ParamBlockRec_volumeParam is VolumeParam;
   type Short_Integer_Vec_11 is array (0 .. 10) of Short_Integer;
   type CntrlParam is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         ioCRefNum : Short_Integer;
         csCode : Short_Integer;
         csParam : Short_Integer_Vec_11;
      end record;
   type CntrlParamPtr is Access CntrlParam;

   subtype ParamBlockRec_cntrlParam is CntrlParam;
   type SlotDevParam is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         ioSRefNum : Short_Integer;
         ioSVersNum : SInt8;
         ioSPermssn : SInt8;
         ioSMix : Ptr;
         ioSFlags : Short_Integer;
         ioSlot : SInt8;
         ioID : SInt8;
      end record;
   type SlotDevParamPtr is Access SlotDevParam;

   subtype ParamBlockRec_slotDevParam is SlotDevParam;
   type MultiDevParam is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         ioMRefNum : Short_Integer;
         ioMVersNum : SInt8;
         ioMPermssn : SInt8;
         ioMMix : Ptr;
         ioMFlags : Short_Integer;
         ioSEBlkPtr : Ptr;
      end record;
   type MultiDevParamPtr is Access MultiDevParam;

   subtype ParamBlockRec_multiDevParam is MultiDevParam;
   type HFileInfo is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         ioFRefNum : Short_Integer;
         ioFVersNum : SInt8;
         filler1 : SInt8;
         ioFDirIndex : Short_Integer;
         ioFlAttrib : SInt8;
         filler2 : SInt8;
         ioFlFndrInfo : FInfo;
         ioDirID : Long_Integer;
         ioFlStBlk : unsigned_short;
         ioFlLgLen : Long_Integer;
         ioFlPyLen : Long_Integer;
         ioFlRStBlk : unsigned_short;
         ioFlRLgLen : Long_Integer;
         ioFlRPyLen : Long_Integer;
         ioFlCrDat : unsigned_long;
         ioFlMdDat : unsigned_long;
         ioFlBkDat : unsigned_long;
         ioFlXFndrInfo : FXInfo;
         ioFlParID : Long_Integer;
         ioFlClpSiz : Long_Integer;

      end record;
   type Short_Integer_Vec_9 is array (0 .. 8) of Short_Integer;
   type DirInfo is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         ioFRefNum : Short_Integer;
         ioFVersNum : SInt8;
         filler1 : SInt8;
         ioFDirIndex : Short_Integer;
         ioFlAttrib : SInt8;
         filler2 : SInt8;
         ioDrUsrWds : DInfo;
         ioDrDirID : Long_Integer;
         ioDrNmFls : unsigned_short;
         filler3 : Short_Integer_Vec_9;
         ioDrCrDat : unsigned_long;
         ioDrMdDat : unsigned_long;
         ioDrBkDat : unsigned_long;
         ioDrFndrInfo : DXInfo;
         ioDrParID : Long_Integer;

      end record;
   type CInfoPBRec is new HFileInfo;
   type CInfoPBPtr is access CInfoPBRec;
   type HFileInfoPBPtr is access HFileInfo;

   type DirInfoPBPtr is access DirInfo;
   type Short_Integer_Vec_6 is array (0 .. 5) of Short_Integer;
   type CatPositionRec is 
      record
         initialize : Long_Integer;
         priv : Short_Integer_Vec_6;

      end record;
   type FSSpec is 
      record
         vRefNum : Short_Integer;
         parID : Long_Integer;
         name : Str63;
      end record;
   type FSSpecPtr is Access FSSpec;
   type FSSpecHandle is Access FSSpecPtr;

   subtype FSSpecArrayPtr is FSSpecPtr;

   subtype VolumeType is OSType;
   type VolMountInfoHeader is 
      record
         length : Short_Integer;                  --  length of location data (including self)

         media : VolumeType;                      --  type of media.  Variable length data follows
      end record;

   type VolMountInfoPtr is Access VolMountInfoHeader;
   type char_Vec_144 is array (0 .. 143) of char;
   type AFPVolMountInfo is 
      record
         length : Short_Integer;                  --  length of location data (including self)
         media : VolumeType;                      --  type of media
         flags : Short_Integer;                   --  bits for no messages, no reconnect
         nbpInterval : SInt8;                     --  NBP Interval parameter (IM2, p.322)
         nbpCount : SInt8;                        --  NBP Interval parameter (IM2, p.322)
         uamType : Short_Integer;                 --  User Authentication Method
         zoneNameOffset : Short_Integer;          --  short positive offset from start of struct to Zone Name
         serverNameOffset : Short_Integer;        --  offset to pascal Server Name string
         volNameOffset : Short_Integer;           --  offset to pascal Volume Name string
         userNameOffset : Short_Integer;          --  offset to pascal User Name string
         userPasswordOffset : Short_Integer;      --  offset to pascal User Password string
         volPasswordOffset : Short_Integer;       --  offset to pascal Volume Password string
         AFPData : char_Vec_144;                  --  variable length data may follow
      end record;

   type AFPVolMountInfoPtr is Access AFPVolMountInfo;
   type Short_Integer_Vec_14 is array (0 .. 13) of Short_Integer;
   type DTPBRec is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         ioDTRefNum : Short_Integer;              --  desktop refnum
         ioIndex : Short_Integer;
         ioTagInfo : Long_Integer;
         ioDTBuffer : Ptr;
         ioDTReqCount : Long_Integer;
         ioDTActCount : Long_Integer;
         ioFiller1 : SInt8;
         ioIconType : SInt8;
         ioFiller2 : Short_Integer;
         ioDirID : Long_Integer;
         ioFileCreator : OSType;
         ioFileType : OSType;
         ioFiller3 : Long_Integer;
         ioDTLgLen : Long_Integer;
         ioDTPyLen : Long_Integer;
         ioFiller4 : Short_Integer_Vec_14;
         ioAPPLParID : Long_Integer;
      end record;

   type DTPBPtr is Access DTPBRec;
   type HIOParam is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         ioRefNum : Short_Integer;
         ioVersNum : SInt8;
         ioPermssn : SInt8;
         ioMisc : Ptr;
         ioBuffer : Ptr;
         ioReqCount : Long_Integer;
         ioActCount : Long_Integer;
         ioPosMode : Short_Integer;
         ioPosOffset : Long_Integer;
      end record;

   type HIOParamPtr is Access HIOParam;
   type HFileParam is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         ioFRefNum : Short_Integer;
         ioFVersNum : SInt8;
         filler1 : SInt8;
         ioFDirIndex : Short_Integer;
         ioFlAttrib : SInt8;
         ioFlVersNum : SInt8;
         ioFlFndrInfo : FInfo;
         ioDirID : Long_Integer;
         ioFlStBlk : unsigned_short;
         ioFlLgLen : Long_Integer;
         ioFlPyLen : Long_Integer;
         ioFlRStBlk : unsigned_short;
         ioFlRLgLen : Long_Integer;
         ioFlRPyLen : Long_Integer;
         ioFlCrDat : unsigned_long;
         ioFlMdDat : unsigned_long;
      end record;

   type HFileParamPtr is Access HFileParam;
   type Long_Integer_Vec_8 is array (0 .. 7) of Long_Integer;
   type HVolumeParam is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         filler2 : Long_Integer;
         ioVolIndex : Short_Integer;
         ioVCrDate : unsigned_long;
         ioVLsMod : unsigned_long;
         ioVAtrb : Short_Integer;
         ioVNmFls : unsigned_short;
         ioVBitMap : Short_Integer;
         ioAllocPtr : Short_Integer;
         ioVNmAlBlks : unsigned_short;
         ioVAlBlkSiz : Long_Integer;
         ioVClpSiz : Long_Integer;
         ioAlBlSt : Short_Integer;
         ioVNxtCNID : Long_Integer;
         ioVFrBlk : unsigned_short;
         ioVSigWord : unsigned_short;
         ioVDrvInfo : Short_Integer;
         ioVDRefNum : Short_Integer;
         ioVFSID : Short_Integer;
         ioVBkUp : unsigned_long;
         ioVSeqNum : unsigned_short;
         ioVWrCnt : Long_Integer;
         ioVFilCnt : Long_Integer;
         ioVDirCnt : Long_Integer;
         ioVFndrInfo : Long_Integer_Vec_8;
      end record;

   type HVolumeParamPtr is Access HVolumeParam;
   type AccessParam is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         filler3 : Short_Integer;
         ioDenyModes : Short_Integer;
         filler4 : Short_Integer;
         filler5 : SInt8;
         ioACUser : SInt8;
         filler6 : Long_Integer;
         ioACOwnerID : Long_Integer;
         ioACGroupID : Long_Integer;
         ioACAccess : Long_Integer;
         ioDirID : Long_Integer;
      end record;

   type AccessParamPtr is Access AccessParam;
   type ObjParam is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         filler7 : Short_Integer;
         ioObjType : Short_Integer;
         ioObjNamePtr : StringPtr;
         ioObjID : Long_Integer;
      end record;

   type ObjParamPtr is Access ObjParam;
   type CopyParam is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         ioDstVRefNum : Short_Integer;
         filler8 : Short_Integer;
         ioNewName : StringPtr;
         ioCopyName : StringPtr;
         ioNewDirID : Long_Integer;
         filler14 : Long_Integer;
         filler15 : Long_Integer;
         ioDirID : Long_Integer;
      end record;

   type CopyParamPtr is Access CopyParam;
   type WDParam is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         filler9 : Short_Integer;
         ioWDIndex : Short_Integer;
         ioWDProcID : Long_Integer;
         ioWDVRefNum : Short_Integer;
         filler10 : Short_Integer;
         filler11 : Long_Integer;
         filler12 : Long_Integer;
         filler13 : Long_Integer;
         ioWDDirID : Long_Integer;
      end record;

   type WDParamPtr is Access WDParam;
   type FIDParam is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         filler14 : Long_Integer;
         ioDestNamePtr : StringPtr;
         filler15 : Long_Integer;
         ioDestDirID : Long_Integer;
         filler16 : Long_Integer;
         filler17 : Long_Integer;
         ioSrcDirID : Long_Integer;
         filler18 : Short_Integer;
         ioFileID : Long_Integer;
      end record;

   type FIDParamPtr is Access FIDParam;
   type ForeignPrivParam is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         ioFiller21 : Long_Integer;
         ioFiller22 : Long_Integer;
         ioForeignPrivBuffer : Ptr;
         ioForeignPrivActCount : Long_Integer;
         ioForeignPrivReqCount : Long_Integer;
         ioFiller23 : Long_Integer;
         ioForeignPrivDirID : Long_Integer;
         ioForeignPrivInfo1 : Long_Integer;
         ioForeignPrivInfo2 : Long_Integer;
         ioForeignPrivInfo3 : Long_Integer;
         ioForeignPrivInfo4 : Long_Integer;
      end record;

   type ForeignPrivParamPtr is Access ForeignPrivParam;
   type CSParam is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         ioMatchPtr : FSSpecPtr;
         ioReqMatchCount : Long_Integer;
         ioActMatchCount : Long_Integer;
         ioSearchBits : Long_Integer;
         ioSearchInfo1 : CInfoPBPtr;
         ioSearchInfo2 : CInfoPBPtr;
         ioSearchTime : Long_Integer;
         ioCatPosition : CatPositionRec;
         ioOptBuffer : Ptr;
         ioOptBufSize : Long_Integer;
      end record;

   type CSParamPtr is Access CSParam;
   type HParamBlockRec is array (0 .. 135) of char;
   type HParmBlkPtr is Access HParamBlockRec;
   subtype HParamBlockRec_ioParam is HIOParam;
   subtype HParamBlockRec_fileParam is HFileParam;
   subtype HParamBlockRec_volumeParam is HVolumeParam;
   subtype HParamBlockRec_accessParam is AccessParam;
   subtype HParamBlockRec_objParam is ObjParam;
   subtype HParamBlockRec_copyParam is CopyParam;
   subtype HParamBlockRec_wdParam is WDParam;
   subtype HParamBlockRec_fidParam is FIDParam;
   subtype HParamBlockRec_csParam is CSParam;

   subtype HParamBlockRec_foreignPrivParam is ForeignPrivParam;
   type Long_Integer_Vec_2 is array (0 .. 1) of Long_Integer;
   type CMovePBRec is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         filler1 : Long_Integer;
         ioNewName : StringPtr;
         filler2 : Long_Integer;
         ioNewDirID : Long_Integer;
         filler3 : Long_Integer_Vec_2;
         ioDirID : Long_Integer;
      end record;

   type CMovePBPtr is Access CMovePBRec;
   type Short_Integer_Vec_7 is array (0 .. 6) of Short_Integer;
   type WDPBRec is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         filler1 : Short_Integer;
         ioWDIndex : Short_Integer;
         ioWDProcID : Long_Integer;
         ioWDVRefNum : Short_Integer;
         filler2 : Short_Integer_Vec_7;
         ioWDDirID : Long_Integer;
      end record;

   type WDPBPtr is Access WDPBRec;
   type FCBPBRec is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         ioTrap : Short_Integer;
         ioCmdAddr : Ptr;
         ioCompletion : IOCompletionUPP;
         ioResult : OSErr;
         ioNamePtr : StringPtr;
         ioVRefNum : Short_Integer;
         ioRefNum : Short_Integer;
         filler : Short_Integer;
         ioFCBIndx : Short_Integer;
         filler1 : Short_Integer;
         ioFCBFlNm : Long_Integer;
         ioFCBFlags : Short_Integer;
         ioFCBStBlk : unsigned_short;
         ioFCBEOF : Long_Integer;
         ioFCBPLen : Long_Integer;
         ioFCBCrPs : Long_Integer;
         ioFCBVRefNum : Short_Integer;
         ioFCBClpSiz : Long_Integer;
         ioFCBParID : Long_Integer;
      end record;

   type FCBPBPtr is Access FCBPBRec;
   type VCB is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         vcbFlags : Short_Integer;
         vcbSigWord : unsigned_short;
         vcbCrDate : unsigned_long;
         vcbLsMod : unsigned_long;
         vcbAtrb : Short_Integer;
         vcbNmFls : unsigned_short;
         vcbVBMSt : Short_Integer;
         vcbAllocPtr : Short_Integer;
         vcbNmAlBlks : unsigned_short;
         vcbAlBlkSiz : Long_Integer;
         vcbClpSiz : Long_Integer;
         vcbAlBlSt : Short_Integer;
         vcbNxtCNID : Long_Integer;
         vcbFreeBks : unsigned_short;
         vcbVN : Str27;
         vcbDrvNum : Short_Integer;
         vcbDRefNum : Short_Integer;
         vcbFSID : Short_Integer;
         vcbVRefNum : Short_Integer;
         vcbMAdr : Ptr;
         vcbBufAdr : Ptr;
         vcbMLen : Short_Integer;
         vcbDirIndex : Short_Integer;
         vcbDirBlk : Short_Integer;
         vcbVolBkUp : unsigned_long;
         vcbVSeqNum : unsigned_short;
         vcbWrCnt : Long_Integer;
         vcbXTClpSiz : Long_Integer;
         vcbCTClpSiz : Long_Integer;
         vcbNmRtDirs : unsigned_short;
         vcbFilCnt : Long_Integer;
         vcbDirCnt : Long_Integer;
         vcbFndrInfo : Long_Integer_Vec_8;
         vcbVCSize : unsigned_short;
         vcbVBMCSiz : unsigned_short;
         vcbCtlCSiz : unsigned_short;
         vcbXTAlBlks : unsigned_short;
         vcbCTAlBlks : unsigned_short;
         vcbXTRef : Short_Integer;
         vcbCTRef : Short_Integer;
         vcbCtlBuf : Ptr;
         vcbDirIDM : Long_Integer;
         vcbOffsM : Short_Integer;
      end record;

   type VCBPtr is Access VCB;
   type DrvQEl is 
      record
         qLink : QElemPtr;
         qType : Short_Integer;
         dQDrive : Short_Integer;
         dQRefNum : Short_Integer;
         dQFSID : Short_Integer;
         dQDrvSz : unsigned_short;
         dQDrvSz2 : unsigned_short;
      end record;

   type DrvQElPtr is Access DrvQEl;
   function PBOpenSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBOpenSync, "PBOpenSync", "PBOpenSync");
   function PBOpenAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBOpenAsync, "PBOpenAsync", "PBOpenAsync");
   function PBOpenImmed
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBOpenImmed, "PBOpenImmed", "PBOpenImmed");
   function PBCloseSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBCloseSync, "PBCloseSync", "PBCloseSync");
   function PBCloseAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBCloseAsync, "PBCloseAsync", "PBCloseAsync");
   function PBCloseImmed
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBCloseImmed, "PBCloseImmed", "PBCloseImmed");
   function PBReadSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBReadSync, "PBReadSync", "PBReadSync");
   function PBReadAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBReadAsync, "PBReadAsync", "PBReadAsync");
   function PBReadImmed
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBReadImmed, "PBReadImmed", "PBReadImmed");
   function PBWriteSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBWriteSync, "PBWriteSync", "PBWriteSync");
   function PBWriteAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBWriteAsync, "PBWriteAsync", "PBWriteAsync");
   function PBWriteImmed
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBWriteImmed, "PBWriteImmed", "PBWriteImmed");
   function PBGetVInfoSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBGetVInfoSync, "PBGetVInfoSync", "PBGetVInfoSync");
   function PBGetVInfoAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBGetVInfoAsync, "PBGetVInfoAsync", "PBGetVInfoAsync");
   function PBGetVolSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBGetVolSync, "PBGetVolSync", "PBGetVolSync");
   function PBGetVolAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBGetVolAsync, "PBGetVolAsync", "PBGetVolAsync");
   function PBSetVolSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBSetVolSync, "PBSetVolSync", "PBSetVolSync");
   function PBSetVolAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBSetVolAsync, "PBSetVolAsync", "PBSetVolAsync");
   function PBFlushVolSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBFlushVolSync, "PBFlushVolSync", "PBFlushVolSync");
   function PBFlushVolAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBFlushVolAsync, "PBFlushVolAsync", "PBFlushVolAsync");
   function PBCreateSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBCreateSync, "PBCreateSync", "PBCreateSync");
   function PBCreateAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBCreateAsync, "PBCreateAsync", "PBCreateAsync");
   function PBDeleteSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBDeleteSync, "PBDeleteSync", "PBDeleteSync");
   function PBDeleteAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBDeleteAsync, "PBDeleteAsync", "PBDeleteAsync");
   function PBOpenDFSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBOpenDFSync, "PBOpenDFSync", "PBOpenDFSync");
   function PBOpenDFAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBOpenDFAsync, "PBOpenDFAsync", "PBOpenDFAsync");
   function PBOpenRFSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBOpenRFSync, "PBOpenRFSync", "PBOpenRFSync");
   function PBOpenRFAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBOpenRFAsync, "PBOpenRFAsync", "PBOpenRFAsync");
   function PBRenameSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBRenameSync, "PBRenameSync", "PBRenameSync");
   function PBRenameAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBRenameAsync, "PBRenameAsync", "PBRenameAsync");
   function PBGetFInfoSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBGetFInfoSync, "PBGetFInfoSync", "PBGetFInfoSync");
   function PBGetFInfoAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBGetFInfoAsync, "PBGetFInfoAsync", "PBGetFInfoAsync");
   function PBSetFInfoSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBSetFInfoSync, "PBSetFInfoSync", "PBSetFInfoSync");
   function PBSetFInfoAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBSetFInfoAsync, "PBSetFInfoAsync", "PBSetFInfoAsync");
   function PBSetFLockSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBSetFLockSync, "PBSetFLockSync", "PBSetFLockSync");
   function PBSetFLockAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBSetFLockAsync, "PBSetFLockAsync", "PBSetFLockAsync");
   function PBRstFLockSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBRstFLockSync, "PBRstFLockSync", "PBRstFLockSync");
   function PBRstFLockAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBRstFLockAsync, "PBRstFLockAsync", "PBRstFLockAsync");
   function PBSetFVersSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBSetFVersSync, "PBSetFVersSync", "PBSetFVersSync");
   function PBSetFVersAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBSetFVersAsync, "PBSetFVersAsync", "PBSetFVersAsync");
   function PBAllocateSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBAllocateSync, "PBAllocateSync", "PBAllocateSync");
   function PBAllocateAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBAllocateAsync, "PBAllocateAsync", "PBAllocateAsync");
   function PBGetEOFSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBGetEOFSync, "PBGetEOFSync", "PBGetEOFSync");
   function PBGetEOFAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBGetEOFAsync, "PBGetEOFAsync", "PBGetEOFAsync");
   function PBSetEOFSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBSetEOFSync, "PBSetEOFSync", "PBSetEOFSync");
   function PBSetEOFAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBSetEOFAsync, "PBSetEOFAsync", "PBSetEOFAsync");
   function PBGetFPosSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBGetFPosSync, "PBGetFPosSync", "PBGetFPosSync");
   function PBGetFPosAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBGetFPosAsync, "PBGetFPosAsync", "PBGetFPosAsync");
   function PBSetFPosSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBSetFPosSync, "PBSetFPosSync", "PBSetFPosSync");
   function PBSetFPosAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBSetFPosAsync, "PBSetFPosAsync", "PBSetFPosAsync");
   function PBFlushFileSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBFlushFileSync, "PBFlushFileSync", "PBFlushFileSync");
   function PBFlushFileAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBFlushFileAsync, "PBFlushFileAsync", "PBFlushFileAsync");
   function PBMountVol
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBMountVol, "PBMountVol", "PBMountVol");
   function PBUnmountVol
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBUnmountVol, "PBUnmountVol", "PBUnmountVol");
   function PBEject
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBEject, "PBEject", "PBEject");
   function PBOffLine
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBOffLine, "PBOffLine", "PBOffLine");
   function PBCatSearchSync
     (paramBlock         : in     CSParamPtr)
      return                      OSErr;

   pragma Import (C, PBCatSearchSync, "PBCatSearchSync", "PBCatSearchSync");
   function PBCatSearchAsync
     (paramBlock         : in     CSParamPtr)
      return                      OSErr;

   pragma Import (C, PBCatSearchAsync, "PBCatSearchAsync", "PBCatSearchAsync");
   function SetVol
     (volName            : access Str255;
      vRefNum            : in     Short_Integer)
      return                      OSErr;

   pragma Import (C, SetVol, "SetVol", "SetVol");
   function UnmountVol
     (volName            : access Str255;
      vRefNum            : in     Short_Integer)
      return                      OSErr;

   pragma Import (C, UnmountVol, "UnmountVol", "UnmountVol");
   function Eject
     (volName            : access Str255;
      vRefNum            : in     Short_Integer)
      return                      OSErr;

   pragma Import (C, Eject, "Eject", "Eject");
   function FlushVol
     (volName            : access Str255;
      vRefNum            : in     Short_Integer)
      return                      OSErr;

   pragma Import (C, FlushVol, "FlushVol", "FlushVol");
   function HSetVol
     (volName            : access Str255;
      vRefNum            : in     Short_Integer;
      dirID              : in     Long_Integer)
      return                      OSErr;

   pragma Import (C, HSetVol, "HSetVol", "HSetVol");
   procedure AddDrive
     (drvrRefNum         : in     Short_Integer;
      drvNum             : in     Short_Integer;
      qEl                : in     DrvQElPtr);

   pragma Import (C, AddDrive, "AddDrive", "AddDrive");
   function FSOpen
     (fileName           : access Str255;
      vRefNum            : in     Short_Integer;
      refNum             : access Short_Integer)
      return                      OSErr;

   pragma Import (C, FSOpen, "FSOpen", "FSOpen");
   function OpenDF
     (fileName           : access Str255;
      vRefNum            : in     Short_Integer;
      refNum             : access Short_Integer)
      return                      OSErr;

   pragma Import (C, OpenDF, "OpenDF", "OpenDF");
   function FSClose
     (refNum             : in     Short_Integer)
      return                      OSErr;

   pragma Import (C, FSClose, "FSClose", "FSClose");
   function FSRead
     (refNum             : in     Short_Integer;
      count              : access Long_Integer;
      buffPtr            : in     Ptr)
      return                      OSErr;

   pragma Import (C, FSRead, "FSRead", "FSRead");
   function FSWrite
     (refNum             : in     Short_Integer;
      count              : access Long_Integer;
      buffPtr            : in     Ptr)
      return                      OSErr;

   pragma Import (C, FSWrite, "FSWrite", "FSWrite");
   function GetVInfo
     (drvNum             : in     Short_Integer;
      volName            : access Str255;
      vRefNum            : access Short_Integer;
      freeBytes          : access Long_Integer)
      return                      OSErr;

   pragma Import (C, GetVInfo, "GetVInfo", "GetVInfo");
   function GetFInfo
     (fileName           : access Str255;
      vRefNum            : in     Short_Integer;
      fndrInfo           : access FInfo)
      return                      OSErr;

   pragma Import (C, GetFInfo, "GetFInfo", "GetFInfo");
   function GetVol
     (volName            : access Str255;
      vRefNum            : access Short_Integer)
      return                      OSErr;

   pragma Import (C, GetVol, "GetVol", "GetVol");
   function Create
     (fileName           : access Str255;
      vRefNum            : in     Short_Integer;
      creator            : in     OSType;
      fileType           : in     OSType)
      return                      OSErr;

   pragma Import (C, Create, "Create", "Create");
   function FSDelete
     (fileName           : access Str255;
      vRefNum            : in     Short_Integer)
      return                      OSErr;

   pragma Import (C, FSDelete, "FSDelete", "FSDelete");
   function OpenRF
     (fileName           : access Str255;
      vRefNum            : in     Short_Integer;
      refNum             : access Short_Integer)
      return                      OSErr;

   pragma Import (C, OpenRF, "OpenRF", "OpenRF");
   function Rename
     (oldName            : access Str255;
      vRefNum            : in     Short_Integer;
      newName            : access Str255)
      return                      OSErr;

   pragma Import (C, Rename, "Rename", "Rename");
   function SetFInfo
     (fileName           : access Str255;
      vRefNum            : in     Short_Integer;
      fndrInfo           : access FInfo)
      return                      OSErr;

   pragma Import (C, SetFInfo, "SetFInfo", "SetFInfo");
   function SetFLock
     (fileName           : access Str255;
      vRefNum            : in     Short_Integer)
      return                      OSErr;
   pragma Import (C, SetFLock, "SetFLock", "SetFLock");
 
    function RstFLock
     (fileName           : access Str255;
      vRefNum            : in     Short_Integer)
      return                      OSErr;

   pragma Import (C, RstFLock, "RstFLock", "RstFLock");
   function Allocate
     (refNum             : in     Short_Integer;
      count              : access Long_Integer)
      return                      OSErr;

   pragma Import (C, Allocate, "Allocate", "Allocate");
   function GetEOF
     (refNum             : in     Short_Integer;
      logEOF             : access Long_Integer)
      return                      OSErr;

   pragma Import (C, GetEOF, "GetEOF", "GetEOF");
   function SetEOF
     (refNum             : in     Short_Integer;
      logEOF             : in     Long_Integer)
      return                      OSErr;

   pragma Import (C, SetEOF, "SetEOF", "SetEOF");
   function GetFPos
     (refNum             : in     Short_Integer;
      filePos            : access Long_Integer)
      return                      OSErr;

   pragma Import (C, GetFPos, "GetFPos", "GetFPos");
   function SetFPos
     (refNum             : in     Short_Integer;
      posMode            : in     Short_Integer;
      posOff             : in     Long_Integer)
      return                      OSErr;

   pragma Import (C, SetFPos, "SetFPos", "SetFPos");
   function GetVRefNum
     (fileRefNum         : in     Short_Integer;
      vRefNum            : access Short_Integer)
      return                      OSErr;

   pragma Import (C, GetVRefNum, "GetVRefNum", "GetVRefNum");
   function fsopenC
     (fileName           : in     Chars_Ptr;
      vRefNum            : in     Short_Integer;
      refNum             : access Short_Integer)
      return                      OSErr;

   pragma Import (C, fsopenC, "fsopen", "fsopen");
   function fsopen
     (fileName           : in     Chars_Ptr;
      vRefNum            : in     Short_Integer;
      refNum             : access Short_Integer)
      return                      OSErr

   renames fsopenC;
   function fsopen
     (fileName           : in     String;
      vRefNum            : in     Short_Integer;
      refNum             : access Short_Integer)

      return                      OSErr;
   function getvinfoC
     (drvNum             : in     Short_Integer;
      volName            : in     Chars_Ptr;
      vRefNum            : access Short_Integer;
      freeBytes          : access Long_Integer)
      return                      OSErr;

   pragma Import (C, getvinfoC, "getvinfo", "getvinfo");
   function getvinfo
     (drvNum             : in     Short_Integer;
      volName            : in     Chars_Ptr;
      vRefNum            : access Short_Integer;
      freeBytes          : access Long_Integer)
      return                      OSErr

   renames getvinfoC;
   function getfinfoC
     (fileName           : in     Chars_Ptr;
      vRefNum            : in     Short_Integer;
      fndrInfo           : access FInfo)
      return                      OSErr;

   pragma Import (C, getfinfoC, "getfinfo", "getfinfo");
   function getfinfo
     (fileName           : in     Chars_Ptr;
      vRefNum            : in     Short_Integer;
      fndrInfo           : access FInfo)
      return                      OSErr

   renames getfinfoC;
   function getfinfo
     (fileName           : in     String;
      vRefNum            : in     Short_Integer;
      fndrInfo           : access FInfo)

      return                      OSErr;
   function getvolC
     (volName            : in     Chars_Ptr;
      vRefNum            : access Short_Integer)
      return                      OSErr;

   pragma Import (C, getvolC, "getvol", "getvol");
   function getvol
     (volName            : in     Chars_Ptr;
      vRefNum            : access Short_Integer)
      return                      OSErr

   renames getvolC;
   function setvolC
     (volName            : in     Chars_Ptr;
      vRefNum            : in     Short_Integer)
      return                      OSErr;

   pragma Import (C, setvolC, "setvol", "setvol");
   function setvol
     (volName            : in     Chars_Ptr;
      vRefNum            : in     Short_Integer)
      return                      OSErr

   renames setvolC;
   function setvol
     (volName            : in     String;
      vRefNum            : in     Short_Integer)

      return                      OSErr;
   function unmountvolC
     (volName            : in     Chars_Ptr;
      vRefNum            : in     Short_Integer)
      return                      OSErr;

   pragma Import (C, unmountvolC, "unmountvol", "unmountvol");
   function unmountvol
     (volName            : in     Chars_Ptr;
      vRefNum            : in     Short_Integer)
      return                      OSErr

   renames unmountvolC;
   function unmountvol
     (volName            : in     String;
      vRefNum            : in     Short_Integer)

      return                      OSErr;
   function ejectC
     (volName            : in     Chars_Ptr;
      vRefNum            : in     Short_Integer)
      return                      OSErr;

   pragma Import (C, ejectC, "eject", "eject");
   function eject
     (volName            : in     Chars_Ptr;
      vRefNum            : in     Short_Integer)
      return                      OSErr

   renames ejectC;
   function eject
     (volName            : in     String;
      vRefNum            : in     Short_Integer)

      return                      OSErr;
   function flushvolC
     (volName            : in     Chars_Ptr;
      vRefNum            : in     Short_Integer)
      return                      OSErr;

   pragma Import (C, flushvolC, "flushvol", "flushvol");
   function flushvol
     (volName            : in     Chars_Ptr;
      vRefNum            : in     Short_Integer)
      return                      OSErr

   renames flushvolC;
   function flushvol
     (volName            : in     String;
      vRefNum            : in     Short_Integer)

      return                      OSErr;
   function createC
     (fileName           : in     Chars_Ptr;
      vRefNum            : in     Short_Integer;
      creator            : in     OSType;
      fileType           : in     OSType)
      return                      OSErr;

   pragma Import (C, createC, "create", "create");
   function create
     (fileName           : in     Chars_Ptr;
      vRefNum            : in     Short_Integer;
      creator            : in     OSType;
      fileType           : in     OSType)
      return                      OSErr

   renames createC;
   function create
     (fileName           : in     String;
      vRefNum            : in     Short_Integer;
      creator            : in     OSType;
      fileType           : in     OSType)

      return                      OSErr;
   function fsdeleteC
     (fileName           : in     Chars_Ptr;
      vRefNum            : in     Short_Integer)
      return                      OSErr;

   pragma Import (C, fsdeleteC, "fsdelete", "fsdelete");
   function fsdelete
     (fileName           : in     Chars_Ptr;
      vRefNum            : in     Short_Integer)
      return                      OSErr

   renames fsdeleteC;
   function fsdelete
     (fileName           : in     String;
      vRefNum            : in     Short_Integer)

      return                      OSErr;
   function openrfC
     (fileName           : in     Chars_Ptr;
      vRefNum            : in     Short_Integer;
      refNum             : access Short_Integer)
      return                      OSErr;

   pragma Import (C, openrfC, "openrf", "openrf");
   function openrf
     (fileName           : in     Chars_Ptr;
      vRefNum            : in     Short_Integer;
      refNum             : access Short_Integer)
      return                      OSErr

   renames openrfC;
   function openrf
     (fileName           : in     String;
      vRefNum            : in     Short_Integer;
      refNum             : access Short_Integer)

      return                      OSErr;
   function fsrenameC
     (oldName            : in     Chars_Ptr;
      vRefNum            : in     Short_Integer;
      newName            : in     Chars_Ptr)
      return                      OSErr;

   pragma Import (C, fsrenameC, "fsrename", "fsrename");
   function fsrename
     (oldName            : in     Chars_Ptr;
      vRefNum            : in     Short_Integer;
      newName            : in     Chars_Ptr)
      return                      OSErr

   renames fsrenameC;
   function fsrename
     (oldName            : in     String;
      vRefNum            : in     Short_Integer;
      newName            : in     String)

      return                      OSErr;
   function setfinfoC
     (fileName           : in     Chars_Ptr;
      vRefNum            : in     Short_Integer;
      fndrInfo           : access FInfo)
      return                      OSErr;

   pragma Import (C, setfinfoC, "setfinfo", "setfinfo");
   function setfinfo
     (fileName           : in     Chars_Ptr;
      vRefNum            : in     Short_Integer;
      fndrInfo           : access FInfo)
      return                      OSErr

   renames setfinfoC;
   function setfinfo
     (fileName           : in     String;
      vRefNum            : in     Short_Integer;
      fndrInfo           : access FInfo)

      return                      OSErr;
   function setflockC
     (fileName           : in     Chars_Ptr;
      vRefNum            : in     Short_Integer)
      return                      OSErr;

   pragma Import (C, setflockC, "setflock", "setflock");
   function setflock
     (fileName           : in     Chars_Ptr;
      vRefNum            : in     Short_Integer)
      return                      OSErr

   renames setflockC;
   function setflock
     (fileName           : in     String;
      vRefNum            : in     Short_Integer)

      return                      OSErr;
   function rstflockC
     (fileName           : in     Chars_Ptr;
      vRefNum            : in     Short_Integer)
      return                      OSErr;

   pragma Import (C, rstflockC, "rstflock", "rstflock");
   function rstflock
     (fileName           : in     Chars_Ptr;
      vRefNum            : in     Short_Integer)
      return                      OSErr

   renames rstflockC;
   function rstflock
     (fileName           : in     String;
      vRefNum            : in     Short_Integer)

      return                      OSErr;
   function PBOpenWDSync
     (paramBlock         : in     WDPBPtr)
      return                      OSErr;

   pragma Import (C, PBOpenWDSync, "PBOpenWDSync", "PBOpenWDSync");
   function PBOpenWDAsync
     (paramBlock         : in     WDPBPtr)
      return                      OSErr;

   pragma Import (C, PBOpenWDAsync, "PBOpenWDAsync", "PBOpenWDAsync");
   function PBCloseWDSync
     (paramBlock         : in     WDPBPtr)
      return                      OSErr;

   pragma Import (C, PBCloseWDSync, "PBCloseWDSync", "PBCloseWDSync");
   function PBCloseWDAsync
     (paramBlock         : in     WDPBPtr)
      return                      OSErr;

   pragma Import (C, PBCloseWDAsync, "PBCloseWDAsync", "PBCloseWDAsync");
   function PBHSetVolSync
     (paramBlock         : in     WDPBPtr)
      return                      OSErr;

   pragma Import (C, PBHSetVolSync, "PBHSetVolSync", "PBHSetVolSync");
   function PBHSetVolAsync
     (paramBlock         : in     WDPBPtr)
      return                      OSErr;

   pragma Import (C, PBHSetVolAsync, "PBHSetVolAsync", "PBHSetVolAsync");
   function PBHGetVolSync
     (paramBlock         : in     WDPBPtr)
      return                      OSErr;

   pragma Import (C, PBHGetVolSync, "PBHGetVolSync", "PBHGetVolSync");
   function PBHGetVolAsync
     (paramBlock         : in     WDPBPtr)
      return                      OSErr;

   pragma Import (C, PBHGetVolAsync, "PBHGetVolAsync", "PBHGetVolAsync");
   function PBCatMoveSync
     (paramBlock         : in     CMovePBPtr)
      return                      OSErr;

   pragma Import (C, PBCatMoveSync, "PBCatMoveSync", "PBCatMoveSync");
   function PBCatMoveAsync
     (paramBlock         : in     CMovePBPtr)
      return                      OSErr;

   pragma Import (C, PBCatMoveAsync, "PBCatMoveAsync", "PBCatMoveAsync");
   function PBDirCreateSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBDirCreateSync, "PBDirCreateSync", "PBDirCreateSync");
   function PBDirCreateAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBDirCreateAsync, "PBDirCreateAsync", "PBDirCreateAsync");
   function PBGetWDInfoSync
     (paramBlock         : in     WDPBPtr)
      return                      OSErr;

   pragma Import (C, PBGetWDInfoSync, "PBGetWDInfoSync", "PBGetWDInfoSync");
   function PBGetWDInfoAsync
     (paramBlock         : in     WDPBPtr)
      return                      OSErr;

   pragma Import (C, PBGetWDInfoAsync, "PBGetWDInfoAsync", "PBGetWDInfoAsync");
   function PBGetFCBInfoSync
     (paramBlock         : in     FCBPBPtr)
      return                      OSErr;

   pragma Import (C, PBGetFCBInfoSync, "PBGetFCBInfoSync", "PBGetFCBInfoSync");
   function PBGetFCBInfoAsync
     (paramBlock         : in     FCBPBPtr)
      return                      OSErr;

   pragma Import (C, PBGetFCBInfoAsync, "PBGetFCBInfoAsync", "PBGetFCBInfoAsync");
   function PBGetCatInfoSync
     (paramBlock         : in     CInfoPBPtr)
      return                      OSErr;

   pragma Import (C, PBGetCatInfoSync, "PBGetCatInfoSync", "PBGetCatInfoSync");
   function PBGetCatInfoAsync
     (paramBlock         : in     CInfoPBPtr)
      return                      OSErr;

   pragma Import (C, PBGetCatInfoAsync, "PBGetCatInfoAsync", "PBGetCatInfoAsync");
   function PBSetCatInfoSync
     (paramBlock         : in     CInfoPBPtr)
      return                      OSErr;

   pragma Import (C, PBSetCatInfoSync, "PBSetCatInfoSync", "PBSetCatInfoSync");
   function PBSetCatInfoAsync
     (paramBlock         : in     CInfoPBPtr)
      return                      OSErr;

   pragma Import (C, PBSetCatInfoAsync, "PBSetCatInfoAsync", "PBSetCatInfoAsync");
   function PBAllocContigSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBAllocContigSync, "PBAllocContigSync", "PBAllocContigSync");
   function PBAllocContigAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBAllocContigAsync, "PBAllocContigAsync", "PBAllocContigAsync");
   function PBLockRangeSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBLockRangeSync, "PBLockRangeSync", "PBLockRangeSync");
   function PBLockRangeAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBLockRangeAsync, "PBLockRangeAsync", "PBLockRangeAsync");
   function PBUnlockRangeSync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBUnlockRangeSync, "PBUnlockRangeSync", "PBUnlockRangeSync");
   function PBUnlockRangeAsync
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBUnlockRangeAsync, "PBUnlockRangeAsync", "PBUnlockRangeAsync");
   function PBSetVInfoSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBSetVInfoSync, "PBSetVInfoSync", "PBSetVInfoSync");
   function PBSetVInfoAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBSetVInfoAsync, "PBSetVInfoAsync", "PBSetVInfoAsync");
   function PBHGetVInfoSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHGetVInfoSync, "PBHGetVInfoSync", "PBHGetVInfoSync");
   function PBHGetVInfoAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHGetVInfoAsync, "PBHGetVInfoAsync", "PBHGetVInfoAsync");
   function PBHOpenSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHOpenSync, "PBHOpenSync", "PBHOpenSync");
   function PBHOpenAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHOpenAsync, "PBHOpenAsync", "PBHOpenAsync");
   function PBHOpenRFSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHOpenRFSync, "PBHOpenRFSync", "PBHOpenRFSync");
   function PBHOpenRFAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHOpenRFAsync, "PBHOpenRFAsync", "PBHOpenRFAsync");
   function PBHOpenDFSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHOpenDFSync, "PBHOpenDFSync", "PBHOpenDFSync");
   function PBHOpenDFAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHOpenDFAsync, "PBHOpenDFAsync", "PBHOpenDFAsync");
   function PBHCreateSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHCreateSync, "PBHCreateSync", "PBHCreateSync");
   function PBHCreateAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHCreateAsync, "PBHCreateAsync", "PBHCreateAsync");
   function PBHDeleteSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHDeleteSync, "PBHDeleteSync", "PBHDeleteSync");
   function PBHDeleteAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHDeleteAsync, "PBHDeleteAsync", "PBHDeleteAsync");
   function PBHRenameSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHRenameSync, "PBHRenameSync", "PBHRenameSync");
   function PBHRenameAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHRenameAsync, "PBHRenameAsync", "PBHRenameAsync");
   function PBHRstFLockSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHRstFLockSync, "PBHRstFLockSync", "PBHRstFLockSync");
   function PBHRstFLockAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHRstFLockAsync, "PBHRstFLockAsync", "PBHRstFLockAsync");
   function PBHSetFLockSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHSetFLockSync, "PBHSetFLockSync", "PBHSetFLockSync");
   function PBHSetFLockAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHSetFLockAsync, "PBHSetFLockAsync", "PBHSetFLockAsync");
   function PBHGetFInfoSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHGetFInfoSync, "PBHGetFInfoSync", "PBHGetFInfoSync");
   function PBHGetFInfoAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHGetFInfoAsync, "PBHGetFInfoAsync", "PBHGetFInfoAsync");
   function PBHSetFInfoSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHSetFInfoSync, "PBHSetFInfoSync", "PBHSetFInfoSync");
   function PBHSetFInfoAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHSetFInfoAsync, "PBHSetFInfoAsync", "PBHSetFInfoAsync");
   function PBMakeFSSpecSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBMakeFSSpecSync, "PBMakeFSSpecSync", "PBMakeFSSpecSync");
   function PBMakeFSSpecAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBMakeFSSpecAsync, "PBMakeFSSpecAsync", "PBMakeFSSpecAsync");
   procedure FInitQueue;

   pragma Import (C, FInitQueue, "FInitQueue", "FInitQueue");
   function GetFSQHdr
      return                      QHdrPtr;

   pragma Import (C, GetFSQHdr, "GetFSQHdr", "GetFSQHdr");
   function GetDrvQHdr
      return                      QHdrPtr;

   pragma Import (C, GetDrvQHdr, "GetDrvQHdr", "GetDrvQHdr");
   function GetVCBQHdr
      return                      QHdrPtr;

   pragma Import (C, GetVCBQHdr, "GetVCBQHdr", "GetVCBQHdr");
   function HGetVol
     (volName            : access Str255;
      vRefNum            : access Short_Integer;
      dirID              : access Long_Integer)
      return                      OSErr;

   pragma Import (C, HGetVol, "HGetVol", "HGetVol");
   function HOpen
     (vRefNum            : in     Short_Integer;
      dirID              : in     Long_Integer;
      fileName           : access Str255;
      permission         : in     SInt8;
      refNum             : access Short_Integer)
      return                      OSErr;

   pragma Import (C, HOpen, "HOpen", "HOpen");
   function HOpenDF
     (vRefNum            : in     Short_Integer;
      dirID              : in     Long_Integer;
      fileName           : access Str255;
      permission         : in     SInt8;
      refNum             : access Short_Integer)
      return                      OSErr;

   pragma Import (C, HOpenDF, "HOpenDF", "HOpenDF");
   function HOpenRF
     (vRefNum            : in     Short_Integer;
      dirID              : in     Long_Integer;
      fileName           : access Str255;
      permission         : in     SInt8;
      refNum             : access Short_Integer)
      return                      OSErr;

   pragma Import (C, HOpenRF, "HOpenRF", "HOpenRF");
   function AllocContig
     (refNum             : in     Short_Integer;
      count              : access Long_Integer)
      return                      OSErr;

   pragma Import (C, AllocContig, "AllocContig", "AllocContig");
   function HCreate
     (vRefNum            : in     Short_Integer;
      dirID              : in     Long_Integer;
      fileName           : access Str255;
      creator            : in     OSType;
      fileType           : in     OSType)
      return                      OSErr;

   pragma Import (C, HCreate, "HCreate", "HCreate");
   function DirCreate
     (vRefNum            : in     Short_Integer;
      parentDirID        : in     Long_Integer;
      directoryName      : access Str255;
      createdDirID       : access Long_Integer)
      return                      OSErr;

   pragma Import (C, DirCreate, "DirCreate", "DirCreate");
   function HDelete
     (vRefNum            : in     Short_Integer;
      dirID              : in     Long_Integer;
      fileName           : access Str255)
      return                      OSErr;

   pragma Import (C, HDelete, "HDelete", "HDelete");
   function HGetFInfo
     (vRefNum            : in     Short_Integer;
      dirID              : in     Long_Integer;
      fileName           : access Str255;
      fndrInfo           : access FInfo)
      return                      OSErr;

   pragma Import (C, HGetFInfo, "HGetFInfo", "HGetFInfo");
   function HSetFInfo
     (vRefNum            : in     Short_Integer;
      dirID              : in     Long_Integer;
      fileName           : access Str255;
      fndrInfo           : access FInfo)
      return                      OSErr;

   pragma Import (C, HSetFInfo, "HSetFInfo", "HSetFInfo");
   function HSetFLock
     (vRefNum            : in     Short_Integer;
      dirID              : in     Long_Integer;
      fileName           : access Str255)
      return                      OSErr;

   pragma Import (C, HSetFLock, "HSetFLock", "HSetFLock");
   function HRstFLock
     (vRefNum            : in     Short_Integer;
      dirID              : in     Long_Integer;
      fileName           : access Str255)
      return                      OSErr;

   pragma Import (C, HRstFLock, "HRstFLock", "HRstFLock");
   function HRename
     (vRefNum            : in     Short_Integer;
      dirID              : in     Long_Integer;
      oldName            : access Str255;
      newName            : access Str255)
      return                      OSErr;

   pragma Import (C, HRename, "HRename", "HRename");
   function CatMove
     (vRefNum            : in     Short_Integer;
      dirID              : in     Long_Integer;
      oldName            : access Str255;
      newDirID           : in     Long_Integer;
      newName            : access Str255)
      return                      OSErr;

   pragma Import (C, CatMove, "CatMove", "CatMove");
   function OpenWD
     (vRefNum            : in     Short_Integer;
      dirID              : in     Long_Integer;
      procID             : in     Long_Integer;
      wdRefNum           : access Short_Integer)
      return                      OSErr;

   pragma Import (C, OpenWD, "OpenWD", "OpenWD");
   function CloseWD
     (wdRefNum           : in     Short_Integer)
      return                      OSErr;

   pragma Import (C, CloseWD, "CloseWD", "CloseWD");
   function GetWDInfo
     (wdRefNum           : in     Short_Integer;
      vRefNum            : access Short_Integer;
      dirID              : access Long_Integer;
      procID             : access Long_Integer)
      return                      OSErr;

   pragma Import (C, GetWDInfo, "GetWDInfo", "GetWDInfo");

   --  shared environment
   function PBHGetVolParmsSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHGetVolParmsSync, "PBHGetVolParmsSync", "PBHGetVolParmsSync");
   function PBHGetVolParmsAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHGetVolParmsAsync, "PBHGetVolParmsAsync", "PBHGetVolParmsAsync");
   function PBHGetLogInInfoSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHGetLogInInfoSync, "PBHGetLogInInfoSync", "PBHGetLogInInfoSync");
   function PBHGetLogInInfoAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHGetLogInInfoAsync, "PBHGetLogInInfoAsync", "PBHGetLogInInfoAsync");
   function PBHGetDirAccessSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHGetDirAccessSync, "PBHGetDirAccessSync", "PBHGetDirAccessSync");
   function PBHGetDirAccessAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHGetDirAccessAsync, "PBHGetDirAccessAsync", "PBHGetDirAccessAsync");
   function PBHSetDirAccessSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHSetDirAccessSync, "PBHSetDirAccessSync", "PBHSetDirAccessSync");
   function PBHSetDirAccessAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHSetDirAccessAsync, "PBHSetDirAccessAsync", "PBHSetDirAccessAsync");
   function PBHMapIDSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHMapIDSync, "PBHMapIDSync", "PBHMapIDSync");
   function PBHMapIDAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHMapIDAsync, "PBHMapIDAsync", "PBHMapIDAsync");
   function PBHMapNameSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHMapNameSync, "PBHMapNameSync", "PBHMapNameSync");
   function PBHMapNameAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHMapNameAsync, "PBHMapNameAsync", "PBHMapNameAsync");
   function PBHCopyFileSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHCopyFileSync, "PBHCopyFileSync", "PBHCopyFileSync");
   function PBHCopyFileAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHCopyFileAsync, "PBHCopyFileAsync", "PBHCopyFileAsync");
   function PBHMoveRenameSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHMoveRenameSync, "PBHMoveRenameSync", "PBHMoveRenameSync");
   function PBHMoveRenameAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHMoveRenameAsync, "PBHMoveRenameAsync", "PBHMoveRenameAsync");
   function PBHOpenDenySync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHOpenDenySync, "PBHOpenDenySync", "PBHOpenDenySync");
   function PBHOpenDenyAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHOpenDenyAsync, "PBHOpenDenyAsync", "PBHOpenDenyAsync");
   function PBHOpenRFDenySync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHOpenRFDenySync, "PBHOpenRFDenySync", "PBHOpenRFDenySync");
   function PBHOpenRFDenyAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBHOpenRFDenyAsync, "PBHOpenRFDenyAsync", "PBHOpenRFDenyAsync");
   function PBExchangeFilesSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBExchangeFilesSync, "PBExchangeFilesSync", "PBExchangeFilesSync");
   function PBExchangeFilesAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBExchangeFilesAsync, "PBExchangeFilesAsync", "PBExchangeFilesAsync");
   function PBCreateFileIDRefSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBCreateFileIDRefSync, "PBCreateFileIDRefSync", "PBCreateFileIDRefSync");
   function PBCreateFileIDRefAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBCreateFileIDRefAsync, "PBCreateFileIDRefAsync", "PBCreateFileIDRefAsync");
   function PBResolveFileIDRefSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBResolveFileIDRefSync, "PBResolveFileIDRefSync", "PBResolveFileIDRefSync");
   function PBResolveFileIDRefAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBResolveFileIDRefAsync, "PBResolveFileIDRefAsync", "PBResolveFileIDRefAsync");
   function PBDeleteFileIDRefSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBDeleteFileIDRefSync, "PBDeleteFileIDRefSync", "PBDeleteFileIDRefSync");
   function PBDeleteFileIDRefAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBDeleteFileIDRefAsync, "PBDeleteFileIDRefAsync", "PBDeleteFileIDRefAsync");
   function PBGetForeignPrivsSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBGetForeignPrivsSync, "PBGetForeignPrivsSync", "PBGetForeignPrivsSync");
   function PBGetForeignPrivsAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBGetForeignPrivsAsync, "PBGetForeignPrivsAsync", "PBGetForeignPrivsAsync");
   function PBSetForeignPrivsSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBSetForeignPrivsSync, "PBSetForeignPrivsSync", "PBSetForeignPrivsSync");
   function PBSetForeignPrivsAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;
   pragma Import (C, PBSetForeignPrivsAsync, "PBSetForeignPrivsAsync", "PBSetForeignPrivsAsync");

   --  Desktop Manager
   function PBDTGetPath
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTGetPath, "PBDTGetPath", "PBDTGetPath");
   function PBDTCloseDown
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTCloseDown, "PBDTCloseDown", "PBDTCloseDown");
   function PBDTAddIconSync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTAddIconSync, "PBDTAddIconSync", "PBDTAddIconSync");
   function PBDTAddIconAsync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTAddIconAsync, "PBDTAddIconAsync", "PBDTAddIconAsync");
   function PBDTGetIconSync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTGetIconSync, "PBDTGetIconSync", "PBDTGetIconSync");
   function PBDTGetIconAsync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTGetIconAsync, "PBDTGetIconAsync", "PBDTGetIconAsync");
   function PBDTGetIconInfoSync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTGetIconInfoSync, "PBDTGetIconInfoSync", "PBDTGetIconInfoSync");
   function PBDTGetIconInfoAsync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTGetIconInfoAsync, "PBDTGetIconInfoAsync", "PBDTGetIconInfoAsync");
   function PBDTAddAPPLSync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTAddAPPLSync, "PBDTAddAPPLSync", "PBDTAddAPPLSync");
   function PBDTAddAPPLAsync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTAddAPPLAsync, "PBDTAddAPPLAsync", "PBDTAddAPPLAsync");
   function PBDTRemoveAPPLSync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTRemoveAPPLSync, "PBDTRemoveAPPLSync", "PBDTRemoveAPPLSync");
   function PBDTRemoveAPPLAsync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTRemoveAPPLAsync, "PBDTRemoveAPPLAsync", "PBDTRemoveAPPLAsync");
   function PBDTGetAPPLSync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTGetAPPLSync, "PBDTGetAPPLSync", "PBDTGetAPPLSync");
   function PBDTGetAPPLAsync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTGetAPPLAsync, "PBDTGetAPPLAsync", "PBDTGetAPPLAsync");
   function PBDTSetCommentSync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTSetCommentSync, "PBDTSetCommentSync", "PBDTSetCommentSync");
   function PBDTSetCommentAsync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTSetCommentAsync, "PBDTSetCommentAsync", "PBDTSetCommentAsync");
   function PBDTRemoveCommentSync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTRemoveCommentSync, "PBDTRemoveCommentSync", "PBDTRemoveCommentSync");
   function PBDTRemoveCommentAsync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTRemoveCommentAsync, "PBDTRemoveCommentAsync", "PBDTRemoveCommentAsync");
   function PBDTGetCommentSync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTGetCommentSync, "PBDTGetCommentSync", "PBDTGetCommentSync");
   function PBDTGetCommentAsync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTGetCommentAsync, "PBDTGetCommentAsync", "PBDTGetCommentAsync");
   function PBDTFlushSync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTFlushSync, "PBDTFlushSync", "PBDTFlushSync");
   function PBDTFlushAsync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTFlushAsync, "PBDTFlushAsync", "PBDTFlushAsync");
   function PBDTResetSync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTResetSync, "PBDTResetSync", "PBDTResetSync");
   function PBDTResetAsync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTResetAsync, "PBDTResetAsync", "PBDTResetAsync");
   function PBDTGetInfoSync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTGetInfoSync, "PBDTGetInfoSync", "PBDTGetInfoSync");
   function PBDTGetInfoAsync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTGetInfoAsync, "PBDTGetInfoAsync", "PBDTGetInfoAsync");
   function PBDTOpenInform
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTOpenInform, "PBDTOpenInform", "PBDTOpenInform");
   function PBDTDeleteSync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;

   pragma Import (C, PBDTDeleteSync, "PBDTDeleteSync", "PBDTDeleteSync");
   function PBDTDeleteAsync
     (paramBlock         : in     DTPBPtr)
      return                      OSErr;
   pragma Import (C, PBDTDeleteAsync, "PBDTDeleteAsync", "PBDTDeleteAsync");

   --  VolumeMount traps
   function PBGetVolMountInfoSize
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBGetVolMountInfoSize, "PBGetVolMountInfoSize", "PBGetVolMountInfoSize");
   function PBGetVolMountInfo
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBGetVolMountInfo, "PBGetVolMountInfo", "PBGetVolMountInfo");
   function PBVolumeMount
     (paramBlock         : in     ParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBVolumeMount, "PBVolumeMount", "PBVolumeMount");

   --  FSp traps
   function FSMakeFSSpec
     (vRefNum            : in     Short_Integer;
      dirID              : in     Long_Integer;
      fileName           : access Str255;
      spec               : access FSSpec)
      return                      OSErr;

   pragma Import (C, FSMakeFSSpec, "FSMakeFSSpec", "FSMakeFSSpec");
   function FSpOpenDF
     (spec               : access FSSpec;
      permission         : in     SInt8;
      refNum             : access Short_Integer)
      return                      OSErr;

   pragma Import (C, FSpOpenDF, "FSpOpenDF", "FSpOpenDF");
   function FSpOpenRF
     (spec               : access FSSpec;
      permission         : in     SInt8;
      refNum             : access Short_Integer)
      return                      OSErr;

   pragma Import (C, FSpOpenRF, "FSpOpenRF", "FSpOpenRF");
   function FSpCreate
     (spec               : access FSSpec;
      creator            : in     OSType;
      fileType           : in     OSType;
      scriptTag          : in     ScriptCode)
      return                      OSErr;

   pragma Import (C, FSpCreate, "FSpCreate", "FSpCreate");
   function FSpDirCreate
     (spec               : access FSSpec;
      scriptTag          : in     ScriptCode;
      createdDirID       : access Long_Integer)
      return                      OSErr;

   pragma Import (C, FSpDirCreate, "FSpDirCreate", "FSpDirCreate");
   function FSpDelete
     (spec               : access FSSpec)
      return                      OSErr;

   pragma Import (C, FSpDelete, "FSpDelete", "FSpDelete");
   function FSpGetFInfo
     (spec               : access FSSpec;
      fndrInfo           : access FInfo)
      return                      OSErr;

   pragma Import (C, FSpGetFInfo, "FSpGetFInfo", "FSpGetFInfo");
   function FSpSetFInfo
     (spec               : access FSSpec;
      fndrInfo           : access FInfo)
      return                      OSErr;

   pragma Import (C, FSpSetFInfo, "FSpSetFInfo", "FSpSetFInfo");
   function FSpSetFLock
     (spec               : access FSSpec)
      return                      OSErr;

   pragma Import (C, FSpSetFLock, "FSpSetFLock", "FSpSetFLock");
   function FSpRstFLock
     (spec               : access FSSpec)
      return                      OSErr;

   pragma Import (C, FSpRstFLock, "FSpRstFLock", "FSpRstFLock");
   function FSpRename
     (spec               : access FSSpec;
      newName            : access Str255)
      return                      OSErr;

   pragma Import (C, FSpRename, "FSpRename", "FSpRename");
   function FSpCatMove
     (source             : access FSSpec;
      dest               : access FSSpec)
      return                      OSErr;

   pragma Import (C, FSpCatMove, "FSpCatMove", "FSpCatMove");
   function FSpExchangeFiles
     (source             : access FSSpec;
      dest               : access FSSpec)
      return                      OSErr;

   pragma Import (C, FSpExchangeFiles, "FSpExchangeFiles", "FSpExchangeFiles");
   function PBShareSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBShareSync, "PBShareSync", "PBShareSync");
   function PBShareAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBShareAsync, "PBShareAsync", "PBShareAsync");
   function PBUnshareSync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBUnshareSync, "PBUnshareSync", "PBUnshareSync");
   function PBUnshareAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBUnshareAsync, "PBUnshareAsync", "PBUnshareAsync");
   function PBGetUGEntrySync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBGetUGEntrySync, "PBGetUGEntrySync", "PBGetUGEntrySync");
   function PBGetUGEntryAsync
     (paramBlock         : in     HParmBlkPtr)
      return                      OSErr;

   pragma Import (C, PBGetUGEntryAsync, "PBGetUGEntryAsync", "PBGetUGEntryAsync");
end Files;