! *** PREDECLARED TYPES %IF %DECLARED ( %BASIC$QUADWORD_DECLARED ) = 0 %THEN RECORD BASIC$QUADWORD LONG FILL ( 2 ) END RECORD %LET %BASIC$QUADWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$OCTAWORD_DECLARED ) = 0 %THEN RECORD BASIC$OCTAWORD LONG FILL ( 4 ) END RECORD %LET %BASIC$OCTAWORD_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$HFLOAT_AXP_DECLARED ) = 0 %THEN RECORD BASIC$HFLOAT_AXP LONG FILL ( 4 ) END RECORD %LET %BASIC$HFLOAT_AXP_DECLARED = 1 %END %IF %IF %DECLARED ( %BASIC$F_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$F_FLOATING_COMPLEX SINGLE REAL_PART SINGLE IMAGINARY_PART END RECORD %LET %BASIC$F_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$D_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$D_FLOATING_COMPLEX DOUBLE REAL_PART DOUBLE IMAGINARY_PART END RECORD %LET %BASIC$D_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$G_FLOATING_COMPLEX_DECL ) = 0 %THEN RECORD BASIC$G_FLOATING_COMPLEX GFLOAT REAL_PART GFLOAT IMAGINARY_PART END RECORD %LET %BASIC$G_FLOATING_COMPLEX_DECL = 1 %END %IF %IF %DECLARED ( %BASIC$H_FLOAT_AXP_CMPLX_DCL ) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX_AXP BASIC$HFLOAT_AXP REAL_PART BASIC$HFLOAT_AXP IMAGINARY_PART END RECORD %LET %BASIC$H_FLOAT_AXP_CMPLX_DCL = 1 %END %IF ! ! ! file access block (fab) definitions ! ! the fields thru ctx must not be modified due to ! commonality between fab/rab/xab ! DECLARE LONG CONSTANT FAB$C_BID = 3 ! code for fab DECLARE LONG CONSTANT FAB$M_PPF_RAT = x'00003FC0' DECLARE LONG CONSTANT FAB$M_PPF_IND = x'00004000' DECLARE LONG CONSTANT FAB$M_PPIFI = x'00008000' DECLARE LONG CONSTANT FAB$M_ASY = x'00000001' DECLARE LONG CONSTANT FAB$M_MXV = x'00000002' DECLARE LONG CONSTANT FAB$M_SUP = x'00000004' DECLARE LONG CONSTANT FAB$M_TMP = x'00000008' DECLARE LONG CONSTANT FAB$M_TMD = x'00000010' DECLARE LONG CONSTANT FAB$M_DFW = x'00000020' DECLARE LONG CONSTANT FAB$M_SQO = x'00000040' DECLARE LONG CONSTANT FAB$M_RWO = x'00000080' DECLARE LONG CONSTANT FAB$M_POS = x'00000100' DECLARE LONG CONSTANT FAB$M_WCK = x'00000200' DECLARE LONG CONSTANT FAB$M_NEF = x'00000400' DECLARE LONG CONSTANT FAB$M_RWC = x'00000800' DECLARE LONG CONSTANT FAB$M_DMO = x'00001000' DECLARE LONG CONSTANT FAB$M_SPL = x'00002000' DECLARE LONG CONSTANT FAB$M_SCF = x'00004000' DECLARE LONG CONSTANT FAB$M_DLT = x'00008000' DECLARE LONG CONSTANT FAB$M_NFS = x'00010000' DECLARE LONG CONSTANT FAB$M_UFO = x'00020000' DECLARE LONG CONSTANT FAB$M_PPF = x'00040000' DECLARE LONG CONSTANT FAB$M_INP = x'00080000' DECLARE LONG CONSTANT FAB$M_CTG = x'00100000' DECLARE LONG CONSTANT FAB$M_CBT = x'00200000' DECLARE LONG CONSTANT FAB$M_SYNCSTS = x'00400000' DECLARE LONG CONSTANT FAB$M_RCK = x'00800000' DECLARE LONG CONSTANT FAB$M_NAM = x'01000000' DECLARE LONG CONSTANT FAB$M_CIF = x'02000000' DECLARE LONG CONSTANT FAB$M_ESC = x'08000000' DECLARE LONG CONSTANT FAB$M_TEF = x'10000000' DECLARE LONG CONSTANT FAB$M_OFP = x'20000000' DECLARE LONG CONSTANT FAB$M_KFO = x'40000000' DECLARE LONG CONSTANT FAB$M_EXTEND_FOP = x'80000000' DECLARE LONG CONSTANT FAB$M_ERL = x'00008000' DECLARE LONG CONSTANT FAB$M_PUT = x'00000001' DECLARE LONG CONSTANT FAB$M_GET = x'00000002' DECLARE LONG CONSTANT FAB$M_DEL = x'00000004' DECLARE LONG CONSTANT FAB$M_UPD = x'00000008' DECLARE LONG CONSTANT FAB$M_TRN = x'00000010' DECLARE LONG CONSTANT FAB$M_BIO = x'00000020' DECLARE LONG CONSTANT FAB$M_BRO = x'00000040' DECLARE LONG CONSTANT FAB$M_EXE = x'00000080' DECLARE LONG CONSTANT FAB$M_SHRPUT = x'00000001' DECLARE LONG CONSTANT FAB$M_SHRGET = x'00000002' DECLARE LONG CONSTANT FAB$M_SHRDEL = x'00000004' DECLARE LONG CONSTANT FAB$M_SHRUPD = x'00000008' DECLARE LONG CONSTANT FAB$M_MSE = x'00000010' DECLARE LONG CONSTANT FAB$M_NIL = x'00000020' DECLARE LONG CONSTANT FAB$M_UPI = x'00000040' DECLARE LONG CONSTANT FAB$M_NQL = x'00000080' DECLARE LONG CONSTANT FAB$M_ORG = x'000000F0' DECLARE LONG CONSTANT FAB$C_SEQ = 0 ! sequential DECLARE LONG CONSTANT FAB$C_REL = 16 ! relative DECLARE LONG CONSTANT FAB$C_IDX = 32 ! indexed DECLARE LONG CONSTANT FAB$C_HSH = 48 ! hashed DECLARE LONG CONSTANT FAB$C_SPECIAL = 64 ! special file DECLARE LONG CONSTANT FAB$M_FTN = x'00000001' DECLARE LONG CONSTANT FAB$M_CR = x'00000002' DECLARE LONG CONSTANT FAB$M_PRN = x'00000004' DECLARE LONG CONSTANT FAB$M_BLK = x'00000008' DECLARE LONG CONSTANT FAB$M_MSB = x'00000010' DECLARE LONG CONSTANT FAB$C_FIFO = 1 ! FIFO special file DECLARE LONG CONSTANT FAB$C_CHAR_SPECIAL = 2 ! character special file DECLARE LONG CONSTANT FAB$C_BLOCK_SPECIAL = 3 ! block special file DECLARE LONG CONSTANT FAB$C_SYMLINK = 4 ! symbolic link special file for pre-V8.2 DECLARE LONG CONSTANT FAB$C_SYMBOLIC_LINK = 5 ! symbolic link special file for V8.2 and beyond DECLARE LONG CONSTANT FAB$C_RFM_DFLT = 2 ! var len is default DECLARE LONG CONSTANT FAB$C_UDF = 0 ! undefined (also stream binary) DECLARE LONG CONSTANT FAB$C_FIX = 1 ! fixed length records DECLARE LONG CONSTANT FAB$C_VAR = 2 ! variable length records DECLARE LONG CONSTANT FAB$C_VFC = 3 ! variable fixed control DECLARE LONG CONSTANT FAB$C_STM = 4 ! RMS-11 stream (valid only for sequential org) DECLARE LONG CONSTANT FAB$C_STMLF = 5 ! LF stream (valid only for sequential org) DECLARE LONG CONSTANT FAB$C_STMCR = 6 ! CR stream (valid only for sequential org) DECLARE LONG CONSTANT FAB$C_MAXRFM = 6 ! maximum rfm supported DECLARE LONG CONSTANT FAB$M_ONLY_RU = x'00000001' DECLARE LONG CONSTANT FAB$M_RU = x'00000002' DECLARE LONG CONSTANT FAB$M_BI = x'00000004' DECLARE LONG CONSTANT FAB$M_AI = x'00000008' DECLARE LONG CONSTANT FAB$M_AT = x'00000010' DECLARE LONG CONSTANT FAB$M_NEVER_RU = x'00000020' DECLARE LONG CONSTANT FAB$M_JOURNAL_FILE = x'00000040' DECLARE LONG CONSTANT FAB$M_SSIO_RQST = x'00000001' DECLARE LONG CONSTANT FAB$M_SSIO_GRANTED = x'00000002' DECLARE LONG CONSTANT FAB$M_SSIO_FOC = x'00000004' DECLARE LONG CONSTANT FAB$M_RCF_RU = x'00000001' DECLARE LONG CONSTANT FAB$M_RCF_AI = x'00000002' DECLARE LONG CONSTANT FAB$M_RCF_BI = x'00000004' DECLARE LONG CONSTANT FAB$S_FABDEF = 80 record FABDEF BYTE FAB$B_BID ! block id BYTE FAB$B_BLN ! block len group FAB$R_IFI_OVERLAY variant case WORD FAB$W_IFI ! internal file index case group FAB$R_IFI_BITS ! move to bit 6 ! rat value for process-permanent files ! indirect access to process-permanent file ! (i.e., restricted operations) ! indicates that this is PPF file WORD FILL_1_bits ! COMMENT ADDED BY SDL - FILL_1_bits contains bits FILL_1 through PPIFI end group FAB$R_IFI_BITS end variant end group FAB$R_IFI_OVERLAY group FAB$R_FOP_OVERLAY variant case LONG FAB$L_FOP ! file options case group FAB$R_FOP_BITS ! asynchronous operations ! maximize version number ! supersede existing file ! create temporary file ! create temp file marked for delete ! deferred write (rel and idx) ! sequential access only ! rewind mt on open ! use next magtape position ! write checking ! inhibit end of file positioning ! rewind mt on close ! dismount mt on close (not implemented) ! spool file on close ! submit command file on close ! delete sub-option ! non-file structured operation ! user file open - no rms operations ! process permanent file (pio segment) ! process-permanent file is 'input' ! contiguous extension ! contiguous best try ! Synchronous status notification for asynchronous routines. ! read checking ! use name block dvi, did, and/or fid fields for open ! create if non-existent ! reserved (was UFM bitfield) ! 'escape' to non-standard function ($modify) ! truncate at eof on close (write-accessed seq. disk file only) ! output file parse (only name type sticky) ! known file open (image activator only release 1) ! extend FOP LONG ASY_bits ! COMMENT ADDED BY SDL - ASY_bits contains bits ASY through EXTEND_FOP end group FAB$R_FOP_BITS case group FAB$R_FOP_BITS_OVERLAY ! move to bit 16 ! Erase Regardless of Lock ! Fill for remaining bits LONG FILL_10_bits ! COMMENT ADDED BY SDL - FILL_10_bits contains bits FILL_10 through FILL_11 end group FAB$R_FOP_BITS_OVERLAY end variant end group FAB$R_FOP_OVERLAY LONG FAB$L_STS ! status LONG FAB$L_STV ! status value LONG FAB$L_ALQ ! allocation quantity WORD FAB$W_DEQ ! default allocation quantity group FAB$R_FAC_OVERLAY variant case BYTE FAB$B_FAC ! file access case group FAB$R_FAC_BITS ! put access ! get access ! delete access ! update access ! truncate access ! block i/o access ! block and record i/o access ! execute access (caller must be exec or kernel mode, ! ufo must also be set) BYTE PUT_bits ! COMMENT ADDED BY SDL - PUT_bits contains bits PUT through EXE end group FAB$R_FAC_BITS end variant end group FAB$R_FAC_OVERLAY group FAB$R_SHR_OVERLAY variant case BYTE FAB$B_SHR ! file sharing case group FAB$R_SHR_BITS ! put access ! get access ! delete access ! update access ! multi-stream connects enabled ! no sharing ! user provided interlocking (allows multiple ! writers to seq. files) ! no query locking (file level) BYTE SHRPUT_bits ! COMMENT ADDED BY SDL - SHRPUT_bits contains bits SHRPUT through NQL end group FAB$R_SHR_BITS end variant end group FAB$R_SHR_OVERLAY LONG FAB$L_CTX ! user context ! -----***** BYTE FAB$B_RTV ! retrieval window size group FAB$R_ORG_OVERLAY variant case BYTE FAB$B_ORG ! file organization case group FAB$R_ORG_BITS BYTE FILL_5_bits ! COMMENT ADDED BY SDL - FILL_5_bits contains bits FILL_5 through ORG end group FAB$R_ORG_BITS end variant end group FAB$R_ORG_OVERLAY group FAB$R_RAT_OVERLAY variant case BYTE FAB$B_RAT ! record format case group FAB$R_RAT_BITS ! fortran carriage-ctl ! lf-record-cr carriage ctl ! print-file carriage ctl ! records don't cross block boundaries ! MSB formatted byte count BYTE FTN_bits ! COMMENT ADDED BY SDL - FTN_bits contains bits FTN through FILL_0_ end group FAB$R_RAT_BITS case BYTE FAB$B_SPECIAL_TYPE ! type of special file end variant end group FAB$R_RAT_OVERLAY BYTE FAB$B_RFM ! record format group FAB$R_JOURNAL_OVERLAY variant case BYTE FAB$B_JOURNAL ! journaling options (from FH2$B_JOURNAL) case group FAB$R_JOURNAL_BITS ! note: only one of RU, ONLY_RU, NEVER_RU ! may be set at a time ! file is accessible only in recovery unit ! enable recovery unit journal ! enable before image journal ! enable after image journal ! enable audit trail journal ! file is never accessible in recovery unit ! this is a journal file BYTE ONLY_RU_bits ! COMMENT ADDED BY SDL - ONLY_RU_bits contains bits ONLY_RU through FILL_1_ end group FAB$R_JOURNAL_BITS end variant end group FAB$R_JOURNAL_OVERLAY BYTE FAB$B_RU_FACILITY ! recoverable facility id number group FAB$R_FOPEXT_OVERLAY variant case WORD FAB$W_FOPEXT ! FOP extension case group FAB$R_FOPEXT_BITS ! SSIO access requested ! SSIO access granted ! SSIO flush-on-close ! MBZ - reserved to HP for future use WORD SSIO_RQST_bits ! COMMENT ADDED BY SDL - SSIO_RQST_bits contains bits SSIO_RQST through & ! RESERVED_BITS_MBZ end group FAB$R_FOPEXT_BITS end variant end group FAB$R_FOPEXT_OVERLAY LONG FAB$L_XAB ! xab address group FAB$R_NAM_OVERLAY variant case LONG FAB$L_NAM ! nam block address case LONG FAB$L_NAML ! naml block address end variant end group FAB$R_NAM_OVERLAY LONG FAB$L_FNA ! file name string address LONG FAB$L_DNA ! default file name string addr BYTE FAB$B_FNS ! file name string size BYTE FAB$B_DNS ! default name string size WORD FAB$W_MRS ! maximum record size LONG FAB$L_MRN ! maximum record number WORD FAB$W_BLS ! blocksize for tape BYTE FAB$B_BKS ! bucket size BYTE FAB$B_FSZ ! fixed header size LONG FAB$L_DEV ! device characteristics LONG FAB$L_SDC ! spooling device characteristics WORD FAB$W_GBC ! Global buffer count group FAB$R_ACMODES_OVERLAY variant case BYTE FAB$B_ACMODES ! agent access modes case group FAB$R_ACMODES_BITS ! ACMODE for log nams ! ACMODE for channel ! ACMODE to use for determining file accessibility ! ACMODE for user structure probing; ! maximized with actual mode of caller BYTE LNM_MODE_bits ! COMMENT ADDED BY SDL - LNM_MODE_bits contains bits LNM_MODE through CALLERS_MODE end group FAB$R_ACMODES_BITS end variant end group FAB$R_ACMODES_OVERLAY group FAB$R_RCF_OVERLAY ! recovery control flags variant case BYTE FAB$B_RCF ! (only for use by RMS Recovery) case group FAB$R_RCF_BITS ! recovery unit recovery ! after image recovery ! before image recovery BYTE RCF_RU_bits ! COMMENT ADDED BY SDL - RCF_RU_bits contains bits RCF_RU through FILL_2_ end group FAB$R_RCF_BITS end variant end group FAB$R_RCF_OVERLAY WORD FAB$W_GBC_INITIAL ! Initial Global Buffer Count declared for file WORD FAB$W_RESERVED_MBZ ! MBZ - reserved to HP for future use end record FABDEF ! basealign on aggregate FABDEF operates after aggregate end DECLARE LONG CONSTANT FAB$K_BLN = 80 ! length of fab DECLARE LONG CONSTANT FAB$C_BLN = 80 ! length of fab