%DEFINE UCHAR_FLAGS LONG %DEFINE XAB_RCF_FLAGS BYTE ! *** 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 ! ! Item XAB definitions ! DECLARE LONG CONSTANT XAB$C_ITM = 36 ! xabitm id code ! The following set of flags exactly mimic the FCHDEF flags defined in STARLET. ! They are here to provide an unsupported interface to the UCHAR longword maintained ! by the file system. ! ! Note: RESERVED6 is the counterpart of FCH$x_SCRATCH. This SCRATCH bit ! means the file is a temporary file that should only exist within the ! context of an XQP operation. This bit should NEVER be visible to a user. ! (It was implemented by XQP for ACP MOVEFILE subfunction. A 'scratch' ! file is created with the scratch bit set in the file header. This is ! made to be the 'moved' file, then the original file is replaced by the ! moved file, and finally everything is cleaned up. If a crash occurs, ! the scratch file is left lying around; the scratch bit is used to signal ! to ANALYZE/DISK/REPAIR that this header is not being used.) RMS should ! not provide any interface to sense or set this bit. ! DECLARE LONG CONSTANT XAB$M_WASCONTIG = x'00000001' DECLARE LONG CONSTANT XAB$M_NOBACKUP = x'00000002' DECLARE LONG CONSTANT XAB$M_WRITEBACK = x'00000004' DECLARE LONG CONSTANT XAB$M_READCHECK = x'00000008' DECLARE LONG CONSTANT XAB$M_WRITCHECK = x'00000010' DECLARE LONG CONSTANT XAB$M_CONTIGB = x'00000020' DECLARE LONG CONSTANT XAB$M_LOCKED = x'00000040' DECLARE LONG CONSTANT XAB$M_CONTIG = x'00000080' DECLARE LONG CONSTANT XAB$M_RESERVED1 = x'00000100' DECLARE LONG CONSTANT XAB$M_RESERVED2 = x'00000200' DECLARE LONG CONSTANT XAB$M_RESERVED3 = x'00000400' DECLARE LONG CONSTANT XAB$M_BADACL = x'00000800' DECLARE LONG CONSTANT XAB$M_SPOOL = x'00001000' DECLARE LONG CONSTANT XAB$M_DIRECTORY = x'00002000' DECLARE LONG CONSTANT XAB$M_BADBLOCK = x'00004000' DECLARE LONG CONSTANT XAB$M_MARKDEL = x'00008000' DECLARE LONG CONSTANT XAB$M_NOCHARGE = x'00010000' DECLARE LONG CONSTANT XAB$M_ERASE = x'00020000' DECLARE LONG CONSTANT XAB$M_RESERVED4 = x'00040000' DECLARE LONG CONSTANT XAB$M_SHELVED = x'00080000' DECLARE LONG CONSTANT XAB$M_RESERVED6 = x'00100000' DECLARE LONG CONSTANT XAB$M_NOMOVE = x'00200000' DECLARE LONG CONSTANT XAB$M_NOSHELVABLE = x'00400000' DECLARE LONG CONSTANT XAB$M_PRESHELVED = x'00800000' DECLARE LONG CONSTANT XAB$S_UCHAR_FLAGS = 3 DECLARE LONG CONSTANT XAB$_NET_BUFFER_SIZE = 1 ! (sense) negociated buffer size DECLARE LONG CONSTANT XAB$_NET_BLOCK_COUNT = 2 ! (set,sense) requested block count DECLARE LONG CONSTANT XAB$_NET_REMOTE_SYSTEM = 3 ! (sense) remote system type DECLARE LONG CONSTANT XAB$_NET_REMOTE_FILE_SYSTEM = 4 ! (sense) remote file system type DECLARE LONG CONSTANT XAB$_NET_EXTPROT = 5 ! (set,sense) actual extended protection DECLARE LONG CONSTANT XAB$_NET_SYSCAP_LOCAL = 6 ! (sense) DAP SYSCAP of local system DECLARE LONG CONSTANT XAB$_NET_SYSCAP_REMOTE = 7 ! (sense) DAP SYSCAP of remote system DECLARE LONG CONSTANT XAB$_NET_DAPVER_LOCAL = 8 ! (sense) DAP version - local system DECLARE LONG CONSTANT XAB$_NET_DAPVER_REMOTE = 9 ! (sense) DAP version - remote system DECLARE LONG CONSTANT XAB$_NET_LINK_TIMEOUT = 10 ! (set,sense) logical link timeout (seconds) DECLARE LONG CONSTANT XAB$_NET_DATA_CRC_ENABLE = 11 ! (set,sense) DAP level CRC DECLARE LONG CONSTANT XAB$_NET_LINK_CACHE_ENABLE = 12 ! (set,sense) Logical link cache enable ! ,NET_DATA_COMPRESSION /* (set,sense) do data compression (FUTURE) DECLARE LONG CONSTANT XAB$K_NET_MIN = 1 DECLARE LONG CONSTANT XAB$K_NET_MAX = 12 DECLARE LONG CONSTANT XAB$_STAT_ENABLE = 64 ! (set,sense) Read statistics enable DECLARE LONG CONSTANT XAB$_FILE_LENGTH_HINT = 65 ! (set,sense) File length hint (set of 2 quadword fields) DECLARE LONG CONSTANT XAB$K_STAT_MIN = 64 DECLARE LONG CONSTANT XAB$K_STAT_MAX = 65 DECLARE LONG CONSTANT XAB$_UCHAR = 128 ! (sense) Read file characteristics (obsolete) DECLARE LONG CONSTANT XAB$_UCHAR_WASCONTIG = 129 ! (sense) FCH$V_WASCONTIG DECLARE LONG CONSTANT XAB$_UCHAR_NOBACKUP = 130 ! (set,sense) FCH$V_NOBACKUP DECLARE LONG CONSTANT XAB$_UCHAR_WRITEBACK = 131 ! (sense) FCH$V_WRITEBACK DECLARE LONG CONSTANT XAB$_UCHAR_READCHECK = 132 ! (set,sense) FCH$V_READCHECK DECLARE LONG CONSTANT XAB$_UCHAR_WRITECHECK = 133 ! (set,sense) FCH$V_WRITECHECK DECLARE LONG CONSTANT XAB$_UCHAR_CONTIGB = 134 ! (set,sense) FCH$V_CONTIGB DECLARE LONG CONSTANT XAB$_UCHAR_LOCKED = 135 ! (set,sense) FCH$V_LOCKED DECLARE LONG CONSTANT XAB$_UCHAR_CONTIG = 136 ! (sense) FCH$V_CONTIG DECLARE LONG CONSTANT XAB$_UCHAR_BADACL = 137 ! (sense) FCH$V_BADACL DECLARE LONG CONSTANT XAB$_UCHAR_SPOOL = 138 ! (sense) FCH$V_SPOOL DECLARE LONG CONSTANT XAB$_UCHAR_DIRECTORY = 139 ! (sense) FCH$V_DIRECTORY DECLARE LONG CONSTANT XAB$_UCHAR_BADBLOCK = 140 ! (sense) FCH$V_BADBLOCK DECLARE LONG CONSTANT XAB$_UCHAR_MARKDEL = 141 ! (sense) FCH$V_BADBLOCK DECLARE LONG CONSTANT XAB$_UCHAR_NOCHARGE = 142 ! (sense) FCH$V_NOCHARGE DECLARE LONG CONSTANT XAB$_UCHAR_ERASE = 143 ! (set,sense) FCH$V_ERASE DECLARE LONG CONSTANT XAB$_UCHAR_NOMOVE = 144 ! (set,sense) FCH$V_NOMOVE DECLARE LONG CONSTANT XAB$_UCHAR_SHELVED = 145 ! (sense) FCH$V_SHELVED DECLARE LONG CONSTANT XAB$_UCHAR_NOSHELVABLE = 146 ! (set,sense) FCH$V_NOSHELVABLE DECLARE LONG CONSTANT XAB$_UCHAR_PRESHELVED = 147 ! (sense) FCH$V_PRESHELVED DECLARE LONG CONSTANT XAB$K_UCHAR_MIN = 128 DECLARE LONG CONSTANT XAB$K_UCHAR_MAX = 147 DECLARE LONG CONSTANT XAB$_STORED_SEMANTICS = 192 ! (set,sense) Stored semantics of the file DECLARE LONG CONSTANT XAB$_ACCESS_SEMANTICS = 193 ! (set,sense) Access semantics of the file DECLARE LONG CONSTANT XAB$_RMS_EXTENSION = 194 ! (set,sense) Required RMS processing extension DECLARE LONG CONSTANT XAB$K_XLATE_MIN = 192 DECLARE LONG CONSTANT XAB$K_XLATE_MAX = 194 DECLARE LONG CONSTANT XAB$C_SEMANTICS_MAX_LEN = 64 ! max length for stored or access semantics DECLARE LONG CONSTANT XAB$K_SEMANTICS_MAX_LEN = 64 ! max length for stored or access semantics DECLARE LONG CONSTANT XAB$_MULTIBUFFER_COUNT = 256 ! (set-only) Multibuffer count (not limited to 127) ! legal only on $CONNECT DECLARE LONG CONSTANT XAB$_NORECORD = 257 ! (set-only) Norecord suppresses update of the expiration d/t, passed in on ! on $OPEN or $CLOSE DECLARE LONG CONSTANT XAB$_RECOVERY = 258 ! Used to indicate type of ! recovery in progress. DECLARE LONG CONSTANT XAB$_RUJVOLNAM = 259 ! Used to control RUJ placement DECLARE LONG CONSTANT XAB$_GBC32 = 260 ! (set/sense) GBC longword implementation DECLARE LONG CONSTANT XAB$_LINKCOUNT = 261 ! (set/sense) ODS-5 (hard) link count DECLARE LONG CONSTANT XAB$_GBCFLAGS = 262 ! (set/sense) GBC flags DECLARE LONG CONSTANT XAB$K_MISC_MIN = 256 DECLARE LONG CONSTANT XAB$K_MISC_MAX = 262 DECLARE LONG CONSTANT XAB$_TID = 320 ! (set/sense) TID DECLARE LONG CONSTANT XAB$K_TID_MIN = 320 DECLARE LONG CONSTANT XAB$K_TID_MAX = 320 DECLARE LONG CONSTANT XAB$_CACHING_OPTIONS = 384 ! (set,sense) VDC runtime caching options DECLARE LONG CONSTANT XAB$_CACHING_ATTRIBUTE = 385 ! (set, sense) VDC perm caching attribute DECLARE LONG CONSTANT XAB$K_CACHING_OPTIONS_MIN = 384 DECLARE LONG CONSTANT XAB$K_CACHING_OPTIONS_MAX = 385 DECLARE LONG CONSTANT XAB$_ACCDATE = 448 ! (set,sense) access date DECLARE LONG CONSTANT XAB$_ATTDATE = 449 ! (set,sense) attribute change date DECLARE LONG CONSTANT XAB$_MODDATE = 450 ! (set,sense) data modification date DECLARE LONG CONSTANT XAB$K_DATE_MIN = 448 DECLARE LONG CONSTANT XAB$K_DATE_MAX = 450 DECLARE LONG CONSTANT XAB$K_SENSEMODE = 1 DECLARE LONG CONSTANT XAB$K_SETMODE = 2 DECLARE LONG CONSTANT XAB$S_XABITMDEF = 32 record XABITMDEF BYTE XABITMDEF$$_FILL_1 BYTE XABITMDEF$$_FILL_2 WORD XABITMDEF$$_FILL_3 LONG XABITMDEF$$_FILL_4 ! HAS SAME COD, BLN, SPARE AND NXT FIELD ! THESE 4 FIELDS ARE COMMON TO ALL XABS AND ! HAVE BEEN DEFINED BY $XABDEF LONG XAB$L_ITEMLIST ! Address of the item list ! In the user interface, item codes are arbitrary integer values, so ! we may as well allow logical groups to have contiguous codes, with ! room for expansion (to allow table driven code). BYTE XAB$B_MODE ! must be either SETMODE or SENSEMODE BYTE XAB$B_ITM_FILL1 ( 1 to 3 ) ! Reserved space for future definition LONG XAB$IL_ITM_FILL2 ( 1 to 4 ) ! Reserved space for future definition end record XABITMDEF ! basealign on aggregate XABITMDEF operates after aggregate end DECLARE LONG CONSTANT XAB$K_ITMLEN = 32 DECLARE LONG CONSTANT XAB$C_ITMLEN = 32 ! Define fields and constant values for XAB$_CACHING_OPTIONS longword. ! These must match [STARLET]FIBDEF.SDL exactly DECLARE LONG CONSTANT XAB$M_FILE_ATTRIBUTES = x'0000000F' DECLARE LONG CONSTANT XAB$M_FILE_CONTENTS = x'000000F0' DECLARE LONG CONSTANT XAB$K_DEFAULT = 0 DECLARE LONG CONSTANT XAB$K_WRITETHROUGH = 1 DECLARE LONG CONSTANT XAB$K_WRITEBEHIND = 2 DECLARE LONG CONSTANT XAB$K_NOCACHING = 3 DECLARE LONG CONSTANT XAB$M_FLUSH_ON_CLOSE = x'00000F00' DECLARE LONG CONSTANT XAB$K_FLUSH = 1 DECLARE LONG CONSTANT XAB$K_NOFLUSH = 2 DECLARE LONG CONSTANT XAB$M_CACHECTL_MBZ = x'FFFFF000' DECLARE LONG CONSTANT XAB$S_XAB_CACHING_OPTIONS_FLAGS = 4 record XAB_CACHING_OPTIONS_FLAGS LONG FILE_ATTRIBUTES_bits ! COMMENT ADDED BY SDL - FILE_ATTRIBUTES_bits contains bits FILE_ATTRIBUTES through & ! CACHECTL_MBZ end record XAB_CACHING_OPTIONS_FLAGS ! The following set of flags mimic the IFB$B_RECVRFLGS flags. ! They are here to provide an interface for RECOVER. DECLARE LONG CONSTANT XAB$M_RCF_RU = x'00000001' DECLARE LONG CONSTANT XAB$M_RCF_AI = x'00000002' DECLARE LONG CONSTANT XAB$M_RCF_BI = x'00000004' DECLARE LONG CONSTANT XAB$M_RCF_NOPAD = x'00000008' DECLARE LONG CONSTANT XAB$S_XAB_RCF_FLAGS = 1 DECLARE LONG CONSTANT XAB$K_DISABLE = 0 DECLARE LONG CONSTANT XAB$K_ENABLE = 1 DECLARE LONG CONSTANT XAB$K_RT11 = 1 DECLARE LONG CONSTANT XAB$K_RSTS = 2 DECLARE LONG CONSTANT XAB$K_RSX11S = 3 DECLARE LONG CONSTANT XAB$K_RSX11M = 4 DECLARE LONG CONSTANT XAB$K_RSX11D = 5 DECLARE LONG CONSTANT XAB$K_IAS = 6 DECLARE LONG CONSTANT XAB$K_VAXVMS = 7 DECLARE LONG CONSTANT XAB$K_TOPS20 = 8 DECLARE LONG CONSTANT XAB$K_TOPS10 = 9 DECLARE LONG CONSTANT XAB$K_RTS8 = 10 DECLARE LONG CONSTANT XAB$K_OS8 = 11 DECLARE LONG CONSTANT XAB$K_RSX11MP = 12 DECLARE LONG CONSTANT XAB$K_COPOS11 = 13 DECLARE LONG CONSTANT XAB$K_P_OS = 14 DECLARE LONG CONSTANT XAB$K_VAXELN = 15 DECLARE LONG CONSTANT XAB$K_CPM = 16 DECLARE LONG CONSTANT XAB$K_MS_DOS = 17 DECLARE LONG CONSTANT XAB$K_ULTRIX_32 = 18 DECLARE LONG CONSTANT XAB$K_ULTRIX_11 = 19 DECLARE LONG CONSTANT XAB$K_RMS11 = 1 DECLARE LONG CONSTANT XAB$K_RMS20 = 2 DECLARE LONG CONSTANT XAB$K_RMS32 = 3 DECLARE LONG CONSTANT XAB$K_FCS11 = 4 DECLARE LONG CONSTANT XAB$K_RT11FS = 5 DECLARE LONG CONSTANT XAB$K_NO_FS = 6 DECLARE LONG CONSTANT XAB$K_TOPS20FS = 7 DECLARE LONG CONSTANT XAB$K_TOPS10FS = 8 DECLARE LONG CONSTANT XAB$K_OS8FS = 9 DECLARE LONG CONSTANT XAB$K_RMS32S = 10 DECLARE LONG CONSTANT XAB$K_CPMFS = 11 DECLARE LONG CONSTANT XAB$K_MS_DOSFS = 12 DECLARE LONG CONSTANT XAB$K_ULTRIX32_FS = 13 DECLARE LONG CONSTANT XAB$K_ULTRIX11_FS = 14 DECLARE LONG CONSTANT XAB$M_NET_NOREAD = x'00000001' DECLARE LONG CONSTANT XAB$M_NET_NOWRITE = x'00000002' DECLARE LONG CONSTANT XAB$M_NET_NOEXECUTE = x'00000004' DECLARE LONG CONSTANT XAB$M_NET_NODELETE = x'00000008' DECLARE LONG CONSTANT XAB$M_NET_NOAPPEND = x'00000010' DECLARE LONG CONSTANT XAB$M_NET_NODIRECTORY = x'00000020' DECLARE LONG CONSTANT XAB$M_NET_NOUPDATE = x'00000040' DECLARE LONG CONSTANT XAB$M_NET_NOCHANGE = x'00000080' DECLARE LONG CONSTANT XAB$M_NET_NOEXTEND = x'00000100' DECLARE LONG CONSTANT XAB$S_XABNETEXTPROT = 8 record XABNETEXTPROT group XAB$R_FILL_18_ variant case WORD XAB$W_SYSTEM_ACC case group XAB$R_FILL_19_ WORD NET_NOREAD_bits ! COMMENT ADDED BY SDL - NET_NOREAD_bits contains bits NET_NOREAD through FILL_20_ end group XAB$R_FILL_19_ end variant end group XAB$R_FILL_18_ WORD XAB$W_OWNER_ACC WORD XAB$W_GROUP_ACC WORD XAB$W_WORLD_ACC end record XABNETEXTPROT DECLARE LONG CONSTANT XAB$S_XABNETDAPVER = 5 record XABNETDAPVER BYTE XAB$B_VER_DAP BYTE XAB$B_VER_ECO BYTE XAB$B_VER_CUS BYTE XAB$B_VER_DSV BYTE XAB$B_VER_CSV end record XABNETDAPVER DECLARE LONG CONSTANT XAB$S_XABNETCAPDEF = 7 record XABNETCAPDEF BYTE CAP_FILALL_bits ( 7 ) ! COMMENT ADDED BY SDL - CAP_FILALL_bits contains bits CAP_FILALL through FILL_21_ end record XABNETCAPDEF DECLARE LONG CONSTANT XAB$S_BUFFER_SIZE = 4 DECLARE LONG CONSTANT XAB$S_NETWORK_BLOCK_COUNT = 4 DECLARE LONG CONSTANT XAB$S_REMOTE_SYSTEM = 4 DECLARE LONG CONSTANT XAB$S_REMOTE_FILE_SYSTEM = 4 DECLARE LONG CONSTANT XAB$S_EXTPROT_LOCAL = 8 DECLARE LONG CONSTANT XAB$S_EXTPROT_REMOTE = 8 DECLARE LONG CONSTANT XAB$S_CAPABIL_LOCAL = 8 DECLARE LONG CONSTANT XAB$S_CAPABIL_REMOTE = 8 DECLARE LONG CONSTANT XAB$S_DAPVER_LOCAL = 5 DECLARE LONG CONSTANT XAB$S_DAPVER_REMOTE = 5 DECLARE LONG CONSTANT XAB$S_CACHE_TMO = 4 DECLARE LONG CONSTANT XAB$S_HINT_LENGTH = 16 DECLARE LONG CONSTANT XAB$S_GBC32_LENGTH = 4 DECLARE LONG CONSTANT XAB$S_GBCFLAGS_LENGTH = 4