FSM.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:61k
- /*
- File: FSM.h
-
- Contains: HFS External File System Interfaces.
-
- Version: Technology: Mac OS 9
- Release: QuickTime 6.0.2
-
- Copyright: (c) 1985-2001 by Apple Computer, Inc., all rights reserved
-
- Bugs?: For bug reports, consult the following page on
- the World Wide Web:
-
- http://developer.apple.com/bugreporter/
-
- */
- #ifndef __FSM__
- #define __FSM__
- #ifndef __FILES__
- #include "Files.h"
- #endif
- #ifndef __HFSVOLUMES__
- #include "HFSVolumes.h"
- #endif
- #ifndef __PROCESSES__
- #include "Processes.h"
- #endif
- #ifndef __MACERRORS__
- #include "MacErrors.h"
- #endif
- #if PRAGMA_ONCE
- #pragma once
- #endif
- #ifdef __cplusplus
- extern "C" {
- #endif
- #if PRAGMA_IMPORT
- #pragma import on
- #endif
- #if PRAGMA_STRUCT_ALIGN
- #pragma options align=mac68k
- #elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(push, 2)
- #elif PRAGMA_STRUCT_PACK
- #pragma pack(2)
- #endif
- /* VolMount declarations are now in Files.* */
- /*
- * Miscellaneous file system values not in Files.*
- */
- enum {
- fsUsrCNID = 16, /* First assignable directory or file number */
- /* File system trap word attribute bits */
- kHFSBit = 9, /* HFS call: bit 9 */
- kHFSMask = 0x0200,
- kAsyncBit = 10, /* Asynchronous call: bit 10 */
- kAsyncMask = 0x0400
- };
- /*
- * HFSCIProc selectCode values
- * Note: The trap attribute bits (the HFS bit and the asynchronous bit)
- * may be set in these selectCode values.
- */
- enum {
- kFSMOpen = 0xA000,
- kFSMClose = 0xA001,
- kFSMRead = 0xA002,
- kFSMWrite = 0xA003,
- kFSMGetVolInfo = 0xA007,
- kFSMCreate = 0xA008,
- kFSMDelete = 0xA009,
- kFSMOpenRF = 0xA00A,
- kFSMRename = 0xA00B,
- kFSMGetFileInfo = 0xA00C,
- kFSMSetFileInfo = 0xA00D,
- kFSMUnmountVol = 0xA00E,
- kFSMMountVol = 0xA00F,
- kFSMAllocate = 0xA010,
- kFSMGetEOF = 0xA011,
- kFSMSetEOF = 0xA012,
- kFSMFlushVol = 0xA013,
- kFSMGetVol = 0xA014,
- kFSMSetVol = 0xA015,
- kFSMEject = 0xA017,
- kFSMGetFPos = 0xA018,
- kFSMOffline = 0xA035,
- kFSMSetFilLock = 0xA041,
- kFSMRstFilLock = 0xA042,
- kFSMSetFilType = 0xA043,
- kFSMSetFPos = 0xA044,
- kFSMFlushFile = 0xA045, /* The File System HFSDispatch selectCodes */
- kFSMOpenWD = 0x0001,
- kFSMCloseWD = 0x0002,
- kFSMCatMove = 0x0005,
- kFSMDirCreate = 0x0006,
- kFSMGetWDInfo = 0x0007,
- kFSMGetFCBInfo = 0x0008,
- kFSMGetCatInfo = 0x0009,
- kFSMSetCatInfo = 0x000A,
- kFSMSetVolInfo = 0x000B,
- kFSMLockRng = 0x0010,
- kFSMUnlockRng = 0x0011,
- kFSMXGetVolInfo = 0x0012,
- kFSMCreateFileIDRef = 0x0014,
- kFSMDeleteFileIDRef = 0x0015,
- kFSMResolveFileIDRef = 0x0016,
- kFSMExchangeFiles = 0x0017,
- kFSMCatSearch = 0x0018,
- kFSMOpenDF = 0x001A,
- kFSMMakeFSSpec = 0x001B, /* The Desktop Manager HFSDispatch selectCodes */
- kFSMDTGetPath = 0x0020,
- kFSMDTCloseDown = 0x0021,
- kFSMDTAddIcon = 0x0022,
- kFSMDTGetIcon = 0x0023,
- kFSMDTGetIconInfo = 0x0024,
- kFSMDTAddAPPL = 0x0025,
- kFSMDTRemoveAPPL = 0x0026,
- kFSMDTGetAPPL = 0x0027,
- kFSMDTSetComment = 0x0028,
- kFSMDTRemoveComment = 0x0029,
- kFSMDTGetComment = 0x002A,
- kFSMDTFlush = 0x002B,
- kFSMDTReset = 0x002C,
- kFSMDTGetInfo = 0x002D,
- kFSMDTOpenInform = 0x002E,
- kFSMDTDelete = 0x002F, /* The AppleShare HFSDispatch selectCodes */
- kFSMGetVolParms = 0x0030,
- kFSMGetLogInInfo = 0x0031,
- kFSMGetDirAccess = 0x0032,
- kFSMSetDirAccess = 0x0033,
- kFSMMapID = 0x0034,
- kFSMMapName = 0x0035,
- kFSMCopyFile = 0x0036,
- kFSMMoveRename = 0x0037,
- kFSMOpenDeny = 0x0038,
- kFSMOpenRFDeny = 0x0039,
- kFSMGetXCatInfo = 0x003A,
- kFSMGetVolMountInfoSize = 0x003F,
- kFSMGetVolMountInfo = 0x0040,
- kFSMVolumeMount = 0x0041,
- kFSMShare = 0x0042,
- kFSMUnShare = 0x0043,
- kFSMGetUGEntry = 0x0044,
- kFSMGetForeignPrivs = 0x0060,
- kFSMSetForeignPrivs = 0x0061, /* The HFSPlus API SelectCodes */
- kFSMGetVolumeInfo = 0x001D,
- kFSMSetVolumeInfo = 0x001E,
- kFSMReadFork = 0x0051,
- kFSMWriteFork = 0x0052,
- kFSMGetForkPosition = 0x0053,
- kFSMSetForkPosition = 0x0054,
- kFSMGetForkSize = 0x0055,
- kFSMSetForkSize = 0x0056,
- kFSMAllocateFork = 0x0057,
- kFSMFlushFork = 0x0058,
- kFSMCloseFork = 0x0059,
- kFSMGetForkCBInfo = 0x005A,
- kFSMCloseIterator = 0x005B,
- kFSMGetCatalogInfoBulk = 0x005C,
- kFSMCatalogSearch = 0x005D,
- kFSMMakeFSRef = 0x006E,
- kFSMCreateFileUnicode = 0x0070,
- kFSMCreateDirUnicode = 0x0071,
- kFSMDeleteObject = 0x0072,
- kFSMMoveObject = 0x0073,
- kFSMRenameUnicode = 0x0074,
- kFSMExchangeObjects = 0x0075,
- kFSMGetCatalogInfo = 0x0076,
- kFSMSetCatalogInfo = 0x0077,
- kFSMOpenIterator = 0x0078,
- kFSMOpenFork = 0x0079,
- kFSMMakeFSRefUnicode = 0x007A,
- kFSMCompareFSRefs = 0x007C,
- kFSMCreateFork = 0x007D,
- kFSMDeleteFork = 0x007E,
- kFSMIterateForks = 0x007F
- };
- /*
- * UTDetermineVol status values
- */
- enum {
- dtmvError = 0, /* param error */
- dtmvFullPathame = 1, /* determined by full pathname */
- dtmvVRefNum = 2, /* determined by volume refNum */
- dtmvWDRefNum = 3, /* determined by working directory refNum */
- dtmvDriveNum = 4, /* determined by drive number */
- dtmvDefault = 5 /* determined by default volume */
- };
- /*
- * UTGetBlock options
- */
- enum {
- gbDefault = 0, /* default value - read if not found */
- /* bits and masks */
- gbReadBit = 0, /* read block from disk (forced read) */
- gbReadMask = 0x0001,
- gbExistBit = 1, /* get existing cache block */
- gbExistMask = 0x0002,
- gbNoReadBit = 2, /* don't read block from disk if not found in cache */
- gbNoReadMask = 0x0004,
- gbReleaseBit = 3, /* release block immediately after GetBlock */
- gbReleaseMask = 0x0008
- };
- /*
- * UTReleaseBlock options
- */
- enum {
- rbDefault = 0, /* default value - just mark the buffer not in-use */
- /* bits and masks */
- rbWriteBit = 0, /* force write buffer to disk */
- rbWriteMask = 0x0001,
- rbTrashBit = 1, /* trash buffer contents after release */
- rbTrashMask = 0x0002,
- rbDirtyBit = 2, /* mark buffer dirty */
- rbDirtyMask = 0x0004,
- rbFreeBit = 3, /* free the buffer (save in the hash) */
- rbFreeMask = 0x000A /* rbFreeMask (rbFreeBit + rbTrashBit) works as rbTrash on < System 7.0 RamCache; on >= System 7.0, rbfreeMask overrides rbTrash */
- };
- /*
- * UTFlushCache options
- */
- enum {
- fcDefault = 0, /* default value - pass this fcOption to just flush any dirty buffers */
- /* bits and masks */
- fcTrashBit = 0, /* (don't pass this as fcOption, use only for testing bit) */
- fcTrashMask = 0x0001, /* pass this fcOption value to flush and trash cache blocks */
- fcFreeBit = 1, /* (don't pass this as fcOption, use only for testing bit) */
- fcFreeMask = 0x0003 /* pass this fcOption to flush and free cache blocks (Note: both fcTrash and fcFree bits are set) */
- };
- /*
- * UTCacheReadIP and UTCacheWriteIP cacheOption bits and masks are the ioPosMode
- * bits and masks in Files.x
- */
- /*
- * Cache routine internal error codes
- */
- enum {
- chNoBuf = 1, /* no free cache buffers (all in use) */
- chInUse = 2, /* requested block in use */
- chnotfound = 3, /* requested block not found */
- chNotInUse = 4 /* block being released was not in use */
- };
- /*
- * FCBRec.fcbFlags bits
- */
- enum {
- fcbWriteBit = 0, /* Data can be written to this file */
- fcbWriteMask = 0x01,
- fcbResourceBit = 1, /* This file is a resource fork */
- fcbResourceMask = 0x02,
- fcbWriteLockedBit = 2, /* File has a locked byte range */
- fcbWriteLockedMask = 0x04,
- fcbLargeFileBit = 3, /* File may grow beyond 2GB; cache uses file blocks, not bytes */
- fcbLargeFileMask = 0x08,
- fcbSharedWriteBit = 4, /* File is open for shared write access */
- fcbSharedWriteMask = 0x10,
- fcbFileLockedBit = 5, /* File is locked (write-protected) */
- fcbFileLockedMask = 0x20,
- fcbOwnClumpBit = 6, /* File has clump size specified in FCB */
- fcbOwnClumpMask = 0x40,
- fcbModifiedBit = 7, /* File has changed since it was last flushed */
- fcbModifiedMask = 0x80
- };
- /*
- * ForkControlBlock.moreFlags bits
- */
- enum {
- fcbIteratorBit = 0, /* FCB belongs to an FSIterator */
- fcbIteratorMask = 0x0001,
- fcbUseForkIDBit = 1, /* Use the FCB's forkID instead of fcbResourceBit */
- fcbUseForkIDMask = 0x0002
- };
- /*
- * HFS Component Interface constants
- */
- /*
- * compInterfMask bits specific to HFS component
- */
- enum {
- hfsCIDoesHFSBit = 23, /* set if file system supports HFS calls */
- hfsCIDoesHFSMask = 0x00800000,
- hfsCIDoesAppleShareBit = 22, /* set if AppleShare calls supported */
- hfsCIDoesAppleShareMask = 0x00400000,
- hfsCIDoesDeskTopBit = 21, /* set if Desktop Database calls supported */
- hfsCIDoesDeskTopMask = 0x00200000,
- hfsCIDoesDynamicLoadBit = 20, /* set if dynamically loading code resource */
- hfsCIDoesDynamicLoadMask = 0x00100000, /* supported */
- hfsCIResourceLoadedBit = 19, /* set if code resource already loaded */
- hfsCIResourceLoadedMask = 0x00080000,
- hfsCIHasHLL2PProcBit = 18, /* set if FFS' log2PhyProc */
- hfsCIHasHLL2PProcMask = 0x00040000, /* is written in a high level language. (i.e., uses Pascal calling convention) */
- hfsCIWantsDTSupportBit = 17, /* set if FFS wants the Mac OS's Desktop Manager code to handle */
- hfsCIWantsDTSupportMask = 0x00020000 /* all Desktop Manager requests to its volumes. */
- };
- /*
- * Disk Initialization Component Interface constants
- */
- /*
- * compInterfMask bits specific to Disk Initialization component
- */
- enum {
- diCIHasExtFormatParamsBit = 18, /* set if file system needs extended format */
- diCIHasExtFormatParamsMask = 0x00040000, /* parameters */
- diCIHasMultiVolTypesBit = 17, /* set if file system supports more than one */
- diCIHasMultiVolTypesMask = 0x00020000, /* volume type */
- diCIDoesSparingBit = 16, /* set if file system supports disk sparing */
- diCIDoesSparingMask = 0x00010000,
- diCILiveBit = 0, /* set if file system is candidate for current */
- diCILiveMask = 0x00000001 /* formatting operation (set by PACK2) */
- };
- /*
- * Disk Initialization Component Function selectors
- */
- enum {
- diCILoad = 1, /* Make initialization code memory resident */
- diCIUnload = 2, /* Make initialization code purgeable */
- diCIEvaluateSizeChoices = 3, /* Evaluate size choices */
- diCIExtendedZero = 4, /* Write an empty volume directory */
- diCIValidateVolName = 5, /* Validate volume name */
- diCIGetVolTypeInfo = 6, /* get volume type info */
- diCIGetFormatString = 7, /* get dialog format string */
- diCIGetExtFormatParams = 8, /* get extended format parameters */
- diCIGetDefectList = 9 /* return the defect list for the indicated disk - reserved for future use */
- };
- /*
- * Constants used in the DICIEvaluateSizeRec and FormatListRec
- */
- enum {
- diCIFmtListMax = 8, /* maximum number of format list entries in DICIEvaluateSizeRec.numSizeEntries */
- /* bits in FormatListRec.formatFlags: */
- diCIFmtFlagsValidBit = 7, /* set if sec, side, tracks valid */
- diCIFmtFlagsValidMask = 0x80,
- diCIFmtFlagsCurrentBit = 6, /* set if current disk has this fmt */
- diCIFmtFlagsCurrentMask = 0x40, /* bits in FormatListRec.sizeListFlags: */
- diCISizeListOKBit = 15, /* set if this disk size usable */
- diCISizeListOKMask = 0x8000
- };
- /*
- * DICIGetFormatStringRec.stringKind format strings
- */
- enum {
- diCIAlternateFormatStr = 1, /* get alternate format string (Balloon Help) */
- diCISizePresentationStr = 2 /* get size presentation string (for dialog) */
- };
- /*
- * Error codes returned by Disk Sparing
- */
- enum {
- diCIUserCancelErr = 1, /* user cancelled the disk init */
- diCICriticalSectorBadErr = 20, /* critical sectors are bad (hopeless) */
- diCISparingFailedErr = 21, /* disk cannot be spared */
- diCITooManyBadSectorsErr = 22, /* too many bad sectors */
- diCIUnknownVolTypeErr = 23, /* the volume type passed in diCIExtendedZero paramBlock is not supported */
- diCIVolSizeMismatchErr = 24, /* specified volume size doesn't match with formatted disk size */
- diCIUnknownDICallErr = 25, /* bogus DI function call selector */
- diCINoSparingErr = 26, /* disk is bad but the target FS doesn't do disk sparing */
- diCINoExtendInfoErr = 27, /* missing file system specific extra parameter in diCIExtendedZero call */
- diCINoMessageTextErr = 28 /* missing message text in DIReformat call */
- };
- /*
- * File System Manager constants
- */
- /*
- * Miscellaneous constants used by FSM
- */
- enum {
- fsdVersion1 = 1, /* current version of FSD record */
- fsmIgnoreFSID = 0xFFFE, /* this FSID should be ignored by the driver */
- fsmGenericFSID = 0xFFFF /* unknown foreign file system ID */
- };
- /*
- * compInterfMask bits common to all FSM components
- */
- enum {
- fsmComponentEnableBit = 31, /* set if FSM component interface is enabled */
- fsmComponentEnableMask = (long)0x80000000,
- fsmComponentBusyBit = 30, /* set if FSM component interface is busy */
- fsmComponentBusyMask = 0x40000000
- };
- /*
- * Selectors for GetFSInfo
- */
- enum {
- fsmGetFSInfoByIndex = -1, /* get fs info by index */
- fsmGetFSInfoByFSID = 0, /* get fs info by FSID */
- fsmGetFSInfoByRefNum = 1 /* get fs info by file/vol refnum */
- };
- /*
- * InformFSM messages
- */
- enum {
- fsmNopMessage = 0, /* nop */
- fsmDrvQElChangedMessage = 1, /* DQE has changed */
- fsmGetFSIconMessage = 2 /* Get FFS's disk icon */
- };
- /*
- * Messages passed to the fileSystemCommProc
- */
- enum {
- ffsNopMessage = 0, /* nop, should always return noErr */
- ffsGetIconMessage = 1, /* return disk icon and mask */
- ffsIDDiskMessage = 2, /* identify the about-to-be-mounted volume */
- ffsLoadMessage = 3, /* load in the FFS */
- ffsUnloadMessage = 4, /* unload the FFS */
- ffsIDVolMountMessage = 5, /* identify a VolMountInfo record */
- ffsInformMessage = 6, /* FFS defined message */
- ffsGetIconInfoMessage = 7
- };
- /*
- * HFS Utility routine records
- */
- /*
- * record used by UTGetPathComponentName
- */
- struct ParsePathRec {
- StringPtr namePtr; /* pathname to parse */
- short startOffset; /* where to start parsing */
- short componentLength; /* the length of the pathname component parsed */
- SignedByte moreName; /* non-zero if there are more components after this one */
- SignedByte foundDelimiter; /* non-zero if parsing stopped because a colon (:) delimiter was found */
- };
- typedef struct ParsePathRec ParsePathRec;
- typedef ParsePathRec * ParsePathRecPtr;
- struct WDCBRec {
- VCBPtr wdVCBPtr; /* Pointer to VCB of this working directory */
- long wdDirID; /* Directory ID number of this working directory */
- long wdCatHint; /* Hint for finding this working directory */
- long wdProcID; /* Process that created this working directory */
- };
- typedef struct WDCBRec WDCBRec;
- typedef WDCBRec * WDCBRecPtr;
- struct FCBRec {
- unsigned long fcbFlNm; /* FCB file number. Non-zero marks FCB used */
- SignedByte fcbFlags; /* FCB flags */
- SignedByte fcbTypByt; /* File type byte */
- unsigned short fcbSBlk; /* File start block (in alloc size blks) */
- unsigned long fcbEOF; /* Logical length or EOF in bytes */
- unsigned long fcbPLen; /* Physical file length in bytes */
- unsigned long fcbCrPs; /* Current position within file */
- VCBPtr fcbVPtr; /* Pointer to the corresponding VCB */
- Ptr fcbBfAdr; /* File's buffer address */
- unsigned short fcbFlPos; /* Directory block this file is in */
- /* FCB Extensions for HFS */
- unsigned long fcbClmpSize; /* Number of bytes per clump */
- Ptr fcbBTCBPtr; /* Pointer to B*-Tree control block for file */
- HFSExtentRecord fcbExtRec; /* First 3 file extents */
- OSType fcbFType; /* File's 4 Finder Type bytes */
- unsigned long fcbCatPos; /* Catalog hint for use on Close */
- unsigned long fcbDirID; /* Parent Directory ID */
- Str31 fcbCName; /* CName of open file */
- };
- typedef struct FCBRec FCBRec;
- typedef FCBRec * FCBRecPtr;
- struct ForkControlBlock {
- unsigned long fcbFlNm; /* FCB file number. Non-zero marks FCB used */
- SignedByte fcbFlags; /* FCB flags */
- SignedByte fcbTypByt; /* File type byte */
- unsigned short fcbSBlk; /* File start block (in alloc size blks) */
- unsigned long fcbEOF; /* Logical length or EOF in bytes */
- unsigned long fcbPLen; /* Physical file length in bytes */
- unsigned long fcbCrPs; /* Current position within file */
- VCBPtr fcbVPtr; /* Pointer to the corresponding VCB */
- Ptr fcbBfAdr; /* File's buffer address */
- unsigned short fcbFlPos; /* Directory block this file is in */
- /* FCB Extensions for HFS */
- unsigned long fcbClmpSize; /* Number of bytes per clump */
- Ptr fcbBTCBPtr; /* Pointer to B*-Tree control block for file */
- HFSExtentRecord fcbExtRec; /* First 3 file extents */
- OSType fcbFType; /* File's 4 Finder Type bytes */
- unsigned long fcbCatPos; /* Catalog hint for use on Close */
- unsigned long fcbDirID; /* Parent Directory ID */
- Str31 fcbCName; /* CName of open file */
- /* New fields start here*/
- unsigned short moreFlags; /* more flags, align following fields*/
- /* Old ExtendedFCB fields*/
- ProcessSerialNumber processID; /* Process Mgr process that opened the file (used to clean up at process death).*/
- HFSPlusExtentRecord extents; /* extents for HFS+ volumes*/
- /* New fields for HFS Plus APIs*/
- UInt64 endOfFile; /* logical size of this fork*/
- UInt64 physicalEOF; /* amount of space physically allocated to this fork*/
- UInt64 currentPosition; /* default offset for next read/write*/
- UInt32 forkID;
- Ptr searchListPtr; /* reserved for File Manager's use*/
- UInt8 reserved1[8]; /* reserved*/
- };
- typedef struct ForkControlBlock ForkControlBlock;
- typedef ForkControlBlock * ForkControlBlockPtr;
- /*
- * IteratorControlBlock - a ForkControlBlock used by a FSIterator
- */
- struct IteratorControlBlock {
- unsigned long containerID; /* directory ID of iterator's container*/
- unsigned short flags; /* reserved*/
- UInt8 user1[14]; /* 14 bytes iterator's use*/
- VCBPtr vcbPtr; /* pointer to the iterator's VCB*/
- unsigned long reserved2; /* reserved*/
- UInt8 user2[6]; /* 6 bytes for iterator's use*/
- unsigned long reserved3; /* reserved*/
- UInt8 user3[12]; /* 12 bytes for iterator's use*/
- OSType cbType; /* must be 'fold'*/
- UInt8 user4[40]; /* 40 bytes for iterator's use*/
- unsigned short moreFlags; /* must be fcbIteratorMask*/
- ProcessSerialNumber processID; /* Process Mgr process that opened the iterator (used to clean up at process death).*/
- UInt8 user5[92]; /* 92 bytes for iterator's use*/
- Ptr searchListPtr; /* reserved for File Manager's use*/
- UInt8 reserved1[8]; /* reserved*/
- };
- typedef struct IteratorControlBlock IteratorControlBlock;
- typedef IteratorControlBlock * IteratorControlBlockPtr;
- /*
- * HFS Component Interface records
- */
- typedef CALLBACK_API( OSErr , Lg2PhysProcPtr )(void *fsdGlobalPtr, VCBPtr volCtrlBlockPtr, FCBRecPtr fileCtrlBlockPtr, short fileRefNum, unsigned long filePosition, unsigned long reqCount, unsigned long *volOffset, unsigned long *contiguousBytes);
- typedef STACK_UPP_TYPE(Lg2PhysProcPtr) Lg2PhysUPP;
- #if OPAQUE_UPP_TYPES
- #if CALL_NOT_IN_CARBON
- EXTERN_API(Lg2PhysUPP)
- NewLg2PhysUPP (Lg2PhysProcPtr userRoutine);
- EXTERN_API(void)
- DisposeLg2PhysUPP (Lg2PhysUPP userUPP);
- EXTERN_API(OSErr)
- InvokeLg2PhysUPP (void * fsdGlobalPtr,
- VCBPtr volCtrlBlockPtr,
- FCBRecPtr fileCtrlBlockPtr,
- short fileRefNum,
- unsigned long filePosition,
- unsigned long reqCount,
- unsigned long * volOffset,
- unsigned long * contiguousBytes,
- Lg2PhysUPP userUPP);
- #endif /* CALL_NOT_IN_CARBON */
- #else
- enum { uppLg2PhysProcInfo = 0x003FEFE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
- #define NewLg2PhysUPP(userRoutine) (Lg2PhysUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppLg2PhysProcInfo, GetCurrentArchitecture())
- #define DisposeLg2PhysUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define InvokeLg2PhysUPP(fsdGlobalPtr, volCtrlBlockPtr, fileCtrlBlockPtr, fileRefNum, filePosition, reqCount, volOffset, contiguousBytes, userUPP) (OSErr)CALL_EIGHT_PARAMETER_UPP((userUPP), uppLg2PhysProcInfo, (fsdGlobalPtr), (volCtrlBlockPtr), (fileCtrlBlockPtr), (fileRefNum), (filePosition), (reqCount), (volOffset), (contiguousBytes))
- #endif
- /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
- #define NewLg2PhysProc(userRoutine) NewLg2PhysUPP(userRoutine)
- #define CallLg2PhysProc(userRoutine, fsdGlobalPtr, volCtrlBlockPtr, fileCtrlBlockPtr, fileRefNum, filePosition, reqCount, volOffset, contiguousBytes) InvokeLg2PhysUPP(fsdGlobalPtr, volCtrlBlockPtr, fileCtrlBlockPtr, fileRefNum, filePosition, reqCount, volOffset, contiguousBytes, userRoutine)
- typedef CALLBACK_API( OSErr , HFSCIProcPtr )(VCBPtr theVCB, short selectCode, void *paramBlock, void *fsdGlobalPtr, short fsid);
- typedef STACK_UPP_TYPE(HFSCIProcPtr) HFSCIUPP;
- #if OPAQUE_UPP_TYPES
- #if CALL_NOT_IN_CARBON
- EXTERN_API(HFSCIUPP)
- NewHFSCIUPP (HFSCIProcPtr userRoutine);
- EXTERN_API(void)
- DisposeHFSCIUPP (HFSCIUPP userUPP);
- EXTERN_API(OSErr)
- InvokeHFSCIUPP (VCBPtr theVCB,
- short selectCode,
- void * paramBlock,
- void * fsdGlobalPtr,
- short fsid,
- HFSCIUPP userUPP);
- #endif /* CALL_NOT_IN_CARBON */
- #else
- enum { uppHFSCIProcInfo = 0x0000BEE0 }; /* pascal 2_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes, 2_bytes) */
- #define NewHFSCIUPP(userRoutine) (HFSCIUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppHFSCIProcInfo, GetCurrentArchitecture())
- #define DisposeHFSCIUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define InvokeHFSCIUPP(theVCB, selectCode, paramBlock, fsdGlobalPtr, fsid, userUPP) (OSErr)CALL_FIVE_PARAMETER_UPP((userUPP), uppHFSCIProcInfo, (theVCB), (selectCode), (paramBlock), (fsdGlobalPtr), (fsid))
- #endif
- /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
- #define NewHFSCIProc(userRoutine) NewHFSCIUPP(userRoutine)
- #define CallHFSCIProc(userRoutine, theVCB, selectCode, paramBlock, fsdGlobalPtr, fsid) InvokeHFSCIUPP(theVCB, selectCode, paramBlock, fsdGlobalPtr, fsid, userRoutine)
- struct HFSCIRec {
- long compInterfMask; /* component flags */
- HFSCIUPP compInterfProc; /* pointer to file system call processing code */
- Lg2PhysUPP log2PhyProc; /* pointer to Lg2PhysProc() code */
- Ptr stackTop; /* file system stack top */
- long stackSize; /* file system stack size */
- Ptr stackPtr; /* current file system stack pointer */
- long reserved3; /* --reserved, must be zero-- */
- long idSector; /* Sector you need to ID a local volume. For networked volumes, this must be -1 */
- long reserved2; /* --reserved, must be zero-- */
- long reserved1; /* --reserved, must be zero-- */
- };
- typedef struct HFSCIRec HFSCIRec;
- typedef HFSCIRec * HFSCIRecPtr;
- /*
- * Disk Initialization Component Interface records
- */
- typedef CALLBACK_API( OSErr , DICIProcPtr )(short whatFunction, void *paramBlock, void *fsdGlobalPtr);
- typedef STACK_UPP_TYPE(DICIProcPtr) DICIUPP;
- #if OPAQUE_UPP_TYPES
- #if CALL_NOT_IN_CARBON
- EXTERN_API(DICIUPP)
- NewDICIUPP (DICIProcPtr userRoutine);
- EXTERN_API(void)
- DisposeDICIUPP (DICIUPP userUPP);
- EXTERN_API(OSErr)
- InvokeDICIUPP (short whatFunction,
- void * paramBlock,
- void * fsdGlobalPtr,
- DICIUPP userUPP);
- #endif /* CALL_NOT_IN_CARBON */
- #else
- enum { uppDICIProcInfo = 0x00000FA0 }; /* pascal 2_bytes Func(2_bytes, 4_bytes, 4_bytes) */
- #define NewDICIUPP(userRoutine) (DICIUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDICIProcInfo, GetCurrentArchitecture())
- #define DisposeDICIUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define InvokeDICIUPP(whatFunction, paramBlock, fsdGlobalPtr, userUPP) (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppDICIProcInfo, (whatFunction), (paramBlock), (fsdGlobalPtr))
- #endif
- /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
- #define NewDICIProc(userRoutine) NewDICIUPP(userRoutine)
- #define CallDICIProc(userRoutine, whatFunction, paramBlock, fsdGlobalPtr) InvokeDICIUPP(whatFunction, paramBlock, fsdGlobalPtr, userRoutine)
- struct DICIRec {
- long compInterfMask; /* component flags */
- DICIUPP compInterfProc; /* pointer to call processing code */
- short maxVolNameLength; /* maximum length of your volume name */
- unsigned short blockSize; /* your file system's block size */
- long reserved3; /* --reserved, must be zero-- */
- long reserved2; /* --reserved, must be zero-- */
- long reserved1; /* --reserved, must be zero-- */
- };
- typedef struct DICIRec DICIRec;
- typedef DICIRec * DICIRecPtr;
- /*
- * FormatListRec as returned by the .Sony disk driver's
- * Return Format List status call (csCode = 6).
- * If the status call to get this list for a drive is not
- * implemented by the driver, then a list with one entry
- * is contructed from the drive queue element for the drive.
- */
- struct FormatListRec {
- unsigned long volSize; /* disk capacity in SECTORs */
- SignedByte formatFlags; /* flags */
- SignedByte sectorsPerTrack; /* sectors per track side */
- unsigned short tracks; /* number of tracks */
- };
- typedef struct FormatListRec FormatListRec;
- typedef FormatListRec * FormatListRecPtr;
- /*
- * SizeListRec built from FormatListRecs as described above.
- */
- struct SizeListRec {
- short sizeListFlags; /* flags as set by external file system */
- FormatListRec sizeEntry; /* disk driver format list record */
- };
- typedef struct SizeListRec SizeListRec;
- typedef SizeListRec * SizeListRecPtr;
- /*
- * paramBlock for the diCIEvaluateSize call
- */
- struct DICIEvaluateSizeRec {
- short defaultSizeIndex; /* default size for this FS */
- short numSizeEntries; /* number of size entries */
- short driveNumber; /* drive number */
- SizeListRecPtr sizeListPtr; /* ptr to size entry table */
- unsigned short sectorSize; /* bytes per sector */
- };
- typedef struct DICIEvaluateSizeRec DICIEvaluateSizeRec;
- typedef DICIEvaluateSizeRec * DICIEvaluateSizeRecPtr;
- /*
- * paramBlock for the diCIExtendedZero call
- */
- struct DICIExtendedZeroRec {
- short driveNumber; /* drive number */
- StringPtr volNamePtr; /* ptr to volume name string */
- short fsid; /* file system ID */
- short volTypeSelector; /* volume type selector, if supports more than 1 type */
- unsigned short numDefectBlocks; /* number of bad logical blocks */
- unsigned short defectListSize; /* size of the defect list buffer in bytes */
- Ptr defectListPtr; /* pointer to defect list buffer */
- unsigned long volSize; /* size of volume in SECTORs */
- unsigned short sectorSize; /* bytes per sector */
- Ptr extendedInfoPtr; /* ptr to extended info */
- };
- typedef struct DICIExtendedZeroRec DICIExtendedZeroRec;
- typedef DICIExtendedZeroRec * DICIExtendedZeroRecPtr;
- /*
- * paramBlock for the diCIValidateVolName call
- */
- struct DICIValidateVolNameRec {
- char theChar; /* the character to validate */
- Boolean hasMessageBuffer; /* false if no message */
- short charOffset; /* position of the current character (first char = 1) */
- StringPtr messageBufferPtr; /* pointer to message buffer or nil */
- short charByteType; /* theChar's byte type (smSingleByte, smFirstByte, or smLastByte) */
- };
- typedef struct DICIValidateVolNameRec DICIValidateVolNameRec;
- typedef DICIValidateVolNameRec * DICIValidateVolNameRecPtr;
- /*
- * paramBlock for the diCIGetVolTypeInfo call
- */
- struct DICIGetVolTypeInfoRec {
- unsigned long volSize; /* size of volume in SECTORs */
- unsigned short sectorSize; /* bytes per sector */
- short numVolTypes; /* number of volume types supported */
- Str31 volTypesBuffer[4]; /* 4 string buffers */
- };
- typedef struct DICIGetVolTypeInfoRec DICIGetVolTypeInfoRec;
- typedef DICIGetVolTypeInfoRec * DICIGetVolTypeInfoRecPtr;
- /*
- * paramBlock for the diCIGetFormatString call
- */
- struct DICIGetFormatStringRec {
- unsigned long volSize; /* volume size in SECTORs */
- unsigned short sectorSize; /* sector size */
- short volTypeSelector; /* volume type selector */
- short stringKind; /* sub-function = type of string */
- Str255 stringBuffer; /* string buffer */
- };
- typedef struct DICIGetFormatStringRec DICIGetFormatStringRec;
- typedef DICIGetFormatStringRec * DICIGetFormatStringRecPtr;
- /*
- * paramBlock for the diCIGetExtendedFormatParams call
- */
- struct DICIGetExtendedFormatRec {
- short driveNumber; /* drive number */
- short volTypeSelector; /* volume type selector or 0 */
- unsigned long volSize; /* size of volume in SECTORs */
- unsigned short sectorSize; /* bytes per sector */
- FSSpecPtr fileSystemSpecPtr; /* pointer to the foreign file system's FSSpec */
- Ptr extendedInfoPtr; /* pointer to extended parameter structure */
- };
- typedef struct DICIGetExtendedFormatRec DICIGetExtendedFormatRec;
- typedef DICIGetExtendedFormatRec * DICIGetExtendedFormatRecPtr;
- /*
- * File System Manager records
- */
- typedef CALLBACK_API( OSErr , FSDCommProcPtr )(short message, void *paramBlock, void *globalsPtr);
- typedef STACK_UPP_TYPE(FSDCommProcPtr) FSDCommUPP;
- #if OPAQUE_UPP_TYPES
- #if CALL_NOT_IN_CARBON
- EXTERN_API(FSDCommUPP)
- NewFSDCommUPP (FSDCommProcPtr userRoutine);
- EXTERN_API(void)
- DisposeFSDCommUPP (FSDCommUPP userUPP);
- EXTERN_API(OSErr)
- InvokeFSDCommUPP (short message,
- void * paramBlock,
- void * globalsPtr,
- FSDCommUPP userUPP);
- #endif /* CALL_NOT_IN_CARBON */
- #else
- enum { uppFSDCommProcInfo = 0x00000FA0 }; /* pascal 2_bytes Func(2_bytes, 4_bytes, 4_bytes) */
- #define NewFSDCommUPP(userRoutine) (FSDCommUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFSDCommProcInfo, GetCurrentArchitecture())
- #define DisposeFSDCommUPP(userUPP) DisposeRoutineDescriptor(userUPP)
- #define InvokeFSDCommUPP(message, paramBlock, globalsPtr, userUPP) (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppFSDCommProcInfo, (message), (paramBlock), (globalsPtr))
- #endif
- /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
- #define NewFSDCommProc(userRoutine) NewFSDCommUPP(userRoutine)
- #define CallFSDCommProc(userRoutine, message, paramBlock, globalsPtr) InvokeFSDCommUPP(message, paramBlock, globalsPtr, userRoutine)
- typedef struct FSDRec FSDRec;
- struct FSDRec {
- struct FSDRec * fsdLink; /* ptr to next */
- short fsdLength; /* length of this FSD in BYTES */
- short fsdVersion; /* version number */
- short fileSystemFSID; /* file system id */
- Str31 fileSystemName; /* file system name */
- FSSpec fileSystemSpec; /* foreign file system's FSSpec */
- Ptr fileSystemGlobalsPtr; /* ptr to file system globals */
- FSDCommUPP fileSystemCommProc; /* communication proc with the FFS */
- long reserved3; /* --reserved, must be zero-- */
- long reserved2; /* --reserved, must be zero-- */
- long reserved1; /* --reserved, must be zero-- */
- HFSCIRec fsdHFSCI; /* HFS component interface */
- DICIRec fsdDICI; /* Disk Initialization component interface */
- };
- typedef FSDRec * FSDRecPtr;
- struct FSMGetIconInfoRec {
- long theIcon[32]; /* The ICN# structure */
- long theMask[32]; /* The mask for the icon above */
- Str255 whereStr;
- };
- typedef struct FSMGetIconInfoRec FSMGetIconInfoRec;
- typedef FSMGetIconInfoRec * FSMGetIconInfoRecPtr;
- /*
- * paramBlock for ffsGetIconMessage and fsmGetFSIconMessage
- */
- struct FSMGetIconRec {
- short refNum; /* target drive num or volume refnum */
- FSMGetIconInfoRecPtr iconBufferPtr; /* pointer to icon buffer */
- long requestSize; /* requested size of the icon buffer */
- long actualSize; /* actual size of the icon data returned */
- SInt8 iconType; /* kind of icon */
- Boolean isEjectable; /* true if the device is ejectable */
- DrvQElPtr driveQElemPtr; /* pointer to DQE */
- FSSpecPtr fileSystemSpecPtr; /* pointer to foreign file system's FSSpec */
- long reserved1; /* --reserved, must be zero-- */
- };
- typedef struct FSMGetIconRec FSMGetIconRec;
- typedef FSMGetIconRec * FSMGetIconRecPtr;
- #if CALL_NOT_IN_CARBON
- /*
- * HFS Utility routine prototypes
- */
- #if CALL_NOT_IN_CARBON
- EXTERN_API( OSErr )
- UTAllocateFCB (short * fileRefNum,
- FCBRecPtr * fileCtrlBlockPtr) TWOWORDINLINE(0x7000, 0xA824);
- EXTERN_API( OSErr )
- UTReleaseFCB (short fileRefNum) TWOWORDINLINE(0x7001, 0xA824);
- EXTERN_API( OSErr )
- UTLocateFCB (VCBPtr volCtrlBlockPtr,
- unsigned long fileNum,
- StringPtr namePtr,
- short * fileRefNum,
- FCBRecPtr * fileCtrlBlockPtr) TWOWORDINLINE(0x7002, 0xA824);
- EXTERN_API( OSErr )
- UTLocateNextFCB (VCBPtr volCtrlBlockPtr,
- unsigned long fileNum,
- StringPtr namePtr,
- short * fileRefNum,
- FCBRecPtr * fileCtrlBlockPtr) TWOWORDINLINE(0x7003, 0xA824);
- EXTERN_API( OSErr )
- UTIndexFCB (VCBPtr volCtrlBlockPtr,
- short * fileRefNum,
- FCBRecPtr * fileCtrlBlockPtr) TWOWORDINLINE(0x7004, 0xA824);
- EXTERN_API( OSErr )
- UTResolveFCB (short fileRefNum,
- FCBRecPtr * fileCtrlBlockPtr) TWOWORDINLINE(0x7005, 0xA824);
- EXTERN_API( OSErr )
- UTAllocateVCB (unsigned short * sysVCBLength,
- VCBPtr * volCtrlBlockPtr,
- unsigned short addSize) TWOWORDINLINE(0x7006, 0xA824);
- EXTERN_API( OSErr )
- UTAddNewVCB (short driveNum,
- short * vRefNum,
- VCBPtr volCtrlBlockPtr) TWOWORDINLINE(0x7007, 0xA824);
- EXTERN_API( OSErr )
- UTDisposeVCB (VCBPtr volCtrlBlockPtr) TWOWORDINLINE(0x7008, 0xA824);
- EXTERN_API( OSErr )
- UTLocateVCBByRefNum (short refNum,
- short * vRefNum,
- VCBPtr * volCtrlBlockPtr) TWOWORDINLINE(0x7009, 0xA824);
- EXTERN_API( OSErr )
- UTLocateVCBByName (StringPtr namePtr,
- short * moreMatches,
- short * vRefNum,
- VCBPtr * volCtrlBlockPtr) TWOWORDINLINE(0x700A, 0xA824);
- EXTERN_API( OSErr )
- UTLocateNextVCB (StringPtr namePtr,
- short * moreMatches,
- short * vRefNum,
- VCBPtr * volCtrlBlockPtr) TWOWORDINLINE(0x700B, 0xA824);
- EXTERN_API( OSErr )
- UTAllocateWDCB (WDPBPtr paramBlock) TWOWORDINLINE(0x700C, 0xA824);
- EXTERN_API( OSErr )
- UTReleaseWDCB (short wdRefNum) TWOWORDINLINE(0x700D, 0xA824);
- EXTERN_API( OSErr )
- UTResolveWDCB (long procID,
- short wdIndex,
- short wdRefNum,
- WDCBRecPtr * wdCtrlBlockPtr) TWOWORDINLINE(0x700E, 0xA824);
- EXTERN_API( OSErr )
- UTFindDrive (short driveNum,
- DrvQElPtr * driveQElementPtr) TWOWORDINLINE(0x700F, 0xA824);
- EXTERN_API( OSErr )
- UTAdjustEOF (short fileRefNum) TWOWORDINLINE(0x7010, 0xA824);
- EXTERN_API( OSErr )
- UTSetDefaultVol (long nodeHint,
- unsigned long dirID,
- short refNum) TWOWORDINLINE(0x7011, 0xA824);
- EXTERN_API( OSErr )
- UTGetDefaultVol (WDPBPtr paramBlock) TWOWORDINLINE(0x7012, 0xA824);
- EXTERN_API( OSErr )
- UTEjectVol (VCBPtr volCtrlBlockPtr) TWOWORDINLINE(0x702B, 0xA824);
- EXTERN_API( OSErr )
- UTCheckWDRefNum (short wdRefNum) TWOWORDINLINE(0x7013, 0xA824);
- EXTERN_API( OSErr )
- UTCheckFileRefNum (short fileRefNum) TWOWORDINLINE(0x7014, 0xA824);
- EXTERN_API( OSErr )
- UTCheckVolRefNum (short vRefNum) TWOWORDINLINE(0x7015, 0xA824);
- EXTERN_API( OSErr )
- UTCheckPermission (VCBPtr volCtrlBlockPtr,
- short * modByte,
- unsigned long fileNum,
- ParmBlkPtr paramBlock) TWOWORDINLINE(0x7016, 0xA824);
- EXTERN_API( OSErr )
- UTCheckVolOffline (short vRefNum) TWOWORDINLINE(0x7017, 0xA824);
- EXTERN_API( OSErr )
- UTCheckVolModifiable (short vRefNum) TWOWORDINLINE(0x7018, 0xA824);
- EXTERN_API( OSErr )
- UTCheckFileModifiable (short fileRefNum) TWOWORDINLINE(0x7019, 0xA824);
- EXTERN_API( OSErr )
- UTCheckDirBusy (VCBPtr volCtrlBlockPtr,
- unsigned long dirID) TWOWORDINLINE(0x701A, 0xA824);
- EXTERN_API( OSErr )
- UTParsePathname (short * volNamelength,
- StringPtr namePtr) TWOWORDINLINE(0x701B, 0xA824);
- EXTERN_API( OSErr )
- UTGetPathComponentName (ParsePathRecPtr parseRec) TWOWORDINLINE(0x701C, 0xA824);
- EXTERN_API( OSErr )
- UTDetermineVol (ParmBlkPtr paramBlock,
- short * status,
- short * moreMatches,
- short * vRefNum,
- VCBPtr * volCtrlBlockPtr) TWOWORDINLINE(0x701D, 0xA824);
- EXTERN_API( OSErr )
- UTGetBlock (short refNum,
- void * log2PhyProc,
- unsigned long blockNum,
- short gbOption,
- Ptr * buffer) TWOWORDINLINE(0x701F, 0xA824);
- EXTERN_API( OSErr )
- UTReleaseBlock (Ptr buffer,
- short rbOption) TWOWORDINLINE(0x7020, 0xA824);
- EXTERN_API( OSErr )
- UTFlushCache (short refNum,
- short fcOption) TWOWORDINLINE(0x7021, 0xA824);
- EXTERN_API( OSErr )
- UTMarkDirty (Ptr buffer) TWOWORDINLINE(0x7023, 0xA824);
- EXTERN_API( OSErr )
- UTTrashVolBlocks (VCBPtr volCtrlBlockPtr) TWOWORDINLINE(0x7024, 0xA824);
- EXTERN_API( OSErr )
- UTTrashFileBlocks (VCBPtr volCtrlBlockPtr,
- unsigned long fileNum) TWOWORDINLINE(0x7025, 0xA824);
- EXTERN_API( OSErr )
- UTTrashBlocks (unsigned long beginPosition,
- unsigned long byteCount,
- VCBPtr volCtrlBlockPtr,
- short fileRefNum,
- short tbOption) TWOWORDINLINE(0x7026, 0xA824);
- EXTERN_API( OSErr )
- UTCacheReadIP (void * log2PhyProc,
- unsigned long filePosition,
- Ptr ioBuffer,
- short fileRefNum,
- unsigned long reqCount,
- unsigned long * actCount,
- short cacheOption) TWOWORDINLINE(0x7027, 0xA824);
- EXTERN_API( OSErr )
- UTCacheWriteIP (void * log2PhyProc,
- unsigned long filePosition,
- Ptr ioBuffer,
- short fileRefNum,
- unsigned long reqCount,
- unsigned long * actCount,
- short cacheOption) TWOWORDINLINE(0x7028, 0xA824);
- EXTERN_API( OSErr )
- UTBlockInFQHashP (short vRefNum,
- unsigned long diskBlock) TWOWORDINLINE(0x702C, 0xA824);
- EXTERN_API( OSErr )
- UTVolCacheReadIP (VCBPtr volCtrlBlockPtr,
- unsigned long blockPosition,
- Ptr ioBuffer,
- unsigned long reqCount,
- unsigned long * actCount,
- short cacheOption) TWOWORDINLINE(0x7034, 0xA824);
- EXTERN_API( OSErr )
- UTVolCacheWriteIP (VCBPtr volCtrlBlockPtr,
- unsigned long blockPosition,
- Ptr ioBuffer,
- unsigned long reqCount,
- unsigned long * actCount,
- short cacheOption) TWOWORDINLINE(0x7035, 0xA824);
- EXTERN_API( OSErr )
- UTResolveFileRefNum (FCBRecPtr fileCtrlBlockPtr,
- short * fileRefNum) TWOWORDINLINE(0x7036, 0xA824);
- EXTERN_API( OSErr )
- UTCheckFCB (FCBRecPtr fileCtrlBlockPtr) TWOWORDINLINE(0x7037, 0xA824);
- EXTERN_API( OSErr )
- UTCheckForkPermissions (VCBPtr volCtrlBlockPtr,
- UInt32 fileNum,
- UInt32 forkID,
- Boolean fileLocked,
- SInt8 permissions,
- Boolean useSearchList,
- SInt8 * fcbFlags,
- SInt16 * openForkRefNum) TWOWORDINLINE(0x7038, 0xA824);
- EXTERN_API( OSErr )
- UTAddFCBToSearchList (FCBRecPtr fileCtrlBlockPtr) TWOWORDINLINE(0x7039, 0xA824);
- EXTERN_API( OSErr )
- UTRemoveFCBFromSearchList (FCBRecPtr fileCtrlBlockPtr) TWOWORDINLINE(0x703A, 0xA824);
- EXTERN_API( OSErr )
- UTLocateFCBInSearchList (VCBPtr volCtrlBlockPtr,
- unsigned long fileNum,
- short * fileRefNum,
- FCBRecPtr * fileCtrlBlockPtr) TWOWORDINLINE(0x703B, 0xA824);
- EXTERN_API( OSErr )
- UTGetForkControlBlockSize (UInt32 * fcbSize) TWOWORDINLINE(0x703C, 0xA824);
- /*
- * File System Manager call prototypes
- */
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 InstallFS(__A0)
- #endif
- EXTERN_API( OSErr )
- InstallFS (FSDRecPtr fsdPtr) TWOWORDINLINE(0x7000, 0xA0AC);
- #if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
- #pragma parameter __D0 RemoveFS(__A0)
- #endif
- EXTERN_API( OSErr )
- RemoveFS (short fsid) TWOWORDINLINE(0x7001, 0xA0AC);
- EXTERN_API( OSErr )
- SetFSInfo (short fsid,
- short bufSize,
- FSDRecPtr fsdPtr);
- EXTERN_API( OSErr )
- GetFSInfo (short selector,
- short key,
- short * bufSize,
- FSDRecPtr fsdPtr);
- EXTERN_API( OSErr )
- InformFSM (short theMessage,
- void * paramBlock);
- EXTERN_API( OSErr )
- InformFFS (short fsid,
- void * paramBlock);
- #endif /* CALL_NOT_IN_CARBON */
- #endif /* CALL_NOT_IN_CARBON */
- #if PRAGMA_STRUCT_ALIGN
- #pragma options align=reset
- #elif PRAGMA_STRUCT_PACKPUSH
- #pragma pack(pop)
- #elif PRAGMA_STRUCT_PACK
- #pragma pack()
- #endif
- #ifdef PRAGMA_IMPORT_OFF
- #pragma import off
- #elif PRAGMA_IMPORT
- #pragma import reset
- #endif
- #ifdef __cplusplus
- }
- #endif
- #endif /* __FSM__ */