mirror of
https://github.com/elliotnunn/sys7.1-doc-wip.git
synced 2024-12-12 20:29:12 +00:00
539 lines
22 KiB
Plaintext
539 lines
22 KiB
Plaintext
;
|
||
; Hacks to match MacOS (most recent first):
|
||
;
|
||
; <Sys7.1> 8/3/92 Reverted <SM2>
|
||
; 9/2/94 SuperMario ROM source dump (header preserved below)
|
||
;
|
||
|
||
; Version: 2.96
|
||
; Created: Friday, October 20, 1989 at 9:18:00 PM
|
||
;
|
||
; File: FSPrivate.a
|
||
;
|
||
; Assembler Interface to the Macintosh Libraries
|
||
; Copyright Apple Computer, Inc. 1984-1990
|
||
; All Rights Reserved
|
||
;
|
||
;
|
||
; Change History (most recent first):
|
||
;
|
||
; <SM2> 4/14/92 kc Change LenBTCB from 54 to 74. Change hfsStkLen from 1280 to
|
||
; 1792.
|
||
; <13> 1/30/91 gbm sab, #38: Change the ‘already including this file’ variable to
|
||
; all uppercase (for security reasons)
|
||
; <12> 8/28/90 KST Make FCFree work as FCtrash on 6.0 RamCache
|
||
; <11> 8/27/90 KST Adding new FlushCache and RelBlock option flags for the new
|
||
; DiskCache interface.
|
||
; <10> 7/18/90 KST Adding a bit EQU for RamCache.
|
||
; <7> 4/11/90 KST Revoke change in (6), btMaxDepth is reset to 8 so that we will
|
||
; not screw up ROM in patches to the ROM. RAM B*tree Manager will
|
||
; use its own set of EQUs in BtreePrivate.a.
|
||
; <6> 4/4/90 KST btMaxDepth has been changed from 8 to 16.
|
||
; <4> 2/4/90 DNF Move new private information into FileMgrPrivate.a
|
||
; <1.2> 11/15/89 EKN Minor twiddles to fidSwapVars offsets.
|
||
; <1.1> 9/29/89 EKN Added File threads and errors for it
|
||
; <1.0> 11/9/88 CCH Adding to EASE.
|
||
; <•1.1> 9/14/88 CCH Updated EASE with the current rev of this file.
|
||
;
|
||
;--------------------------------------------------------------------
|
||
;
|
||
; The following information was formerly in "private" files that were
|
||
; not released to the general developer community.
|
||
;
|
||
; The information in this file is not needed for normal application
|
||
; development. These equates and macros were necessary for development
|
||
; of the Macintosh ToolBox and Operating System, and are likely to be
|
||
; dependent on their current implementation. Use of any information
|
||
; in this file is likely to cause your software to fail on future
|
||
; versions of Macintosh system software or hardware.
|
||
;
|
||
; Apple Developer Support will not support any use of the following
|
||
; information.
|
||
;
|
||
; In order to prevent any "accidental" use of this information, it has
|
||
; been disabled using the conditional-assembly variable defined below.
|
||
; If you change this to a non-zero value, you're on your own.
|
||
;--------------------------------------------------------------------
|
||
|
||
IF &TYPE('__INCLUDINGFSPRIVATE__') = 'UNDEFINED' THEN
|
||
__INCLUDINGFSPRIVATE__ SET 1
|
||
|
||
|
||
IF (&TYPE('FSPNonPortable') = 'UNDEFINED') THEN
|
||
FSPNonPortable EQU 0
|
||
ENDIF
|
||
HFSDebug EQU 0 ; include HFS debug traps if 1
|
||
|
||
|
||
IF FSPNonPortable THEN ;begin exclusion of private information
|
||
; Function: This file contains the complete File System equates for MFS and HFS. It is
|
||
; an extension of the equates defined by old FSEQU.a
|
||
|
||
;
|
||
; Constant definitions
|
||
;
|
||
btsPrBlk EQU 12 ; bits per block in volume map (FS volume)
|
||
; ExtendFile option flags
|
||
|
||
EFContig EQU 1 ; force contiguous allocation
|
||
EFAll EQU 0 ; allocate all requested bytes or none
|
||
kEFContig EQU 2 ; corresponding constants for MOVEQ
|
||
kEFAll EQU 1
|
||
|
||
; TruncateFile option flags
|
||
|
||
TFTrunExt EQU 0 ; truncate to the extent containing new PEOF
|
||
kTFTrunExt EQU 1 ; corresponding constants for MOVEQ
|
||
MACRO ; HFS debugging halt trap
|
||
_HFSDebug
|
||
IF HFSDebug THEN ; only included when actually debugging
|
||
IF &Syslst[1]<>'' THEN
|
||
DC.W ($F000+&Syslst[1]) ; in case a trap sub-code is specified
|
||
ELSE
|
||
DC.W ($A9FF) ; User break
|
||
ENDIF
|
||
ENDIF
|
||
ENDM
|
||
|
||
MACRO ; HFS error halt trap
|
||
_HFSDSErr
|
||
_HFSDebug &Syslst[1] ; Pause first if debugging
|
||
MOVEQ #DSFSErr,D0 ; Error code = 27, Fatal File System Error
|
||
_SysError ; Stop the engines
|
||
ENDM
|
||
|
||
ENDIF ;end exclusion of private information
|
||
|
||
strtDir EQU 2 ; directory master block location (block #)
|
||
bufSiz EQU 512 ; standard file system buffer size in bytes
|
||
hdrSiz EQU 10 ; size of header prefixed to buffer
|
||
bufModBit EQU 7 ; dirty bit in high byte of buf tag word
|
||
bufFNum EQU -10 ; offset from buf start to file number longword
|
||
bufFlags EQU -6 ; offset from buf start to file flags word
|
||
bufFBlk EQU -4 ; offset from buf start to file block word
|
||
bufTag EQU -2 ; offset from buf start to tag word
|
||
nxFreeFN EQU 16 ; next free file number
|
||
nxFreeDID EQU 3 ; next free directory id
|
||
alBlkSize EQU 512 ; default allocation block size (1 sector, in bytes)
|
||
clpSize EQU 4*512 ; default allocation clump size (in bytes)
|
||
|
||
|
||
maxHFSTrap EQU 17 ; Highest TFS trap dispatch index
|
||
|
||
|
||
;_______________________________________________________________________
|
||
|
||
; fixed location labels: (equivalent of zero page)
|
||
|
||
|
||
hfsVars EQU $36A ; Start of TFS variables in RAM version
|
||
; (previously RgSvArea)
|
||
hfsTmpSize EQU 16 ; Additional temporary space for TFS
|
||
hfsStkLen EQU 1280 ; Allocate a decent-sized chunk of memory <SM2> <Sys7.1>
|
||
HFSStkTop EQU $36A ; Temporary location of pointer to top of Stack
|
||
HFSStkPtr EQU $36E ; Temporary location of TFS Stack pointer
|
||
WDCBsPtr EQU $372 ; Working Directory queue header
|
||
HFSFlags EQU $376 ; Internal TFS flags
|
||
DefVRefNum EQU $384 ; Default volume's VRefNum (COULD BE WDRefNum!)
|
||
|
||
;
|
||
; Flag bits in HFSFlags byte:
|
||
;
|
||
hfsReq EQU 0 ; Set if request is specific to TFS
|
||
dirCN EQU 1 ; Set if a CNode is a directory
|
||
hfsContd EQU 7 ; Set if Async trap is continued
|
||
noPMSP EQU 6 ; Set to disable PMSP completely (status flag)
|
||
skipPMSP EQU 5 ; Set to skip PMSP setup (one-shot)
|
||
SysCRefCnt EQU $377 ; Usage count byte for system caches (number of vols)
|
||
CacheFlag EQU $377 ; cache usage count now used as cache flag
|
||
CacheVars EQU $394
|
||
cacheCom EQU $39C
|
||
noRWIPBit EQU 7
|
||
diskRdBit EQU 6
|
||
dontInstRC EQU 5 ; set if don't load ramcache in the boot process. <22May90>
|
||
; so the RamCache INIT supercedes System's. <22May90>
|
||
SysBMCPtr EQU $378 ; System-wide bitmap cache pointer
|
||
SysVolCPtr EQU $37C ; System-wide volume cache pointer
|
||
SysCtlCPtr EQU $380 ; System-wide control cache pointer
|
||
PMSPPtr EQU $386 ; Pointer to list of directories on PMSP
|
||
HFSDSErr EQU $392 ; Final gasp - error that caused IOErr.
|
||
HFSVarEnd EQU $394 ; End of hfs variable area
|
||
hfsStkOvf EQU 99 ; Deep trouble alert - HFS stack overflowed.
|
||
CurDB EQU $340 ; current directory block
|
||
FSCallAsync EQU $342 ; ONE BYTE FREE
|
||
NewMount EQU $34A ; (1) used by MountVol to flag new mounts
|
||
NoEject EQU $34B ; used by Eject and Offline
|
||
DrMstrBlk EQU $34C ; master directory block in a volume
|
||
ErCode EQU $3A2 ; use this loc to report errors during async
|
||
; routines
|
||
FSIOErr EQU $3DE ; last I/O error (NEXT WORD FREE)
|
||
FSQueueHook EQU $3E2 ; hook to capture all FS calls
|
||
ExtFSHook EQU $3E6 ; command done hook
|
||
DskSwtchHook EQU $3EA ; hook for disk-switch dialog
|
||
ReqstVol EQU $3EE ; ptr to VCB of off-line or ext fs volume
|
||
FSVarEnd EQU $3F6 ; end of file system variables
|
||
fsVarLth EQU $B6
|
||
fsClrWDLen EQU $A2 ;length to clear in boot blocks
|
||
|
||
|
||
; Internal File System Error codes
|
||
;
|
||
; Cache errors
|
||
|
||
chNoBuf EQU 1 ; no free cache buffers (all in use)
|
||
chInUse EQU 2 ; requested block in use
|
||
chnotfound EQU 3 ; requested block not found
|
||
chNotInUse EQU 4 ; block being released was not in use
|
||
|
||
; FXM Internal error codes:
|
||
|
||
fxRangeErr EQU 16 ; file position beyond mapped range
|
||
fxOvFlErr EQU 17 ; extents file overflow
|
||
|
||
; TFS internal errors
|
||
|
||
fsDSIntErr EQU -127 ; Internal file system error
|
||
|
||
; BTree error codes
|
||
|
||
btnotfound EQU 32 ; record not found
|
||
btexists EQU 33 ; record already exists
|
||
btnospace EQU 34 ; no available space
|
||
btnoFit EQU 35 ; record doesn't fit in node
|
||
btbadNode EQU 36 ; bad node detected
|
||
btbadHdr EQU 37 ; bad BTree header record detected
|
||
dsBadRotate EQU 64 ; bad BTree rotate
|
||
|
||
; CM result codes
|
||
|
||
cmnotfound EQU 48 ; CNode not found
|
||
cmexists EQU 49 ; CNode already exists
|
||
cmnotempty EQU 50 ; directory CNode not empty (valence = 0)
|
||
cmRootCN EQU 51 ; invalid reference to root CNode
|
||
cmbadnews EQU 52 ; detected bad catalog structure
|
||
|
||
; File IDs result codes
|
||
|
||
cmFThdDirErr EQU 53 ; thread belongs to a directory not a file
|
||
cmFThdGone EQU 54 ; file thread doesn't exist
|
||
|
||
;
|
||
; extent key record (prefix xkr)
|
||
;
|
||
|
||
dataFk EQU $00 ; data fork type
|
||
rsrcFk EQU $FF ; resource fork type
|
||
|
||
xkrKeyLen EQU 0 ; key length (byte)
|
||
xkrFkType EQU 1 ; fork type (byte)
|
||
xkrFNum EQU 2 ; file number (long)
|
||
xkrFABN EQU 6 ; starting file allocation block number (word)
|
||
lenxkr EQU 8 ; length of a xkr
|
||
|
||
;
|
||
; extent data record (prefix xdr)
|
||
;
|
||
numExts EQU 3 ; number of extents per record
|
||
lenExt EQU 4 ; length of an extent entry
|
||
maxExtOff EQU lenExt*numExts-lenExt ; max extent entry offset
|
||
xdrStABN EQU 0 ; starting physical allocation block number (word)
|
||
xdrNumABlks EQU 2 ; number of allocation blocks (word)
|
||
lenxdr EQU 12 ; length of a xdr (3 extent entries)
|
||
|
||
;
|
||
; FXM variables (FXVars) storage layout
|
||
;
|
||
fxvFlags EQU 0 ; FXM Flags (byte)
|
||
fxvTContig EQU 6 ; ...try contiguous allocation first
|
||
fxvFContig EQU 7 ; ...force contiguous allocation
|
||
fxvResrv EQU 1 ; reserved (byte)
|
||
fxvxkrOff EQU 2 ; offset to extent key record
|
||
fxvxdrOff EQU fxvxkrOff+lenxkr ; offset to extent data record
|
||
lenFXVars EQU fxvxdrOff+lenxdr ; length of FXM vars
|
||
|
||
|
||
|
||
;
|
||
; Cache Queue header (prefix cqh)
|
||
;
|
||
cqhFlink EQU 0 ; (long) forward link pointer
|
||
cqhBlink EQU 4 ; (long) backward link pointer
|
||
cqhNumBuf EQU 8 ; (word) number of buffers
|
||
cqhBufSize EQU 10 ; (word) buffer size
|
||
LenCQH EQU 12 ; length of CQH
|
||
;
|
||
; Cache Buffer Header definition (prefix cbh)
|
||
;
|
||
cbhFlink EQU 0 ; (long) forward link
|
||
cbhBlink EQU 4 ; (long) backward link
|
||
cbhVCBPtr EQU 8 ; (long) VCB pointer
|
||
cbhFlNum EQU 12 ; (long) file number
|
||
cbhFRefNum EQU 16 ; (word) file refnum
|
||
cbhDBlk EQU 18 ; (long) disk block number (-1 = empty)
|
||
cbhFlBlk EQU 22 ; (long) file block number
|
||
cbhFlags EQU 26 ; (byte) flags
|
||
cbhdirty EQU 7 ; ...buffer dirty flag
|
||
cbhinuse EQU 6 ; ...buffer in use flag
|
||
cbhempty EQU 5 ; ...buffer is empty
|
||
cbhFkType EQU 27 ; (byte) fork type
|
||
; ...$00 = data fork
|
||
; ...$FF = resource fork
|
||
cbhData EQU 28 ; start of buffer data area
|
||
lenCBH EQU 28 ; length of cbh
|
||
|
||
; Local buffer equates
|
||
|
||
cobDBlk EQU cbhDBlk ; (long) disk block
|
||
cobFlBlk EQU cbhFlBlk ; (long) file block
|
||
cobFlags EQU cbhFlags ; (byte) flags (only dirty bit is used)
|
||
|
||
; FlushCache option flags
|
||
fCfreeBit EQU 1 ; free buffers after flush (save in the hash) <27Aug90>
|
||
fCtrash EQU 0 ; trash buffer contents after flush
|
||
;; kFCfree works as kFCtrash on pre-7.0 RamCache ; on 7.0, kFCfree overrides kFCtrash <28Aug90>
|
||
kFCfree EQU 3 ; corresponding constant for MOVEQ load <27Aug90>
|
||
kFCtrash EQU 1 ;
|
||
|
||
; GetBlock option flags
|
||
|
||
gbrelease EQU 3 ; release block immediately after get
|
||
gbnoRead EQU 2 ; don't read block from disk
|
||
gbexist EQU 1 ; get existing cache block
|
||
gbRead EQU 0 ; read block from disk (forced read)
|
||
kGBrelease EQU 8 ; corresponding constants for MOVEQ load
|
||
kGBnoRead EQU 4 ;
|
||
kGBexist EQU 2 ;
|
||
kGBRead EQU 1 ;
|
||
|
||
; RelBlock option flags
|
||
rbfreeBit EQU 3 ; free the buffer (save in the hash) <27Aug90>
|
||
rbdirty EQU 2 ; mark buffer dirty
|
||
rbtrash EQU 1 ; trash buffer contents after release
|
||
rbwrite EQU 0 ; force write buffer to disk
|
||
;; kRBfree works as kRBtrash on pre-7.0 RamCache ; on 7.0, kRBfree overrides kRBtrash <28Aug90>
|
||
kRBfree EQU 10 ; corresponding constants for MOVEQ load <27Aug90>
|
||
kRBdirty EQU 4 ; corresponding constants for MOVEQ load
|
||
kRBtrash EQU 2 ;
|
||
kRBwrite EQU 1 ;
|
||
|
||
|
||
|
||
;
|
||
; BTree constants
|
||
;
|
||
btNodeSize EQU 512 ; default node size
|
||
btMaxDepth EQU 8 ; max tree depth (don't change this)
|
||
|
||
;
|
||
; Tree Path Record (TPR)
|
||
;
|
||
tprNodeN EQU 0 ; node number (long)
|
||
tprRIndx EQU 4 ; record index (word)
|
||
lenTPR EQU 6 ; length of TPR
|
||
lenTPT EQU lenTPR*btMaxDepth ; length of Tree Path Table
|
||
|
||
;
|
||
; Node Descriptor (prefix nd)
|
||
;
|
||
ndFlink EQU 0 ; forward link (long)
|
||
ndBlink EQU 4 ; backward link (long)
|
||
ndType EQU 8 ; node type (byte)
|
||
ndHdrNode EQU 1 ; ...header node
|
||
ndMapNode EQU 2 ; ...map node
|
||
ndIndxNode EQU 0 ; ...index node
|
||
ndLeafNode EQU $FF ; ...leaf node
|
||
ndNHeight EQU 9 ; node height
|
||
ndNRecs EQU 10 ; number of records (word)
|
||
ndResv2 EQU 12 ; reserved (word)
|
||
lenND EQU 14 ; length of node descriptor
|
||
|
||
;
|
||
; BTree Header (bth) on disk
|
||
;
|
||
bthDepth EQU 0 ; current depth of tree (word)
|
||
bthRoot EQU 2 ; root node number (long)
|
||
bthNRecs EQU 6 ; number of leaf records in BTree (long)
|
||
bthFNode EQU 10 ; node number of 1st leaf node (long)
|
||
bthLNode EQU 14 ; node number of last leaf node (long)
|
||
bthNodeSize EQU 18 ; BTree node size in bytes (word)
|
||
bthKeyLen EQU 20 ; Max. key length (word)
|
||
bthNNodes EQU 22 ; total number of nodes (long)
|
||
bthFree EQU 26 ; number of free nodes (long)
|
||
lenMemBTH EQU 30 ; length of memory resident portion of BTH
|
||
;
|
||
bthResv EQU 30 ; reserved (76 bytes)
|
||
LenBTH EQU 106 ; length of a BTH
|
||
;
|
||
; BTree Control Block (btcB) in memory
|
||
;
|
||
btcFlags EQU 0 ; flags (byte)
|
||
btcDirty EQU 7 ; ...dirty flag
|
||
btcKeyUpd EQU 6 ; ...index key update required
|
||
btcNewIRec EQU 5 ; ...new index record required
|
||
btcDelIRec EQU 4 ; ...index record delete required
|
||
btcResv EQU 1 ; reserved (byte)
|
||
btcRefNum EQU 2 ; file refnum (word)
|
||
btcKeyCR EQU 4 ; pointer to ext key compare routine (long)
|
||
btcCQPtr EQU 8 ; pointer to cache queue (long)
|
||
btcVarPtr EQU 12 ; pointer to BTree variables (long)
|
||
btcLevel EQU 16 ; current level (word)
|
||
btcNodeM EQU 18 ; current node mark (long)
|
||
btcIndexM EQU 22 ; current index mark (word)
|
||
;
|
||
; this part of a btcB is the memory resident portion of the BTH
|
||
;
|
||
btcDepth EQU 24 ; current depth of tree (word)
|
||
btcRoot EQU 26 ; root node number (long)
|
||
btcNRecs EQU 30 ; number of leaf records in BTree (long)
|
||
btcFNode EQU 34 ; node number of 1st leaf node (long)
|
||
btcLNode EQU 38 ; node number of last leaf node (long)
|
||
btcNodeSize EQU 42 ; BTree node size in bytes (word)
|
||
btcKeyLen EQU 44 ; max key length (word)
|
||
btcNNodes EQU 46 ; total number of nodes (long)
|
||
btcFree EQU 50 ; number of free nodes (long)
|
||
LenBTCB EQU 54 ; length of a BTCB <SM2> <Sys7.1>
|
||
|
||
;
|
||
; BTree Variables (btVars) layout
|
||
;
|
||
btVTPTable EQU 0 ; Tree Path Table
|
||
btVRecord EQU btVTPTable+lenTPT ; record buffer
|
||
|
||
|
||
|
||
;
|
||
; constants
|
||
;
|
||
cmMaxKey EQU 37 ; max catalog key length
|
||
cmMaxCName EQU 31 ; max CName length
|
||
cmClpSize EQU 20 ; catalog clump size
|
||
;
|
||
; CNode types
|
||
;
|
||
cmDirCN EQU 1 ; directory CNode
|
||
cmFilCN EQU 2 ; file CNode
|
||
;
|
||
; catalog key record (prefix ckr)
|
||
;
|
||
ckrKeyLen EQU 0 ; key length (byte)
|
||
ckrResrv1 EQU 1 ; reserved (byte)
|
||
ckrParID EQU 2 ; parent directory ID (long)
|
||
ckrCName EQU 6 ; CNode name (str31)
|
||
lenckr EQU 38 ; length of a ckr
|
||
|
||
;
|
||
; catalog data record (prefix cdr)
|
||
;
|
||
cdrType EQU 0 ; record type (byte)
|
||
cdrResrv2 EQU 1 ; reserved (byte)
|
||
cdrData EQU 2 ; start of catalog record data
|
||
|
||
;
|
||
; catalog data record types (variants)
|
||
;
|
||
cdrDirRec EQU cmDirCN ; directory record (directory CNode type)
|
||
cdrFilRec EQU cmFilCN ; file record (file CNode type)
|
||
cdrThdRec EQU 3 ; thread record
|
||
cdrFThdRec EQU 4 ; file thread record
|
||
|
||
;
|
||
; catalog directory record (prefix dir)
|
||
;
|
||
dirFlags EQU 2 ; flags(word)
|
||
dirVal EQU 4 ; valence (word)
|
||
dirDirID EQU 6 ; DirID for this directory (long)
|
||
dirCrDat EQU 10 ; date/time created (long)
|
||
dirMdDat EQU 14 ; date/time last modified (long)
|
||
dirBkDat EQU 18 ; date/time last backed up (long)
|
||
dirUsrInfo EQU 22 ; User info bytes (16 bytes)
|
||
dirFndrInfo EQU 38 ; Finder Info bytes (16 bytes)
|
||
dirResrv EQU 54 ; reserved (16 bytes)
|
||
lendir EQU 70 ; length of a directory record
|
||
|
||
;
|
||
; catalog thread record (prefix thd)
|
||
;
|
||
thdResrv EQU 2 ; reserved (8 bytes)
|
||
thdParID EQU 10 ; Parent ID for this directory (long)
|
||
thdCName EQU 14 ; CName for this directory (str31)
|
||
lenthd EQU 46 ; length of a thread record
|
||
|
||
;
|
||
; catalog file record (prefix fil)
|
||
;
|
||
fThreadFlag EQU 1 ; bit offset into filFlags (set if thd exists)
|
||
|
||
filWrtFlag EQU 0 ; write-allowed bit in flags byte (0 if allowed)
|
||
filTypMask EQU $FE ; (user file-type in bits 1-7)
|
||
filFlags EQU 2 ; bit 7=1 (used), bit 0=file lock flag, bit 1=fthread
|
||
filTyp EQU 3 ; file type (used as a name extension)
|
||
filUsrWds EQU 4 ; user words for file. (16 bytes)
|
||
filFlNum EQU 20 ; file number
|
||
filStBlk EQU 24 ; Start file block (alloc blk size)(0000 if none)
|
||
filLgLen EQU 26 ; File logical length in bytes (EOF)
|
||
filPyLen EQU 30 ; File physical length in bytes
|
||
filRStBlk EQU 34 ; Start file block, resource fork (0000 if none)
|
||
filRLgLen EQU 36 ; File logical length (EOF), resource fork
|
||
filRPyLen EQU 40 ; File physical length, resource fork
|
||
filCrDat EQU 44 ; date/time created (long)
|
||
filMdDat EQU 48 ; date/time last modified (long)
|
||
filBkDat EQU 52 ; date/time last backed up (long)
|
||
filFndrInfo EQU 56 ; Additional finder info for file (16 bytes)
|
||
filClpSize EQU 72 ; file clump size (word)
|
||
filExtRec EQU 74 ; First 3 data fork extents (12 bytes)
|
||
filRExtRec EQU 86 ; First 3 resource fork extents (12 bytes)
|
||
filResrv EQU 98 ; reserved (4 bytes)
|
||
lenfil EQU 102 ; length of a file record
|
||
lencdr EQU lenfil ; max length of a catalog data record
|
||
|
||
;
|
||
; CM variables (CM vars) storage layout
|
||
;
|
||
ckrOff EQU 0 ; offset to catalog key record buffer
|
||
cdrOff EQU ckrOff+lenckr ; offset to catalog data record buffer
|
||
lenCMVars EQU lencdr+lenckr ; length of CM vars
|
||
|
||
;
|
||
; FileIDs variables
|
||
;
|
||
fidBogusExtID EQU 15 ; use this for exchanging extents in extents file
|
||
|
||
lenCID EQU 4 ; length of a cnode id
|
||
numExtToCache EQU 4 ; just guessing for ExchangeFiles
|
||
destExt EQU 0 ; offset into extFlgsOff if destination has extents
|
||
srcExt EQU 1 ; offset into extFlgsOff if source has extents
|
||
|
||
; fid vars storage layout
|
||
tempKeyOff EQU 0 ; BEST BE FIRST, SO LOCCREC CAN BE CALLED ALSO!
|
||
extOff EQU lenCMVars ; set up 4 extents
|
||
srcDIDOff EQU extOff+(numExtToCache*lenxdr)+(numExtToCache*lenxkr);
|
||
destDIDOff EQU srcDIDOff+lenCID
|
||
extFlgsOff EQU destDIDOff+lenCID ; flags for existance of extents in extents file
|
||
srcCNode EQU extFlgsOff+2 ; cnode of source
|
||
destCNode EQU srcCNode+lencdr ; dest cnode
|
||
|
||
lenFIDSwapVars EQU lenCMVars+(numExtToCache*lenxdr)+(numExtToCache*lenxkr)+(2*lenCID)+2+(2*lencdr)
|
||
; some catalog variables + the extents +
|
||
; the directory ids of source and dest +
|
||
; a word for flagging extents in extent file +
|
||
; the cnode records of source and dest
|
||
|
||
|
||
; further file system equates
|
||
|
||
CkdDB EQU $340 ; (2) used when searching the directory
|
||
NxtDB EQU $342
|
||
MaxDB EQU $344
|
||
FlushOnly EQU $346 ; (1) flag used by UnMountVol,FlushVol,
|
||
RegRsrc EQU $347 ; (1) flag used by OpenRF, FileOpen
|
||
FLckUnlck EQU $348 ; (1) flag used by SetFilLock,RstFilLock
|
||
FrcSync EQU $349 ; (1) when set, all fs calls are sync'ed
|
||
RgSvArea EQU $36A ; reg save during async calls.
|
||
Params EQU $3A4 ; 50 bytes long. For I/O parameter blocks.
|
||
FSTemp8 EQU $3D6 ; used by rename
|
||
FSTemp4 EQU $3DE ; used by rename, ckfilmod
|
||
fsVrsn EQU '1.2A' ; Current file system version
|
||
|
||
|
||
|
||
ENDIF ; ...already included |