!*** MODULE $FABDEF *** !DEC$ OPTIONS/ALIGN=(RECORDS=PACKED,COMMONS=PACKED)/NOWARN ! ! ! file access block (fab) definitions ! ! the fields thru ctx must not be modified due to ! commonality between fab/rab/xab ! PARAMETER FAB$C_BID = '00000003'X ! code for fab PARAMETER FAB$M_PPF_RAT = '00003FC0'X PARAMETER FAB$M_PPF_IND = '00004000'X PARAMETER FAB$M_PPIFI = '00008000'X PARAMETER FAB$M_ASY = '00000001'X PARAMETER FAB$M_MXV = '00000002'X PARAMETER FAB$M_SUP = '00000004'X PARAMETER FAB$M_TMP = '00000008'X PARAMETER FAB$M_TMD = '00000010'X PARAMETER FAB$M_DFW = '00000020'X PARAMETER FAB$M_SQO = '00000040'X PARAMETER FAB$M_RWO = '00000080'X PARAMETER FAB$M_POS = '00000100'X PARAMETER FAB$M_WCK = '00000200'X PARAMETER FAB$M_NEF = '00000400'X PARAMETER FAB$M_RWC = '00000800'X PARAMETER FAB$M_DMO = '00001000'X PARAMETER FAB$M_SPL = '00002000'X PARAMETER FAB$M_SCF = '00004000'X PARAMETER FAB$M_DLT = '00008000'X PARAMETER FAB$M_NFS = '00010000'X PARAMETER FAB$M_UFO = '00020000'X PARAMETER FAB$M_PPF = '00040000'X PARAMETER FAB$M_INP = '00080000'X PARAMETER FAB$M_CTG = '00100000'X PARAMETER FAB$M_CBT = '00200000'X PARAMETER FAB$M_SYNCSTS = '00400000'X PARAMETER FAB$M_RCK = '00800000'X PARAMETER FAB$M_NAM = '01000000'X PARAMETER FAB$M_CIF = '02000000'X PARAMETER FAB$M_ESC = '08000000'X PARAMETER FAB$M_TEF = '10000000'X PARAMETER FAB$M_OFP = '20000000'X PARAMETER FAB$M_KFO = '40000000'X PARAMETER FAB$M_EXTEND_FOP = '80000000'X PARAMETER FAB$M_ERL = '00008000'X PARAMETER FAB$M_PUT = '00000001'X PARAMETER FAB$M_GET = '00000002'X PARAMETER FAB$M_DEL = '00000004'X PARAMETER FAB$M_UPD = '00000008'X PARAMETER FAB$M_TRN = '00000010'X PARAMETER FAB$M_BIO = '00000020'X PARAMETER FAB$M_BRO = '00000040'X PARAMETER FAB$M_EXE = '00000080'X PARAMETER FAB$M_SHRPUT = '00000001'X PARAMETER FAB$M_SHRGET = '00000002'X PARAMETER FAB$M_SHRDEL = '00000004'X PARAMETER FAB$M_SHRUPD = '00000008'X PARAMETER FAB$M_MSE = '00000010'X PARAMETER FAB$M_NIL = '00000020'X PARAMETER FAB$M_UPI = '00000040'X PARAMETER FAB$M_NQL = '00000080'X PARAMETER FAB$M_ORG = '000000F0'X PARAMETER FAB$C_SEQ = '00000000'X ! sequential PARAMETER FAB$C_REL = '00000010'X ! relative PARAMETER FAB$C_IDX = '00000020'X ! indexed PARAMETER FAB$C_HSH = '00000030'X ! hashed PARAMETER FAB$C_SPECIAL = '00000040'X ! special file PARAMETER FAB$M_FTN = '00000001'X PARAMETER FAB$M_CR = '00000002'X PARAMETER FAB$M_PRN = '00000004'X PARAMETER FAB$M_BLK = '00000008'X PARAMETER FAB$M_MSB = '00000010'X PARAMETER FAB$C_FIFO = '00000001'X ! FIFO special file PARAMETER FAB$C_CHAR_SPECIAL = '00000002'X ! character special file PARAMETER FAB$C_BLOCK_SPECIAL = '00000003'X ! block special file PARAMETER FAB$C_SYMLINK = '00000004'X ! symbolic link special file for pre-V8.2 PARAMETER FAB$C_SYMBOLIC_LINK = '00000005'X ! symbolic link special file for V8.2 and beyond PARAMETER FAB$C_RFM_DFLT = '00000002'X ! var len is default PARAMETER FAB$C_UDF = '00000000'X ! undefined (also stream binary) PARAMETER FAB$C_FIX = '00000001'X ! fixed length records PARAMETER FAB$C_VAR = '00000002'X ! variable length records PARAMETER FAB$C_VFC = '00000003'X ! variable fixed control PARAMETER FAB$C_STM = '00000004'X ! RMS-11 stream (valid only for sequential org) PARAMETER FAB$C_STMLF = '00000005'X ! LF stream (valid only for sequential org) PARAMETER FAB$C_STMCR = '00000006'X ! CR stream (valid only for sequential org) PARAMETER FAB$C_MAXRFM = '00000006'X ! maximum rfm supported PARAMETER FAB$M_ONLY_RU = '00000001'X PARAMETER FAB$M_RU = '00000002'X PARAMETER FAB$M_BI = '00000004'X PARAMETER FAB$M_AI = '00000008'X PARAMETER FAB$M_AT = '00000010'X PARAMETER FAB$M_NEVER_RU = '00000020'X PARAMETER FAB$M_JOURNAL_FILE = '00000040'X PARAMETER FAB$M_SSIO_RQST = '00000001'X PARAMETER FAB$M_SSIO_GRANTED = '00000002'X PARAMETER FAB$M_SSIO_FOC = '00000004'X PARAMETER FAB$M_RCF_RU = '00000001'X PARAMETER FAB$M_RCF_AI = '00000002'X PARAMETER FAB$M_RCF_BI = '00000004'X STRUCTURE /FABDEF/ BYTE FAB$B_BID ! block id BYTE FAB$B_BLN ! block len UNION MAP INTEGER*2 FAB$W_IFI ! internal file index END MAP MAP PARAMETER FAB$S_PPF_RAT = 8 PARAMETER FAB$V_PPF_RAT = 6 ! rat value for process-permanent files PARAMETER FAB$S_PPF_IND = 1 PARAMETER FAB$V_PPF_IND = 14 ! indirect access to process-permanent file ! (i.e., restricted operations) PARAMETER FAB$S_PPIFI = 1 PARAMETER FAB$V_PPIFI = 15 BYTE %FILL (2) ! indicates that this is PPF file END MAP END UNION UNION MAP INTEGER*4 FAB$L_FOP ! file options END MAP MAP PARAMETER FAB$S_ASY = 1 PARAMETER FAB$V_ASY = 0 ! asynchronous operations PARAMETER FAB$S_MXV = 1 PARAMETER FAB$V_MXV = 1 ! maximize version number PARAMETER FAB$S_SUP = 1 PARAMETER FAB$V_SUP = 2 ! supersede existing file PARAMETER FAB$S_TMP = 1 PARAMETER FAB$V_TMP = 3 ! create temporary file PARAMETER FAB$S_TMD = 1 PARAMETER FAB$V_TMD = 4 ! create temp file marked for delete PARAMETER FAB$S_DFW = 1 PARAMETER FAB$V_DFW = 5 ! deferred write (rel and idx) PARAMETER FAB$S_SQO = 1 PARAMETER FAB$V_SQO = 6 ! sequential access only PARAMETER FAB$S_RWO = 1 PARAMETER FAB$V_RWO = 7 ! rewind mt on open PARAMETER FAB$S_POS = 1 PARAMETER FAB$V_POS = 8 ! use next magtape position PARAMETER FAB$S_WCK = 1 PARAMETER FAB$V_WCK = 9 ! write checking PARAMETER FAB$S_NEF = 1 PARAMETER FAB$V_NEF = 10 ! inhibit end of file positioning PARAMETER FAB$S_RWC = 1 PARAMETER FAB$V_RWC = 11 ! rewind mt on close PARAMETER FAB$S_DMO = 1 PARAMETER FAB$V_DMO = 12 ! dismount mt on close (not implemented) PARAMETER FAB$S_SPL = 1 PARAMETER FAB$V_SPL = 13 ! spool file on close PARAMETER FAB$S_SCF = 1 PARAMETER FAB$V_SCF = 14 ! submit command file on close PARAMETER FAB$S_DLT = 1 PARAMETER FAB$V_DLT = 15 ! delete sub-option PARAMETER FAB$S_NFS = 1 PARAMETER FAB$V_NFS = 16 ! non-file structured operation PARAMETER FAB$S_UFO = 1 PARAMETER FAB$V_UFO = 17 ! user file open - no rms operations PARAMETER FAB$S_PPF = 1 PARAMETER FAB$V_PPF = 18 ! process permanent file (pio segment) PARAMETER FAB$S_INP = 1 PARAMETER FAB$V_INP = 19 ! process-permanent file is 'input' PARAMETER FAB$S_CTG = 1 PARAMETER FAB$V_CTG = 20 ! contiguous extension PARAMETER FAB$S_CBT = 1 PARAMETER FAB$V_CBT = 21 ! contiguous best try PARAMETER FAB$S_SYNCSTS = 1 PARAMETER FAB$V_SYNCSTS = 22 ! Synchronous status notification for asynchronous rout PARAMETER FAB$S_RCK = 1 PARAMETER FAB$V_RCK = 23 ! read checking PARAMETER FAB$S_NAM = 1 PARAMETER FAB$V_NAM = 24 ! use name block dvi, did, and/or fid fields for open PARAMETER FAB$S_CIF = 1 PARAMETER FAB$V_CIF = 25 ! create if non-existent PARAMETER FAB$S_ESC = 1 PARAMETER FAB$V_ESC = 27 ! 'escape' to non-standard function ($modify) PARAMETER FAB$S_TEF = 1 PARAMETER FAB$V_TEF = 28 ! truncate at eof on close (write-accessed seq. disk file o ! truncate at eof on close (write-accessed seq. disk file onl PARAMETER FAB$S_OFP = 1 PARAMETER FAB$V_OFP = 29 ! output file parse (only name type sticky) PARAMETER FAB$S_KFO = 1 PARAMETER FAB$V_KFO = 30 ! known file open (image activator only release 1) PARAMETER FAB$S_EXTEND_FOP = 1 PARAMETER FAB$V_EXTEND_FOP = 31 BYTE %FILL (4) ! extend FOP END MAP MAP PARAMETER FAB$S_ERL = 1 PARAMETER FAB$V_ERL = 15 ! Erase Regardless of Lock BYTE %FILL (1) END MAP END UNION INTEGER*4 FAB$L_STS ! status INTEGER*4 FAB$L_STV ! status value INTEGER*4 FAB$L_ALQ ! allocation quantity INTEGER*2 FAB$W_DEQ ! default allocation quantity UNION MAP BYTE FAB$B_FAC ! file access END MAP MAP PARAMETER FAB$S_PUT = 1 PARAMETER FAB$V_PUT = 0 ! put access PARAMETER FAB$S_GET = 1 PARAMETER FAB$V_GET = 1 ! get access PARAMETER FAB$S_DEL = 1 PARAMETER FAB$V_DEL = 2 ! delete access PARAMETER FAB$S_UPD = 1 PARAMETER FAB$V_UPD = 3 ! update access PARAMETER FAB$S_TRN = 1 PARAMETER FAB$V_TRN = 4 ! truncate access PARAMETER FAB$S_BIO = 1 PARAMETER FAB$V_BIO = 5 ! block i/o access PARAMETER FAB$S_BRO = 1 PARAMETER FAB$V_BRO = 6 ! block and record i/o access PARAMETER FAB$S_EXE = 1 PARAMETER FAB$V_EXE = 7 ! execute access (caller must be exec or kernel mode, ! ufo must also be set) BYTE %FILL (1) END MAP END UNION UNION MAP BYTE FAB$B_SHR ! file sharing END MAP MAP PARAMETER FAB$S_SHRPUT = 1 PARAMETER FAB$V_SHRPUT = 0 ! put access PARAMETER FAB$S_SHRGET = 1 PARAMETER FAB$V_SHRGET = 1 ! get access PARAMETER FAB$S_SHRDEL = 1 PARAMETER FAB$V_SHRDEL = 2 ! delete access PARAMETER FAB$S_SHRUPD = 1 PARAMETER FAB$V_SHRUPD = 3 ! update access PARAMETER FAB$S_MSE = 1 PARAMETER FAB$V_MSE = 4 ! multi-stream connects enabled PARAMETER FAB$S_NIL = 1 PARAMETER FAB$V_NIL = 5 ! no sharing PARAMETER FAB$S_UPI = 1 PARAMETER FAB$V_UPI = 6 ! user provided interlocking (allows multiple ! writers to seq. files) PARAMETER FAB$S_NQL = 1 PARAMETER FAB$V_NQL = 7 BYTE %FILL (1) ! no query locking (file level) END MAP END UNION INTEGER*4 FAB$L_CTX ! user context ! -----***** BYTE FAB$B_RTV ! retrieval window size UNION MAP BYTE FAB$B_ORG ! file organization END MAP MAP PARAMETER FAB$S_ORG = 4 PARAMETER FAB$V_ORG = 4 BYTE %FILL (1) END MAP END UNION UNION MAP BYTE FAB$B_RAT ! record format END MAP MAP PARAMETER FAB$S_FTN = 1 PARAMETER FAB$V_FTN = 0 ! fortran carriage-ctl PARAMETER FAB$S_CR = 1 PARAMETER FAB$V_CR = 1 ! lf-record-cr carriage ctl PARAMETER FAB$S_PRN = 1 PARAMETER FAB$V_PRN = 2 ! print-file carriage ctl PARAMETER FAB$S_BLK = 1 PARAMETER FAB$V_BLK = 3 ! records don't cross block boundaries PARAMETER FAB$S_MSB = 1 PARAMETER FAB$V_MSB = 4 ! MSB formatted byte count BYTE %FILL (1) END MAP MAP BYTE FAB$B_SPECIAL_TYPE ! type of special file END MAP END UNION BYTE FAB$B_RFM ! record format UNION MAP BYTE FAB$B_JOURNAL ! journaling options (from FH2$B_JOURNAL) END MAP MAP ! may be set at a time PARAMETER FAB$S_ONLY_RU = 1 PARAMETER FAB$V_ONLY_RU = 0 ! file is accessible only in recovery unit PARAMETER FAB$S_RU = 1 PARAMETER FAB$V_RU = 1 ! enable recovery unit journal PARAMETER FAB$S_BI = 1 PARAMETER FAB$V_BI = 2 ! enable before image journal PARAMETER FAB$S_AI = 1 PARAMETER FAB$V_AI = 3 ! enable after image journal PARAMETER FAB$S_AT = 1 PARAMETER FAB$V_AT = 4 ! enable audit trail journal PARAMETER FAB$S_NEVER_RU = 1 PARAMETER FAB$V_NEVER_RU = 5 ! file is never accessible in recovery unit PARAMETER FAB$S_JOURNAL_FILE = 1 PARAMETER FAB$V_JOURNAL_FILE = 6 ! this is a journal file BYTE %FILL (1) END MAP END UNION BYTE FAB$B_RU_FACILITY ! recoverable facility id number UNION MAP INTEGER*2 FAB$W_FOPEXT ! FOP extension END MAP MAP PARAMETER FAB$S_SSIO_RQST = 1 PARAMETER FAB$V_SSIO_RQST = 0 ! SSIO access requested PARAMETER FAB$S_SSIO_GRANTED = 1 PARAMETER FAB$V_SSIO_GRANTED = 1 ! SSIO access granted PARAMETER FAB$S_SSIO_FOC = 1 PARAMETER FAB$V_SSIO_FOC = 2 ! SSIO flush-on-close BYTE %FILL (1) END MAP END UNION INTEGER*4 FAB$L_XAB ! xab address UNION MAP INTEGER*4 FAB$L_NAM ! nam block address END MAP MAP INTEGER*4 FAB$L_NAML ! naml block address END MAP END UNION INTEGER*4 FAB$L_FNA ! file name string address INTEGER*4 FAB$L_DNA ! default file name string addr BYTE FAB$B_FNS ! file name string size BYTE FAB$B_DNS ! default name string size INTEGER*2 FAB$W_MRS ! maximum record size INTEGER*4 FAB$L_MRN ! maximum record number INTEGER*2 FAB$W_BLS ! blocksize for tape BYTE FAB$B_BKS ! bucket size BYTE FAB$B_FSZ ! fixed header size INTEGER*4 FAB$L_DEV ! device characteristics INTEGER*4 FAB$L_SDC ! spooling device characteristics INTEGER*2 FAB$W_GBC ! Global buffer count UNION MAP BYTE FAB$B_ACMODES ! agent access modes END MAP MAP PARAMETER FAB$S_LNM_MODE = 2 PARAMETER FAB$V_LNM_MODE = 0 ! ACMODE for log nams PARAMETER FAB$S_CHAN_MODE = 2 PARAMETER FAB$V_CHAN_MODE = 2 ! ACMODE for channel PARAMETER FAB$S_FILE_MODE = 2 PARAMETER FAB$V_FILE_MODE = 4 ! ACMODE to use for determining file accessibility PARAMETER FAB$S_CALLERS_MODE = 2 PARAMETER FAB$V_CALLERS_MODE = 6 ! ACMODE for user structure probing; ! maximized with actual mode of caller BYTE %FILL (1) END MAP END UNION UNION MAP BYTE FAB$B_RCF ! (only for use by RMS Recovery) END MAP MAP PARAMETER FAB$S_RCF_RU = 1 PARAMETER FAB$V_RCF_RU = 0 ! recovery unit recovery PARAMETER FAB$S_RCF_AI = 1 PARAMETER FAB$V_RCF_AI = 1 ! after image recovery PARAMETER FAB$S_RCF_BI = 1 PARAMETER FAB$V_RCF_BI = 2 ! before image recovery BYTE %FILL (1) END MAP END UNION INTEGER*2 FAB$W_GBC_INITIAL ! Initial Global Buffer Count declared for file INTEGER*2 FAB$W_RESERVED_MBZ ! MBZ - reserved to HP for future use END STRUCTURE ! FABDEF ! basealign on aggregate FABDEF operates after aggregate end PARAMETER FAB$K_BLN = '00000050'X ! length of fab PARAMETER FAB$C_BLN = '00000050'X ! length of fab !DEC$ END OPTIONS