! !**************************************************************************** !* * !* Copyright (c) 2001 * !* by DIGITAL Equipment Corporation, Maynard, Mass. * !* * !* This software is furnished under a license and may be used and copied * !* only in accordance with the terms of such license and with the * !* inclusion of the above copyright notice. This software or any other * !* copies thereof may not be provided or otherwise made available to any * !* other person. No title to and ownership of the software is hereby * !* transferred. * !* * !* The information in this software is subject to change without notice * !* and should not be construed as a commitment by DIGITAL Equipment * !* Corporation. * !* * !* DIGITAL assumes no responsibility for the use or reliability of its * !* software on equipment which is not supplied by DIGITAL. * !* * !**************************************************************************** !******************************************************************************************************************************** ! Created 15-MAR-2001 22:56:47 by VAX SDL T3.2-8 Source: 25-AUG-2000 09:05:37 $11$DUA933:[BACKUP.SRC]BACKSTRUC.SDL;1 !******************************************************************************************************************************** ! *** 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$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_FLOATING_COMPLEX_DECL) = 0 %THEN RECORD BASIC$H_FLOATING_COMPLEX HFLOAT REAL_PART HFLOAT IMAGINARY_PART END RECORD %LET %BASIC$H_FLOATING_COMPLEX_DECL = 1 %END %IF !*** MODULE $BCKCOMMON *** DECLARE STRING CONSTANT BACKUP$VERSION = "V7.3" ! Version number of BACKUP DECLARE LONG CONSTANT BACKUP$K_OPSYS_VAX = 1024 ! Operating system ID DECLARE LONG CONSTANT BACKUP$K_OPSYS_ALPHA = 2048 ! Operating system ID DECLARE LONG CONSTANT BACKUP$K_BACKUP = 1 ! Subsystem ID DECLARE LONG CONSTANT BACKUP$K_DATABLOCK = 1 ! Application ID normal blocks DECLARE LONG CONSTANT BACKUP$K_XORBLOCK = 2 ! Application ID XOR blocks DECLARE LONG CONSTANT FILESCAN_LOGGING = 1 ! Turn on (1) or off (0) internal DECLARE LONG CONSTANT TRUE = 1 DECLARE LONG CONSTANT FALSE = 0 DECLARE LONG CONSTANT ANSI_LBLSZ = 6 ! ANSI Standard MT label name size DECLARE LONG CONSTANT ANSI_BLKSZ = 80 ! ANSI Standard header size DECLARE LONG CONSTANT COPY_BUFF_COUNT = 2 ! Default buffer count for disk-to-disk DECLARE LONG CONSTANT COPY_BUFF_SIZE = 33040 ! Default buffer size for disk-to-disk DECLARE LONG CONSTANT SMALL_DISK = 4096 ! Largest disk with no bad block data DECLARE LONG CONSTANT LIST_SIZE = 512 ! Size of listing line DECLARE LONG CONSTANT JOUR_SIZE = 512 ! Size of journal line DECLARE LONG CONSTANT MAX_RECORD = 2048 ! Maximum length attribute record DECLARE LONG CONSTANT MAX_ATTRS = 18 ! Maximum number of attributes in list DECLARE LONG CONSTANT STA_IN_CHAN = 131071 ! Pseudo-channel for input DECLARE LONG CONSTANT STA_OUT_CHAN = 196607 ! Pseudo-channel for output DECLARE LONG CONSTANT MAX_DCL_STRING_SIZE = 1024 ! Max DCL command string size DECLARE LONG CONSTANT STD_PAGE_SIZE = 512 ! Standard [VAX] page size (bytes) DECLARE LONG CONSTANT MIN_BUFFER_SPACE = 6144 ! Minimum reasonable buffer size DECLARE LONG CONSTANT NEXT_TRY_BUFF_FACTOR = 2 ! multiply factor for new buffer size DECLARE LONG CONSTANT D_K_SCANLVLS = 8 ! ODS-1 directory levels supported DECLARE LONG CONSTANT MAX_CTRL_STRING_SIZE = 256 ! Max. FAO control string size DECLARE LONG CONSTANT PFL_M_DIR = x'00000001' DECLARE LONG CONSTANT PFL_M_DESELECT = x'00000002' DECLARE LONG CONSTANT PFL_M_OPEN = x'00000004' DECLARE LONG CONSTANT PFL_M_IGNO_INTE = x'00000008' DECLARE LONG CONSTANT PFL_M_ERROR = x'00000010' DECLARE LONG CONSTANT PFL_M_HEADONLY = x'00000020' DECLARE LONG CONSTANT PFL_M_NOPOST = x'00000040' DECLARE LONG CONSTANT PFL_M_SAVE_ALL = x'00000080' DECLARE LONG CONSTANT PFL_M_F64DIR = x'00000100' DECLARE LONG CONSTANT PFL_M_ALIAS = x'00000200' DECLARE LONG CONSTANT PFL_K_LENGTH = 56 ! length of PFL block DECLARE LONG CONSTANT PFL_C_LENGTH = 56 ! length of PFL block DECLARE LONG CONSTANT PFL_S_PFL = 56 record PFL LONG PFL_A_RSA ! Resultant name pointer LONG PFL_A_DIRNAME ! Directory name pointer ! *** Note: Old overlay form must be used in FID ? DID due to SDL bug ! *** that omits the field size symbol in a structured field. group PFL_R_FID_OVERLAY ! File ID overlay. variant case WORD PFL_W_FID(1 to 3) ! File's FID. case group PFL_R_FID_FIELDS WORD PFL_W_FID_NUM ! File ID NUM. WORD PFL_W_FID_SEQ ! File ID SEQ. group PFL_R_FID_RVN_OVERLAY ! File RVN overlay. variant case WORD PFL_W_FID_RVNW ! File ID RVN ? NMX. case group PFL_R_FID_RVN_FIELDS ! File ID RVN. BYTE PFL_B_FID_RVN ! FID RVN. BYTE PFL_B_FID_NMX ! FID NMX. end group PFL_R_FID_RVN_FIELDS end variant end group PFL_R_FID_RVN_OVERLAY end group PFL_R_FID_FIELDS end variant end group PFL_R_FID_OVERLAY group PFL_R_DID_OVERLAY variant case WORD PFL_W_DID(1 to 3) ! Directory ID. case group PFL_R_DID_FIELDS WORD PFL_W_DID_NUM ! File ID of directory. WORD PFL_W_DID_SEQ ! DID sequence number. group PFL_R_DID_RVN_OVERLAY variant case WORD PFL_W_DID_RVNW ! RVN. case group PFL_R_DID_RVN_FIELDS BYTE PFL_B_DID_RVN ! RVN byte. BYTE PFL_B_DID_NMX ! NMX for DID. end group PFL_R_DID_RVN_FIELDS end variant end group PFL_R_DID_RVN_OVERLAY end group PFL_R_DID_FIELDS end variant end group PFL_R_DID_OVERLAY WORD PFL_W_S_RSA ! Resultant name length WORD PFL_W_S_DIRNAME ! Directory name length LONG PFL_L_CHANNEL ! Channel for access to file. LONG PFL_L_FILESIZE ! Size of this file. WORD PFL_W_REVISION ! FI2$W_REVCNT (for access conflict check) WORD PFL_W_S_DATA LONG PFL_L_D_UIC ! Directory UIC. WORD PFL_W_D_FPRO ! Directory file protection. WORD PFL_W_D_VERLIM ! Directory version limit. LONG PFL_L_DIR_STATUS ! Copy of DIR_STATUS at time of scan. group PFL_r_fill_0 variant case LONG PFL_L_FLAGS ! PFL flags. case group PFL_r_fill_1 ! True for directories. ! File removed from selection. ! Set if file is open. ! Set if we are to ignore conflicts. ! Set if there was a read error for the file. ! Set if the file's data isn't to be copied. ! Set if error occurred, do not post-process this file. ! Set if [INCR] saving new/renamed dir's files. ! Set if file is a Files-64 directory ! Set if file is an ALIAS file entry. WORD DIR_bits ! COMMENT ADDED BY SDL - DIR_bits contains bits DIR through fill_2 end group PFL_r_fill_1 end variant end group PFL_r_fill_0 LONG PFL_A_CHKPT_BUF ! Pointer to checkpoint data end record PFL DECLARE LONG CONSTANT DIRSTAT_M_VALID = x'00000001' DECLARE LONG CONSTANT DIRSTAT_M_DIR_SEL = x'00000002' DECLARE LONG CONSTANT DIRSTAT_M_SCANNED = x'00000004' DECLARE LONG CONSTANT DIRSTAT_M_FILE_SEL = x'00000008' DECLARE LONG CONSTANT DIRSTAT_S_PFLDIRSTAT = 1 record PFLDIRSTAT ! DIR_STATUS is valid ! Directory is selected ! Directory was scanned ! Files in directory are selected BYTE VALID_bits ! COMMENT ADDED BY SDL - VALID_bits contains bits VALID through fill_3 end record PFLDIRSTAT DECLARE LONG CONSTANT VVM_M_EOF = x'00000001' DECLARE LONG CONSTANT VVM_M_EOB = x'00000002' DECLARE LONG CONSTANT VVM_M_ERROR = x'00000004' DECLARE LONG CONSTANT VVM_M_COMPLETE = x'00000008' DECLARE LONG CONSTANT VVM_M_ISSUED = x'00000010' DECLARE LONG CONSTANT VVM_M_F64DIR = x'00000020' DECLARE LONG CONSTANT VVM_K_LENGTH = 40 ! length of VVM block DECLARE LONG CONSTANT VVM_C_LENGTH = 40 ! length of VVM block DECLARE LONG CONSTANT VVM_S_VVM = 40 record VVM LONG VVM_A_VBN_FLINK ! Pointer to next VVM, VBN order. LONG VVM_A_LBN_FLINK ! Pointer to next VVM, LBN order. LONG VVM_L_START_LBN ! Starting LBN for read. LONG VVM_L_START_VBN ! Starting VBN for this extent/read. LONG VVM_A_VA ! Destination VA of read. LONG VVM_A_PFL_PTR ! Pointer back to PFL for file data. group VVM_R_IOSB_OVERLAY ! IOSB accessible as address or long. variant case LONG VVM_L_IOSB(1 to 2) case group VVM_R_IOSB_FIELDS LONG VVM_L_IOSB1 LONG VVM_L_IOSB2 end group VVM_R_IOSB_FIELDS end variant end group VVM_R_IOSB_OVERLAY LONG VVM_L_READ_SIZE ! Size of this read. group VVM_r_fill_4 variant case LONG VVM_L_FLAGS ! Flags for the read status. case group VVM_r_fill_5 ! Set if this is the last read for the file. ! Set if this read ends a buffer. ! Set if the read incurred an error. ! Set if the QIO completed. ! Set when the QIO is issued. ! Set if file is a Files-64 directory BYTE EOF_bits ! COMMENT ADDED BY SDL - EOF_bits contains bits EOF through fill_6 end group VVM_r_fill_5 end variant end group VVM_r_fill_4 end record VVM DECLARE LONG CONSTANT CPD_K_LENGTH = 68 ! length of CPD block DECLARE LONG CONSTANT CPD_C_LENGTH = 68 ! length of CPD block DECLARE LONG CONSTANT CPD_S_CPD = 68 record CPD LONG CPD_A_FLINK ! Pointer to next CPD buffer. LONG CPD_A_BLINK ! Pointer to last CPD buffer. LONG CPD_L_INPUT_CHAN ! Current input channel LONG CPD_A_PROC_LIST ! Ptr to INPUT_PROC_LIST LONG CPD_L_DIR_SCANLIMIT(1 to 8) ! Directory queue context LONG CPD_A_INPUT_QUAL ! Pointer to input qualifier list LONG CPD_L_FASTBUF_SIZE ! Fast buffer size WORD CPD_W_COM_FLAGS ! Current common flags WORD CPD_W_INPUT_FLAGS ! Current input file flags BYTE CPD_B_FAST_STRUCLEV ! Structure level for fast backup BYTE CPD_B_FAST_RVN ! Current RVN BYTE CPD_B_SETCOUNT ! Number of volumes in set BYTE CPD_B_LOST_RVN ! Current RVN of lost file processing LONG CPD_L_LOST_FILENUM ! File number of lost file processing end record CPD DECLARE LONG CONSTANT FC_S_AREA = 852 DECLARE LONG CONSTANT S_BCK$FC = 852 record BCK$FC BYTE FC_FAB(1 to 80) BYTE FC_RAB(1 to 68) BYTE FC_NAM(1 to 96) BYTE FC_RLF(1 to 96) BYTE FC_ESA(1 to 256) BYTE FC_RSA(1 to 256) end record BCK$FC ! ! Qualifier Parameter Value Block ! DECLARE LONG CONSTANT QUAL_S_OUTP = 44 ! Output Parameter Block size DECLARE LONG CONSTANT QUAL_S_INPU = 60 ! Input Parameter Block size DECLARE LONG CONSTANT S_QUALPVB = 60 record QUALPVB LONG QUAL_NEXT ! Pointer to next parameter block (common to all) LONG QUAL_PARA_FC ! Parameter file context dsc$descriptor QUAL_EXP_DESC ! Descriptor for expanded string dsc$descriptor QUAL_DEV_DESC ! Descriptor for device portion only dsc$descriptor QUAL_DVI_DESC ! Descriptor for NAM$T_DVI string dsc$descriptor QUAL_LNM_DESC ! Descriptor for volume logical name LONG QUAL_ALLOC_CHAN ! Device allocation channel LONG QUAL_DEVCHAR2 ! Second longword for device char LONG QUAL_USE_COUNT ! Count of input files from this spec LONG QUAL_USE_CHKPT ! Cell to checkpoint QUAL_USE_COUNT ! Input/Output Parameter Flags LONG PAR_FLAGS_bits ! COMMENT ADDED BY SDL - PAR_FLAGS_bits contains bits PAR_FLAGS through PAR_FLAGS end record QUALPVB DECLARE LONG CONSTANT PFLAGS_M_DEV_MOU = x'00000001' DECLARE LONG CONSTANT PFLAGS_s_fill_7 = 4 record fill_7 variant case LONG PFLAGS_L_PFLAGS case group PFLAGS_r_fill_8 ! [STABACKUP] device mounted ! (Used for /LIST of *.* tape savesets.) BYTE DEV_MOU_bits ! COMMENT ADDED BY SDL - DEV_MOU_bits contains bits DEV_MOU through fill_9 end group PFLAGS_r_fill_8 end variant end record fill_7 ! ! Encrypt Key [Parameter] Value Block ! DECLARE LONG CONSTANT QUAL_S_ENCV = 12 ! Encrypt value list item DECLARE LONG CONSTANT S_ENCPVB = 12 record ENCPVB LONG QUAL_ENVA_LINK ! Link word - Encrypt key value dsc$descriptor QUAL_ENVA_DESC ! Value string descriptor - Encrypt key value end record ENCPVB ! ! Exclude Parameter Value Block ! DECLARE LONG CONSTANT QUAL_S_EXCL = 12 ! Exclude value list item size DECLARE LONG CONSTANT S_EXCLPVB = 12 record EXCLPVB LONG QUAL_EXCL_NEXT ! Pointer to next parameter block (common to all) dsc$descriptor QUAL_EXCL_DESC ! /EXCLUDE value end record EXCLPVB ! ! Select Parameter Value Block ! DECLARE LONG CONSTANT QUAL_S_SELE = 12 ! Select value list item size DECLARE LONG CONSTANT S_SELEPVB = 12 record SELEPVB LONG QUAL_SELE_NEXT ! Pointer to next parameter block (common to all) dsc$descriptor QUAL_SELE_DESC ! /SELECT value end record SELEPVB ! ! Label Parameter Value Block ! DECLARE LONG CONSTANT QUAL_S_LABE = 16 ! Label value list item size DECLARE LONG CONSTANT S_LABEPVB = 12 record LABEPVB LONG QUAL_LABE_NEXT ! Pointer to next parameter block (common to all) dsc$descriptor QUAL_LABE_VALUE ! /LABEL value end record LABEPVB ! ! Format of Bad Block Descriptor [Header] returned by routine GET_BADBLOCKS. ! DECLARE LONG CONSTANT BAD_S_HEADER = 8 DECLARE LONG CONSTANT S_BADBLK = 16 record BADBLK LONG BAD_NUMDESC ! Number of descriptors LONG BAD_SERIAL ! Pack serial number BASIC$QUADWORD BAD_DESC ! Origin of descriptors end record BADBLK ! ! Bad Block Descriptor ! DECLARE LONG CONSTANT BAD_S_DESC = 8 DECLARE LONG CONSTANT S_BADBDSC = 8 record BADBDSC LONG BAD_LBN ! LBN LONG BAD_COUNT ! Count end record BADBDSC ! ! MAX Number of FID/DID entries in an input_proc_list block. ! DECLARE LONG CONSTANT REC_MAX_COUNT = 64 ! ! PROCESSED FILE ID LIST ( INPUT_PROC_LIST ) Entry ! DECLARE LONG CONSTANT REC_M_BADVER = x'00000001' DECLARE LONG CONSTANT REC_M_NOBACK = x'00000002' DECLARE LONG CONSTANT REC_M_FOPEN = x'00000004' DECLARE LONG CONSTANT REC_M_ACCESS = x'00000008' DECLARE LONG CONSTANT REC_S_PROC_FILE = 13 ! The length of a FID/DID/FLAGS entry DECLARE LONG CONSTANT S_INPROCBLK = 13 record INPROCBLK group fill_10 variant case BYTE REC_B_FLAGS case group REC_r_fill_11 ! Flag to say verification pass failed ! Flag to say file marked NOBACKUP ! Flag to say file open (write access) ! Flag to say file access conflict BYTE BADVER_bits ! COMMENT ADDED BY SDL - BADVER_bits contains bits BADVER through fill_12 end group REC_r_fill_11 end variant end group fill_10 WORD REC_RECFID(1 to 3) ! File ID WORD REC_RECDID(1 to 3) ! Directory ID end record INPROCBLK ! ! PROCESSED FILE ID LIST ( INPUT_PROC_LIST ) ! DECLARE LONG CONSTANT REC_S_ENTRY = 844 DECLARE LONG CONSTANT S_INPROCLST = 16 record INPROCLST LONG REC_NEXT ! Pointer to next block LONG REC_QUAL ! Value of INPUT_QUAL for this block WORD REC_USED ! Count of used entries in this block WORD REC_VOLUME ! Volume number LONG REC_FID_BASE ! Base of FID/DID entries end record INPROCLST ! ! Processed Volume ID (LABEL) List ! ! Field definitions for structure pointed to by OUTPUT_VID_LIST. ! ! The Volume ID list (VID) maintains the label/name of each volume in ! an output saveset (or tape volume set if you prefer) as it is ! processed. This allows MME routines to lookup a file's volume Id ! based on the volume's number as stored in the FID structures defined ! in the Processed File ID List (i.e. REC_VOLUME). The VID consists of ! a singly-linked list of VID blocks. Each block contains several ! slots of 12 characters, each containing a volume Id string (except ! for the last slot which is used as a header/control entry). ! ! Additional details about the use of the VID list can be found in ! module SAVE.B32. ! ! VID_ENTRY is the normal, 12 character volume (label) Id. The other ! fields define a remapping of VID_ENTRY as the header/control entry. ! DECLARE LONG CONSTANT S_VIDENT = 12 record VIDENT BYTE VID_ENTRY(1 to 12) ! normal VID entry (12 bytes) end record VIDENT DECLARE LONG CONSTANT VID_S_ENTRY = 12 ! size, in bytes, of an entry/slot DECLARE LONG CONSTANT S_VIDHDR = 12 record VIDHDR LONG VID_NEXT ! pointer to next VID block BYTE VID_BLKN ! VID block number (0-255) BYTE VID_MBZ_1(1 to 3) ! reserved...mbz (padding) LONG VID_MBZ_2 ! reserved...mbz (padding) end record VIDHDR DECLARE LONG CONSTANT VID_K_BASIS = 16 ! modulo base DECLARE LONG CONSTANT VID_K_SLOTS = 17 ! number of slots per VID block DECLARE LONG CONSTANT VID_S_BLOCK = 204 ! size, in bytes, of a VID block DECLARE LONG CONSTANT BCB_S_IDLE = 0 ! idle DECLARE LONG CONSTANT BCB_S_READ = 1 ! read operation pending DECLARE LONG CONSTANT BCB_S_WRITE = 2 ! write operation pending DECLARE LONG CONSTANT BCB_S_DATA = 3 ! holding data, no I/O pending DECLARE LONG CONSTANT BCB_S_REREAD = 4 ! read on alternate channel DECLARE LONG CONSTANT BCB_DATA_TYPE = 0 ! Data (normal) type DECLARE LONG CONSTANT BCB_XOR_TYPE = 1 ! XOR type DECLARE LONG CONSTANT BCB_FLAGS_START = 44 ! offset used to init. flags DECLARE LONG CONSTANT BCB_M_WRITE_ISSUED = x'00000001' DECLARE LONG CONSTANT BCB_M_WRITE_REISSUED = x'00000002' DECLARE LONG CONSTANT BCB_M_WRITE_SYNCH = x'00000004' DECLARE LONG CONSTANT BCB_M_EIP_EOV = x'00000008' DECLARE LONG CONSTANT BCB_M_ASSOC_VREAD = x'00000010' DECLARE LONG CONSTANT BCB_M_FINAL_XOR = x'00000020' DECLARE LONG CONSTANT BCB_M_NEW_PASS = x'00000040' DECLARE LONG CONSTANT BCB_FLAGS_K_LENGTH = 4 DECLARE LONG CONSTANT BCB_LENGTH = 64 ! length of buffer control block DECLARE LONG CONSTANT S_BCBBLK = 64 record BCBBLK LONG BCB_FLINK ! queue forward link LONG BCB_BLINK ! queue back link WORD BCB_SIZE ! buffer size BYTE BCB_STATE ! buffer state BYTE BCB_TYPE ! Purpose (XOR, data) LONG BCB_BUFFER ! buffer address LONG BCB_RECORD ! current record pointer LONG BCB_BLOCKNUM ! disk block number group IOSBLKU variant case WORD BCB_IOSB(1 to 4) ! I/O status block (base) case group IOSBLBLK LONG BCB_STATUS ! I/O status longword LONG BCB_STATUS2 ! second I/O status longword end group IOSBLBLK case group IOSBWBLK WORD BCB_IO_STATUS ! I/O status word WORD BCB_IO_BCOUNT ! I/O status byte count LONG BCB_IOSBWBLK_filler end group IOSBWBLK end variant end group IOSBLKU LONG BCB_WRITE_FUNC ! Write function for ! asynch writes LONG BCB_SUCC_ACT ! success action routine LONG BCB_FAIL_ACT ! failure action routine group fill_13 variant case LONG BCB_L_FLAGS ! flags case group BCB_r_fill_14 ! Flag to indicate write was successfully issued ! Error write reissued ! Perform the write synchronously ! Do not reissue from ast level during error processing ! At least one virtual read is associated with this buffer ! This is the final XOR BCB for the volume ! Start of a new file scan pass BYTE WRITE_ISSUED_bits ! COMMENT ADDED BY SDL - WRITE_ISSUED_bits contains bits WRITE_ISSUED through & ! fill_15 end group BCB_r_fill_14 end variant end group fill_13 ! The following constant definition is required because the FLAGS structure ! and its length are not otherwise declared by SDL. ! LONG BCB_FIRST_PFL ! Pointer to first associated PFL LONG BCB_LAST_PFL ! Pointer to last associated PFL LONG BCB_START_VBN ! Starting VBN of first file represented in buffer LONG BCB_NEXT_VBN ! VBN of first file in next buffer end record BCBBLK DECLARE LONG CONSTANT BSR_LENGTH = 136 ! Length of BSR area DECLARE LONG CONSTANT S_BSRBLK = 136 record BSRBLK dsc$descriptor BSR_SSNAME ! Descriptor for SSNAME dsc$descriptor BSR_COMMAND ! Descriptor for COMMAND dsc$descriptor BSR_COMMENT ! Descriptor for COMMENT dsc$descriptor BSR_USERNAME ! Descriptor for USERNAME BASIC$QUADWORD BSR_DATE ! Value of DATE dsc$descriptor BSR_SYSVER ! Descriptor for SYSVER dsc$descriptor BSR_NODENAME ! Descriptor for NODENAME dsc$descriptor BSR_DRIVEID ! Descriptor for DRIVEID dsc$descriptor BSR_BACKVER ! Descriptor for BACKVER dsc$descriptor BSR_VOLSETNAM ! Descriptor for VOLSETNAM BASIC$QUADWORD BSR_BACKSIZE ! Value of BACKSIZE LONG BSR_USERUIC ! Value of USERUIC LONG BSR_SIR ! Value of SIR LONG BSR_BLOCKSIZE ! Value of BLOCKSIZE LONG BSR_BACKFILES ! Value of BACKFILES WORD BSR_OPSYS ! Value of OPSYS WORD BSR_XORSIZE ! Value of XORSIZE WORD BSR_BUFFERS ! Value of BUFFERS WORD BSR_NVOLS ! Value of NVOLS BYTE BSR_CRYPTDATA(1 to 24) ! Value of CRYPTDATA end record BSRBLK DECLARE LONG CONSTANT VSR_LENGTH = 114 ! Length of VSR area DECLARE LONG CONSTANT S_VSRBLK = 114 record VSRBLK dsc$descriptor VSR_VSRVOLNAME ! Descriptor for VOLNAME dsc$descriptor VSR_OWNERNAME ! Descriptor for OWNERNAME dsc$descriptor VSR_FORMAT ! Descriptor for FORMAT BASIC$QUADWORD VSR_VOLDATE ! Value of VOLDATE BASIC$QUADWORD VSR_TOTSIZE ! Value of TOTSIZE LONG VSR_VOLOWNER ! Value of VOLOWNER LONG VSR_VOLSIZE ! Value of VOLSIZE LONG VSR_TOTFILES ! Value of TOTFILES LONG VSR_MAXFILES ! Value of MAXFILES LONG VSR_MAXFILNUM ! Value of MAXFILNUM LONG VSR_SERIALNUM ! Value of SERIALNUM group fill_16 variant case WORD VSR_VOLSTRUCT ! Value of VOLSTRUCT case group fill_17 BYTE VOLSTRUCT_FILL1 ! dummy item to maintain offset BYTE VSR_STRUCLEV ! Structure level part of VOLSTRUCT end group fill_17 end variant end group fill_16 WORD VSR_RVN ! Value of RVN WORD VSR_PROTECT ! Value of PROTECT WORD VSR_FILEPROT ! Value of FILEPROT WORD VSR_RECPROT ! Value of RECPROT WORD VSR_VOLCHAR ! Value of VOLCHAR WORD VSR_EXTEND ! Value of EXTEND WORD VSR_CLUSTER ! Value of CLUSTER WORD VSR_RESFILES ! Value of RESFILES BYTE VSR_WINDOW ! Value of WINDOW BYTE VSR_LRU_LIM ! Value of LRU_LIM LONG VSR_INDEXLBN ! Value of INDEXLBN dsc$descriptor VSR_BOOTBLOCK ! Descriptor for BOOTBLOCK BASIC$QUADWORD VSR_RETAINMIN ! Value of RETAINMIN BASIC$QUADWORD VSR_RETAINMAX ! Value of RETAINMAX WORD VSR_BACKREV ! Value of BACKREV. end record VSRBLK DECLARE LONG CONSTANT PVA_LENGTH = 40 ! Length of PVA area DECLARE LONG CONSTANT S_PVABLK = 40 record PVABLK dsc$descriptor PVA_DEVNAM ! Descriptor for DEVNAM dsc$descriptor PVA_LABEL ! Descriptor for LABEL dsc$descriptor PVA_BADBLOCK ! Descriptor for BADBLOCK LONG PVA_MAXBLOCK ! Value of MAXBLOCK LONG PVA_SERIAL ! Value of SERIAL WORD PVA_CYLINDERS ! Value of CYLINDERS BYTE PVA_SECTORS ! Value of SECTORS BYTE PVA_TRACKS ! Value of TRACKS LONG PVA_DEVTYP ! Value of DEVTYP end record PVABLK DECLARE LONG CONSTANT FAR_M_HEADONLY = x'00000001' DECLARE LONG CONSTANT FAR_LENGTH = 188 ! Length of FAR area DECLARE LONG CONSTANT S_FARBLK = 188 record FARBLK dsc$descriptor FAR_FILENAME ! Descriptor for FILENAME dsc$descriptor FAR_PLACEMENT ! Descriptor for PLACEMENT BYTE FAR_RECATTR(1 to 32) ! Value of RECATTR BASIC$QUADWORD FAR_CREDATE ! Value of CREDATE BASIC$QUADWORD FAR_REVDATE ! Value of REVDATE BASIC$QUADWORD FAR_EXPDATE ! Value of EXPDATE BASIC$QUADWORD FAR_BAKDATE ! Value of BAKDATE group fill_18 variant case WORD FAR_FARFID(1 to 3) ! Value of FID case group fill_19 WORD FAR_FID_NUM WORD FAR_FID_SEQ group fill_20 variant case WORD FAR_FID_RVNW case group fill_21 BYTE FAR_FID_RVN BYTE FAR_FID_NMX end group fill_21 end variant end group fill_20 end group fill_19 end variant end group fill_18 group fill_22 variant case WORD FAR_BACKLINK(1 to 3) ! Value of BACKLINK case group fill_23 WORD FAR_DID_NUM WORD FAR_DID_SEQ WORD FAR_DID_RVNW end group fill_23 end variant end group fill_22 LONG FAR_FILESIZE ! Value of FILESIZE group fill_24 variant case LONG FAR_UIC ! Value of UIC case group fill_25 WORD FAR_UICMEMBER ! Member part of UIC WORD FAR_UICGROUP ! Group part of UIC end group fill_25 end variant end group fill_24 LONG FAR_UCHAR ! Value of UCHAR LONG FAR_BOOTVBN ! Value of BOOTVBN for 1st boot image group fill_26 variant case WORD FAR_STRUCLEV ! Value of STRUCLEV case group fill_27 BYTE FAR_STRUCLEV_FILL1 ! dummy item to maintain offset BYTE FAR_STRUCLEVB ! Structure level part of STRUCLEV end group fill_27 end variant end group fill_26 WORD FAR_FPRO ! Value of FPRO WORD FAR_RPRO ! Value of RPRO WORD FAR_REVISION ! Value of REVISION LONG FAR_DIR_UIC ! Value of DIR_UIC WORD FAR_DIR_FPRO ! Value of DIR_FPRO BYTE FAR_ACLEVEL ! Value of ACLEVEL BYTE FAR_DIR_STATUS ! Value of DIR_STATUS WORD FAR_DIR_VERLIM ! Value of DIR_VERLIM WORD FAR_VERLIMIT ! Value of VERLIMIT dsc$descriptor FAR_ACLSEGMENT ! ACL segment descriptor LONG FAR_HIGHWATER ! Value of HIGHWATER BYTE FAR_JNL_FLAGS ! Value of JNL_FLAGS BYTE FAR_RU_ACTIVE ! Value of RU_ACTIVE group FLAGS_OVERLAY variant case WORD FAR_W_FLAGS case group BIT_FLAGS ! Only the HEADER was saved WORD HEADONLY_bits ! COMMENT ADDED BY SDL - HEADONLY_bits contains bits HEADONLY through FILL_1 end group BIT_FLAGS end variant end group FLAGS_OVERLAY LONG FAR_BOOTVBN2 ! Value of BOOTVBN for 2nd boot image BASIC$QUADWORD FAR_ACCDATE ! ODS5, Access date BASIC$QUADWORD FAR_ATTDATE ! ODS5, Attribute change date BYTE FAR_LENGTH_HINT(1 to 16) ! ODS5, File length hint BYTE FAR_EX_RECATTR(1 to 8) ! ODS5, Extended RMS record attributes end record FARBLK DECLARE LONG CONSTANT ATTBUF_LENGTH = 188 DECLARE LONG CONSTANT ACB_S_ENTRY = 16 ! Size of entry DECLARE LONG CONSTANT S_STABCKACB = 16 record STABCKACB LONG ACB_FLINK ! Forward link LONG ACB_BLINK ! Backward link LONG ACB_COUNT ! Block count LONG ACB_LBN ! Logical block number end record STABCKACB DECLARE LONG CONSTANT WCB_M_BLACKHOLE = x'00000001' DECLARE LONG CONSTANT WCB_S_HEADER = 20 ! Size of header DECLARE LONG CONSTANT S_STABWCBHD = 20 record STABWCBHD LONG WCB_LINK ! Link to next block LONG WCB_VBN ! In first block only, starting VBN of window BYTE WCB_SIZE ! Number of entries in window block BYTE WCB_FREE ! Number of free entries in window BYTE WCB_RVN ! RVN group fill_28 variant case BYTE WCB_B_FLAGS ! Flag byte case group WCB_r_fill_29 ! Flush write I/Os into this window BYTE BLACKHOLE_bits ! COMMENT ADDED BY SDL - BLACKHOLE_bits contains bits BLACKHOLE through fill_30 end group WCB_r_fill_29 end variant end group fill_28 LONG WCB_CUR_HWM ! Current highwater mark for open file LONG WCB_SET_HWM ! Highwater mark written for open file end record STABWCBHD DECLARE LONG CONSTANT WCB_S_ENTRY = 8 ! Size of each entry DECLARE LONG CONSTANT S_STABWCBENT = 8 record STABWCBENT LONG WCB_COUNT ! Count of blocks LONG WCB_LBN ! LBN of blocks end record STABWCBENT DECLARE LONG CONSTANT VCB_M_OUTPUT = x'00000001' DECLARE LONG CONSTANT VCB_M_ODS_2 = x'00000002' DECLARE LONG CONSTANT VCB_M_INIT_DONE = x'00000004' DECLARE LONG CONSTANT VCB_M_SAVESET = x'00000008' DECLARE LONG CONSTANT VCB_M_NOTVOLSET = x'00000010' DECLARE LONG CONSTANT VCB_M_ODS_5 = x'00000020' DECLARE LONG CONSTANT VCB_S_ENTRY = 68 ! Size of entry DECLARE LONG CONSTANT S_STABCKVCB = 68 record STABCKVCB LONG VCB_INDEXF ! Pointer to index file window WORD VCB_CLUSTER ! Cluster factor BYTE VCB_RVN ! Relative volume number group fill_31 variant case BYTE VCB_B_FLAGS case group VCB_r_fill_32 ! True if output volume ! True if ODS-2 volume ! True if initialization has been done ! True if saveset volume ! Sequential disk volume is not in a set ! True if ODS-5 volume BYTE OUTPUT_bits ! COMMENT ADDED BY SDL - OUTPUT_bits contains bits OUTPUT through fill_33 end group VCB_r_fill_32 end variant end group fill_31 WORD VCB_CHAN ! Channel number assigned to this RVN WORD VCB_IOCOUNT ! Count of pending read/write QIOs LONG VCB_BITMAP_LBN ! LBN of storage bitmap LONG VCB_IMAP ! Pointer to index file bitmap image LONG VCB_IMAP_LBN ! LBN of index file bitmap WORD VCB_INIT_HDRS ! Bit mask of initialized headers WORD VCB_HDR_OFFSET ! VBN offset to file headers LONG VCB_MAXFILIDX ! Number of bits in index file bitmap dsc$descriptor VCB_DEVICE ! Descriptor for device name LONG VCB_ACB_FLINK ! Queue header for ACB queue LONG VCB_ACB_BLINK ! LONG VCB_FAB ! Pointer to FAB with filespec WORD VCB_BITMAP_SIZE ! Storage bitmap size in blocks WORD VCB_FILLER1_VCB ! dummy item to maintain offsets BYTE VCB_VCBVOLNAME(1 to 12) ! Volume label end record STABCKVCB DECLARE LONG CONSTANT MTL_M_SEQ_DISK = x'00000001' DECLARE LONG CONSTANT MTL_M_NEW_ACL = x'00000002' DECLARE LONG CONSTANT MTL_M_NOHWM = x'00000004' DECLARE LONG CONSTANT MTL_S_ENTRY = 52 ! Size of entry, less VCB pointers ! MTL_VCB(n)= 52+4*(n),0,32,0 %; ? Pointer to VCB for RVN n DECLARE LONG CONSTANT S_STABCKMTL = 52 record STABCKMTL LONG MTL_CHAN_1 ! Pointer to VCB to which each of 2 LONG MTL_CHAN_2 ! channels is assigned LONG MTL_WINDOW ! Pointer to WCB for accessed file LONG MTL_HEADER ! Pointer to header for accessed file LONG MTL_ACLFL ! ACL queue LONG MTL_ACLBL ! head group fill_34 variant case WORD MTL_MTLFID(1 to 3) ! File ID of accessed file case group fill_35 WORD MTL_FID_NUM ! WORD MTL_FID_SEQ ! group fill_36 variant case WORD MTL_FID_RVNW ! case group fill_37 BYTE MTL_FID_RVN ! BYTE MTL_FID_NMX ! end group fill_37 end variant end group fill_36 end group fill_35 end variant end group fill_34 BYTE MTL_STRUCLEV ! Structure level of volume set BYTE MTL_SETCOUNT ! Count of volumes in volume set LONG MTL_FILESIZE ! Size of accessed file BYTE MTL_STRUCNAME(1 to 12) ! Volume set name BYTE MTL_RVN_BASE ! RVN mounted on first VCB group fill_38 variant case BYTE MTL_B_FLAGS(1 to 3) case group MTL_r_fill_39 ! Set if sequential disk volume set ! Set if ACL must be written ! Highwater marking disabled for volume set BYTE SEQ_DISK_bits ! COMMENT ADDED BY SDL - SEQ_DISK_bits contains bits SEQ_DISK through fill_40 end group MTL_r_fill_39 end variant end group fill_38 end record STABCKMTL DECLARE LONG CONSTANT D_M_DIR_SCAN = x'00000001' DECLARE LONG CONSTANT D_M_DIR_MATCHES = x'00000002' DECLARE LONG CONSTANT D_M_WILD_TERM = x'00000004' DECLARE LONG CONSTANT D_M_NON_TERM = x'00000008' DECLARE LONG CONSTANT DQE_S_ENTRY = 84 ! Size of directory queue entry in bytes DECLARE LONG CONSTANT S_DIRQUEUE = 84 record DIRQUEUE LONG D_DQE_FLINK ! Pointer to next directory queue entry LONG D_DQE_BLINK ! Pointer to prior directory queue entry LONG D_REC ! Pointer to current record LONG D_VER ! Pointer to current version if ODS-2 LONG D_BUF_LEN ! Length of buffer in bytes LONG D_BUF_ADDR ! Pointer to buffer LONG D_BUF_LIM ! Limit of significant part of buffer LONG D_VBN ! Next VBN to be read LONG D_DIR_LEN ! Length of directory in blocks WORD D_DIRFID(1 to 3) ! File ID of directory WORD D_SAV_LEN ! Saved length of directory string group fill_41 variant case LONG D_L_FLAGS ! Directory entry flags case group D_r_fill_42 ! True if directory file to be scanned ! True if current directory matches ! True if terminator contains wildcard ! True if terminator is "*" BYTE DIR_SCAN_bits ! COMMENT ADDED BY SDL - DIR_SCAN_bits contains bits DIR_SCAN through fill_43 end group D_r_fill_42 end variant end group fill_41 dsc$descriptor D_TERM_DESC ! Termination string descriptor dsc$descriptor D_NAME_DESC ! Current filename string descriptor WORD D_TERM_VER ! Termination version number WORD D_FPRO ! Directory file protection LONG D_UIC ! Directory file owner WORD D_VERLIM ! Directory default version limit WORD D_VER_COUNT ! File version counter (0, -1, ...) LONG D_F64DIRBUF ! Pointer to Files-64 directory buffer LONG D_F64DIRBUFLEN ! Length in bytes of F64DIRBUF end record DIRQUEUE DECLARE LONG CONSTANT DQF_S_ENTRY = 24 ! Size of entry in bytes DECLARE LONG CONSTANT S_DSKQUOTA = 24 record DSKQUOTA LONG DQF_LLINK ! Pointer to entry with lesser UIC LONG DQF_RLINK ! Pointer to entry with greater UIC LONG DQF_UIC ! UIC LONG DQF_USAGE ! Usage in blocks LONG DQF_PERMQUOTA ! Permanent disk quota LONG DQF_OVERDRAFT ! Overdraft limit end record DSKQUOTA DECLARE LONG CONSTANT PLC_S_HDR = 10 ! Length of placement block header DECLARE LONG CONSTANT S_PLCBLK = 14 record PLCBLK LONG PLC_FLINK ! Forward link LONG PLC_BLINK ! Backward link BYTE PLC_TYPE ! Type code BYTE PLC_SIZE ! Size of block LONG PLC_DATA_START ! Data portion end record PLCBLK DECLARE LONG CONSTANT VBN_S_ENTRY = 18 ! Length of VBN data block DECLARE LONG CONSTANT S_VBNBLK = 18 record VBNBLK LONG VBN_FLINK ! Forward link LONG VBN_BLINK ! Backward link BYTE VBN_TYPE ! Type code BYTE VBN_SIZE ! Size of block LONG VBN_FIRST ! First VBN in range LONG VBN_LAST ! Last VBN in range end record VBNBLK ! Max. label string size (disk/tape) DECLARE LONG CONSTANT VOL_LABEL_STRING_MAX_SIZE = 12 DECLARE LONG CONSTANT VOL_LABEL_MAX_LIST = 20 ! Max. (initial) number of labels ! (20*12 bytes) Blockvector size ! (Initial dynamic size) ! DECLARE LONG CONSTANT VOL_LABEL_LIST_SIZE = 240 DECLARE LONG CONSTANT VOLLBL_BLOCK_SIZE = 12 ! Label Block Size DECLARE LONG CONSTANT S_VOLLBLBLK = 1188 record VOLLBLBLK group LblVector(1 to 99) STRING VOL_LABEL_STRING = 12 ! Label string end group LblVector end record VOLLBLBLK DECLARE LONG CONSTANT TAPEQ_M_EXPI = x'00000001' DECLARE LONG CONSTANT TAPEQ_M_LABE = x'00000002' DECLARE LONG CONSTANT TAPEQ_M_PROT = x'00000004' DECLARE LONG CONSTANT TAPEQ_M_WREN = x'00000008' DECLARE LONG CONSTANT TAPEQ_M_MOUN = x'00000010' DECLARE LONG CONSTANT TAPEQ_M_WRIT = x'00000020' DECLARE LONG CONSTANT TAPEQ_M_NOVR = x'00000040' DECLARE LONG CONSTANT TAPEQ_M_VOOO = x'00000080' DECLARE LONG CONSTANT TAPEQ_M_RVL = x'00000100' DECLARE LONG CONSTANT TAPEQ_M_NOUSE = x'00000200' DECLARE LONG CONSTANT TAPEQ_s_fill_44 = 4 record fill_44 variant case LONG TAPEQ_L_TAPERRQ case group TAPEQ_r_fill_45 ! Has tape expiration date been met ! Is the tape label correct ! Is tape protected from access ! Should tape be write enabled ! Should we issue tape mount request ! Do we want to write onto the tape ! We want to prevent overwrite of tape ! Volume was found to be Out Of Order ! Ask for unspecified volume label ! Don't use the loaded tape label WORD EXPI_bits ! COMMENT ADDED BY SDL - EXPI_bits contains bits EXPI through fill_46 end group TAPEQ_r_fill_45 end variant end record fill_44 DECLARE LONG CONSTANT CLEAR_ASTLM_EFN = 5 ! Wait for $SETIMR DECLARE LONG CONSTANT OUTSTANDING_WRITE_EFN = 6 ! For non-TMSCP support DECLARE LONG CONSTANT V_READ_EFN = 20 ! Event flag for vvm reads DECLARE LONG CONSTANT BUFFER_FREED_EFN = 21 ! Event flag set when a buffer is freed DECLARE LONG CONSTANT MISC_VM_BLOCK_HDR_SIZE = 16 ! VM Block Header Size DECLARE LONG CONSTANT S_MISCVMBLK = 20 record MISCVMBLK LONG MISC_VM_FLINK ! Misc. VM queue forward link LONG MISC_VM_BLINK ! Misc. VM queue backward link LONG MISC_VM_ADDR ! start of block (includes QUAD alignment space) LONG MISC_VM_SIZE ! Misc. VM block size (bytes) LONG MISC_VM_USE_VM ! Start of Misc. VM usable data end record MISCVMBLK DECLARE LONG CONSTANT S_EVNTCALBCK = 176 record EVNTCALBCK LONG Event_Callback_addr(1 to 44) ! (each) Event Type Callback end record EVNTCALBCK DECLARE LONG CONSTANT QUAL_S_AREA = 220 ! Length of the qualifiers block DECLARE LONG CONSTANT COM_FLAGS_START = 666 ! defined for COM_FLAGS init. DECLARE LONG CONSTANT COM_M_EOV = x'00000001' DECLARE LONG CONSTANT COM_M_STANDALONE = x'00000002' DECLARE LONG CONSTANT COM_M_FILESEEN = x'00000004' DECLARE LONG CONSTANT COM_M_VERIFYING = x'00000008' DECLARE LONG CONSTANT COM_M_FAIL_RSTRT = x'00000010' DECLARE LONG CONSTANT COM_M_CONTINUE = x'00000020' DECLARE LONG CONSTANT COM_M_DSBL_CHKPT = x'00000040' DECLARE LONG CONSTANT COM_M_DSBL_RSTRT = x'00000080' DECLARE LONG CONSTANT COM_M_INTERACT = x'00000100' DECLARE LONG CONSTANT COM_M_TAPE_CACHE = x'00000200' DECLARE LONG CONSTANT COM_M_SEEN_FILE_OR_VBN = x'00000400' DECLARE LONG CONSTANT COM_M_SAV_SAV = x'00000800' DECLARE LONG CONSTANT COM_M_ERROR_IN_PROG = x'00001000' DECLARE LONG CONSTANT COM_M_MME_EXISTS = x'00002000' DECLARE LONG CONSTANT COM_M_LABEL_OVERWRITE = x'00004000' DECLARE LONG CONSTANT COM_M_SS_EOV = x'00008000' DECLARE LONG CONSTANT COM_FLAGS_K_LENGTH = 2 ! defined for COM_FLAGS init. DECLARE LONG CONSTANT COM_M_CVT_ODS5_ODS2 = x'00000001' DECLARE LONG CONSTANT COM_M_SNAPDISK = x'00000002' DECLARE LONG CONSTANT COM_M_DO_MME_END = x'00000004' DECLARE LONG CONSTANT INPUT_BEG = 860 ! Beginning of input context DECLARE LONG CONSTANT INPUT_FLAGS_START = 864 ! defined for COM_FLAGS init. DECLARE LONG CONSTANT INPUT_M_OPEN = x'00000001' DECLARE LONG CONSTANT INPUT_M_EOV_IN_PROG = x'00000002' DECLARE LONG CONSTANT INPUT_M_EOV_SAVING = x'00000004' DECLARE LONG CONSTANT INPUT_M_ON_RVN = x'00000008' DECLARE LONG CONSTANT INPUT_M_IGNO_INTE = x'00000010' DECLARE LONG CONSTANT INPUT_M_SAVE_OK = x'00000020' DECLARE LONG CONSTANT INPUT_M_WILDSAVE = x'00000040' DECLARE LONG CONSTANT INPUT_M_REWOUND = x'00000080' DECLARE LONG CONSTANT INPUT_M_SSFOUND = x'00000100' DECLARE LONG CONSTANT INPUT_M_ALIAS = x'00000200' DECLARE LONG CONSTANT INPUT_FLAGS_K_LENGTH = 4 ! defined for COM_FLAGS init. DECLARE LONG CONSTANT INPUT_HDR_BEG = 912 ! Beginning of header data DECLARE LONG CONSTANT INPUTCTX_HDR_SIZE = 116 DECLARE LONG CONSTANT INPUTCTX_SIZE = 168 DECLARE LONG CONSTANT OUTPUT_BEG = 1052 ! Beginning of output context DECLARE LONG CONSTANT OUTPUT_M_OPEN = x'00000001' DECLARE LONG CONSTANT OUTPUT_M_FIRST = x'00000002' DECLARE LONG CONSTANT OUTPUT_M_LAST = x'00000004' DECLARE LONG CONSTANT OUTPUT_M_INCR_DIR = x'00000008' DECLARE LONG CONSTANT OUTPUT_M_IMPLICIT = x'00000010' DECLARE LONG CONSTANT OUTPUT_M_ACL_ERROR = x'00000020' DECLARE LONG CONSTANT OUTPUT_M_ACL_FIRST_TIME = x'00000040' DECLARE LONG CONSTANT OUTPUT_M_DIR_OPEN = x'00000080' DECLARE LONG CONSTANT OUTPUT_M_NONSEQ_IN = x'00000100' DECLARE LONG CONSTANT OUTPUT_M_SKIP_ALIAS = x'00000200' DECLARE LONG CONSTANT OUTPUT_M_ALIAS_OPEN = x'00000400' DECLARE LONG CONSTANT OUTPUTCTX_SIZE = 232 ! End of output context DECLARE LONG CONSTANT FASTCTX_VOL_BEG = 1328 ! Beginning of per-volume information DECLARE LONG CONSTANT FASTCTX_VOL_SIZE = 20 ! End of per-volume information DECLARE LONG CONSTANT MAP_M_JOURNAL_ENTRY = x'00000001' DECLARE LONG CONSTANT MAP_M_LOST_FILES = x'00000002' DECLARE LONG CONSTANT RESTART_M_RESTARTING = x'00000001' DECLARE LONG CONSTANT RESTART_M_ON_RVN = x'00000002' DECLARE LONG CONSTANT RESTART_M_CLEAR_AST = x'00000004' DECLARE LONG CONSTANT DIR_BEG = 1464 ! Beginning of context DECLARE LONG CONSTANT DIR_M_IMAGE_SCAN = x'00000001' DECLARE LONG CONSTANT DIR_M_SCAN_FAILED = x'00000002' DECLARE LONG CONSTANT DIR_M_HARD_STOP = x'00000004' DECLARE LONG CONSTANT DIR_M_SCANNED_DIRS = x'00000008' DECLARE LONG CONSTANT DIR_M_INITIAL = x'00000010' DECLARE LONG CONSTANT DIR_M_ROOT_MFD = x'00000020' DECLARE LONG CONSTANT D_STAT_M_VALID = x'00000001' DECLARE LONG CONSTANT D_STAT_M_DIR_SEL = x'00000002' DECLARE LONG CONSTANT D_STAT_M_SCANNED = x'00000004' DECLARE LONG CONSTANT D_STAT_M_FILE_SEL = x'00000008' DECLARE LONG CONSTANT DIRCTX_SIZE = 104 ! End of context DECLARE LONG CONSTANT INCR_M_SKIP_DIR = x'00000001' DECLARE LONG CONSTANT INCR_M_SAVE_ALL_DIR = x'00000002' DECLARE LONG CONSTANT INCR_M_DISABLE_SAVE_ALL = x'00000004' DECLARE LONG CONSTANT CHK_FLAGS_START = 2488 ! define an offset for clearing the following structure DECLARE LONG CONSTANT CHK_FLAGS_M_F11 = x'00010000' DECLARE LONG CONSTANT CHK_FLAGS_M_SAV = x'00020000' DECLARE LONG CONSTANT CHK_FLAGS_M_SAVE_SET = x'00040000' DECLARE LONG CONSTANT CHK_FLAGS_M_SRCH_LIST = x'00080000' DECLARE LONG CONSTANT CHK_FLAGS_M_SMFS = x'00100000' DECLARE LONG CONSTANT CHK_FLAGS_M_DRVCLS_MISUSED = x'01000000' DECLARE LONG CONSTANT CHK_FLAGS_K_LENGTH = 4 ! define a length for clearing the above structure DECLARE LONG CONSTANT BCK$$_S_COMMON_AREA = 2532 ! Size of the Common Area DECLARE LONG CONSTANT S_BCK_COMMON_DATA = 2532 record BCK_COMMON_DATA ! OBSOLETE (BASE POINTER NO LONGER NEEDED). ! ! ? Marker for base of area. ! ! GLOBAL_BASE address dimension *; ! LONG FREE_LIST(1 to 2) ! Free queue header LONG INPUT_WAIT(1 to 2) ! Input pending queue header LONG REREAD_WAIT(1 to 2) ! Re-read pending queue header LONG OUTPUT_WAIT(1 to 2) ! Output ready for issue queue header LONG OUTPUT_ISSUED(1 to 2) ! Output issued queue header LONG XOR_LIST(1 to 2) ! Q header of buffers for XOR. LONG ASYNCH_WORK(1 to 2) ! Asynch work queue header LONG MISC_VM_LIST(1 to 2) ! Q header of misc. VM (must be free'd) LONG JPI_PID ! JPI$_PID LONG JPI_UIC ! JPI$_UIC BASIC$QUADWORD JPI_DATE ! $GETTIM dsc$descriptor JPI_NODE_DESC ! Translation of SYS$NODE BASIC$QUADWORD JPI_CURPRIV ! Current process privileges BYTE JPI_USERNAME(1 to 12) ! JPI$_USERNAME LONG JPI_ASTLM ! AST limit from GETJPI. LONG JPI_BIOLM ! Buffered IO limit. LONG JPI_FILCNT ! Open file limit. LONG JPI_WSQUOTA ! Working set quota. LONG JPI_WSSIZE ! Current working set size. LONG ADJ_WSSIZE ! Adjusted working set size (after $ADJWSL) LONG SYI_VERSION ! SYI$_VERSION LONG SYI_SID ! SYI$_SID LONG SYI_CHANNELCNT ! SYI$_CHANNELCNT LONG SYI_PAGE_SIZE ! SYI$_PAGE_SIZE LONG CTRL_T_CHAN ! Channel to trap ^T. LONG SACT_PF ! Page faults. LONG SACT_IO ! Direct IO and total IO. LONG SACT_BIO ! Buffered IO. LONG SACT_PPGCNT ! Pages in working set. LONG SACT_GPGCNT ! Global pages in working set. LONG SACT_CPU ! CPU time (mSec). LONG RWSV_HOLD_LIST(1 to 2) ! Queue header for error rewrites or held I/Os for volume switches LONG RWSV_ERRORS_LIST(1 to 2) ! Queue header for output error rewrites LONG RWSV_CRC16(1 to 16) ! CRC-16 polynomial table LONG RWSV_AUTODIN(1 to 16) ! AUTODIN-II polynomial table BYTE RWSV_FILESET_ID(1 to 8) ! File set identifier BYTE RWSV_VOLUME_ID(1 to 12) ! Volume identifier WORD RWSV_VOL_NUMBER ! Save set volume number WORD RWSV_SEG_NUMBER ! File section number LONG RWSV_FILE_NUMBER ! File sequence number LONG RWSV_SAVE_QUAL ! Pointer to save set qualifiers block LONG RWSV_SAVE_FAB ! Pointer to saveset File Context (FC) LONG RWSV_CHAN ! Channel assigned to save set medium LONG RWSV_XOR_BCB ! Pointer to BCB for XOR block LONG RWSV_IN_SEQ ! Input block sequence number LONG RWSV_IN_SEQ_0 ! RWSV_IN_SEQ at start of reel LONG RWSV_IN_XOR_SEQ ! Sequence number of last XOR block BYTE RWSV_IN_XOR_RFA(1 to 6) ! RFA of last XOR block BYTE RWSV_LOOKAHEAD ! Buffer count from summary record BYTE RWSV_XORSIZE ! XOR group size from summary record LONG RWSV_IN_GROUP_SIZE ! XOR group size of save set WORD RWSV_IN_ERRORS ! Count of input errors WORD RWSV_IN_XORUSE ! Count of XOR recoveries performed LONG RWSV_IN_ORGERR(1 to 2) ! Original STS/STV of a train of loses LONG RWSV_IN_VBN ! Current VBN in save set file LONG RWSV_IN_VBN_0 ! Saved input VBN LONG RWSV_ALLOC ! Number of blocks available in save set file LONG RWSV_EOF ! End of file VBN if save set file LONG RWSV_OUT_SEQ ! Output block sequence number LONG RWSV_OUT_VBN ! Output VBN LONG RWSV_OUT_BLOCK_COUNT ! Count of blocks on output tape WORD RWSV_OUT_ERRORS ! Count of output errors WORD RWSV_SEQ_ERRORS ! Count of consecutive input errors BYTE RWSV_OUT_GROUP_COUNT ! Count of blocks in output XOR group WORD RWSV_HOLD_COUNT ! Count of blocks on rwsv_hold_list BYTE rwsv_end_filler ! quadword align the start of next block ! ! Qualifier block structure (database) ! group qual_block LONG QUAL_A_INPU_LIST ! Input parameters LONG QUAL_A_OUTP_LIST ! Output parameters ! /ALIAS ! /ANALYZE ! /ASSIST for mounts ! /BACKUP ! /BEFORE ! /BEFORE=BACKUP ! /BLOCK_SIZE ! /BUFFER_COUNT ! /COMMENT ! /COMPARE ! /CONFIRM ! /CRC ! /CREATED ! API invoked from DCL main ! /DELETE ! /DENSITY ! /DISPOSITION=KEEP (MME) ! /DISPOSITION=RELEASE (MME) ! /EXACT_ORDER ! /EXCLUDE ! /EXPIRED ! /FAST ! Standalone file merge ! /FULL ! /GROUP_SIZE ! Drive class processed/valid (input) ! Input is Files-11 or physical ! /IGNORE=ACCESSIBILITY ! /IGNORE=INTERLOCK ! /IGNORE=LABEL_PROCESSING. ! /IGNORE=NOBACKUP ! /IGNORE=STRUCTURE (allow ODS5 conversions) ! /IMAGE ! /INCREMENTAL ! /INITIALIZE ! /INTERCHANGE ! Input is save set ! /CARTRIDGE on input (MME) ! MEDIA_NAME specified on input ! NAME specified on input ! SIDE specified on input ! /DRIVE_CLASS on input (MME) ! /OWNER_UIC on input (MME) ! Wildcard group ! Wildcard member ! /SAVE_SET on input ! SMFS Device on Input ! /JOURNAL ! /LABEL ! /LIST ! /LOG ! /MEDIA_FORMAT=COMPACTION (MME) ! /MEDIA_FORMAT (MME) ! /MODIFIED ! /NEW_VERSION ! Drive class processed/valid (output) ! Output is Files-11 or physical ! Output is save set ! /OVERLAY ! /CARTRIDGE on output (MME) ! MEDIA_NAME specified on output ! NAME specified on output ! SIDE specified on output ! /DRIVE_CLASS on output (MME) ! /OWNER_UIC on output ! =DEFAULT ! =ORIGINAL ! =PARENT ! =[g,m] ! /SAVE_SET on output ! SMFS Device on Output ! /PHYSICAL ! /PROTECTION on output ! /RECORD ! /RELEASE_TAPE ! /REPLACE ! /REWIND ! /SCRATCH specified (MME) ! ASSIGNMENT_UNIT=BASE_CARTRIDGE ! =COMPOUND_CARTRIDGE ! =PREASSIGNED_SIDE ! =SIDE ! COLLECTION name specified ! LOCATION name specified ! MEDIA_NAME specified ! /SELECT ! /SINCE ! /SINCE=BACKUP ! /SNAPSHOT (SnapDisk) ! /STORAGE_LIBRARY ! /ENCRYPT save set ! Save set is a disk file ! Expiration date present ! /TRUNCATE ! /UNSHELVE (File Shelving support) ! /VERIFY ! /VOLUME ! /RELEASE_TAPE=NOUNLOAD ! longword alignment for following fields BYTE ALIAS_bits(16) ! COMMENT ADDED BY SDL - ALIAS_bits contains bits ALIAS through qualflags_filler LONG QUAL_l_qualblock_filler1 ! quadword-alignment for BEFO_VALUE ! (the following date-time field) BASIC$QUADWORD QUAL_Q_BEFO_VALUE ! /BEFORE quadword time value dsc$descriptor QUAL_R_COMM_DESC ! /COMMENT descriptor BASIC$QUADWORD QUAL_Q_SINC_VALUE ! /SINCE quadword time value dsc$descriptor QUAL_R_CMD_DESC ! Command line descriptor LONG QUAL_A_EXCL_LIST ! /EXCLUDE list head LONG QUAL_A_JOUR_FC ! /JOURNAL file context LONG QUAL_A_LIST_FC ! /LIST file context group QUAL_R_I_OWNER_UIC variant case LONG QUAL_I_OWN_VALU ! /OWNER_UIC value on input case group QUAL_R_I_OWNUIC_FLDS WORD QUAL_I_OWN_MEM ! Member portion WORD QUAL_I_OWN_GRP ! Group portion end group QUAL_R_I_OWNUIC_FLDS end variant end group QUAL_R_I_OWNER_UIC group QUAL_R_O_OWNER_UIC variant case LONG QUAL_O_OWN_VALU ! /OWNER_UIC value on output case group QUAL_R_O_OWNUIC_FLDS WORD QUAL_O_OWN_MEM ! Member portion WORD QUAL_O_OWN_GRP ! Group portion end group QUAL_R_O_OWNUIC_FLDS end variant end group QUAL_R_O_OWNER_UIC LONG QUAL_A_SELE_LIST ! /SELECT list head WORD QUAL_W_BLOC_VALUE ! /BLOCK_SIZE value WORD QUAL_w_fill_bloc_val2 ! dummy item to maintain offsets BYTE QUAL_B_DENS_VALUE ! /DENSITY value BYTE QUAL_B_GROU_VALUE ! /GROUP_SIZE value BYTE QUAL_B_VOLU_VALUE ! /VOLUME value BYTE QUAL_B_OPERATION_TYPE ! Current BACKUP operation type LONG QUAL_A_LABEL_LIST ! /LABEL vector pointer - was list head BYTE QUAL_B_LABEL_LIST_SIZE ! number of labels in the label vector BYTE QUAL_B_LABEL_LIST_MAX_SIZE ! max. items the label vector holds BYTE QUAL_b_fill_label_val2(1 to 2) ! filler, longword alignment WORD QUAL_W_PROT_VALUE ! /PROTECTION value WORD QUAL_w_fill_prot_val2 ! dummy item to maintain offsets LONG QUAL_A_CRYP_VLIST ! Pointer to list of key values dsc$descriptor QUAL_R_CRYP_USERKEY ! Descriptor for user specified key dsc$descriptor QUAL_R_CRYP_USERALG ! Descriptor for user specified algorithn BASIC$QUADWORD QUAL_Q_TAPE_VALUE ! /TAPE_EXPIRATION value dsc$descriptor QUAL_R_COLL_NAME ! /SCRATCH=COLLECTION descriptor dsc$descriptor QUAL_R_MEDI_NAME ! /SCRATCH=MEDIA_NAME descriptor dsc$descriptor QUAL_R_LOCA_NAME ! /SCRATCH=LOCATION descriptor dsc$descriptor QUAL_R_ICART_NAME ! /CARTRIDGE=NAME descriptor (input) dsc$descriptor QUAL_R_ICART_MEDI ! /CARTRIDGE=MEDIA_NAME descriptor (input) dsc$descriptor QUAL_R_OCART_NAME ! /CARTRIDGE=NAME descriptor (output) dsc$descriptor QUAL_R_OCART_MEDI ! /CARTRIDGE=MEDIA_NAME descriptor (output) dsc$descriptor QUAL_R_IDRVCLS_NM ! /DRIVE_CLASS descriptor (input) dsc$descriptor QUAL_R_ODRVCLS_NM ! /DRIVE_CLASS descriptor (output) LONG QUAL_L_ICART_VALU ! /CARTRIDGE=SIDE value (input) LONG QUAL_L_OCART_VALU ! /CARTRIDGE=SIDE value (output) LONG QUAL_A_CALLBACK_ADR ! routine for handling messages, errors, etc. LONG QUAL_L_CTX_HANDLE ! BACKUP operation instance identifier end group qual_block ! Qualifier database dsc$descriptor COM_SSNAME ! Descriptor for save set name WORD COM_VALID_TYPES ! BITVECTOR[16], Bit mask of valid input record types group FLAGS ! Common flags ! Output save medium is at end ! This is the standalone version ! At least one file processed ! Verify pass in progress ! Reel restart failed to find file ! Continue despite high error rate ! Checkpoint can not be requested ! since operation is not restartable ! Checkpoint was requested while ! DSBL_CHKPT was set ! SYS$COMMAND is a terminal ! Caching tape drive ! Flag to say that we have built a file-header. ! Save-set to save-set copy requested ! Note that error recovery is in progress ! An MME subsystem is defined/running ! First tape_volume label overwrite needed. ! Started Saveset in EOT/EOV region. WORD EOV_bits ! COMMENT ADDED BY SDL - EOV_bits contains bits EOV through SS_EOV end group FLAGS WORD COM_BUFF_COUNT ! Count of buffers in pool WORD COM_TOTAL_BUFF ! Count of buffers allowed. WORD COM_SIMULT_BUFF ! Number of buffers in read pass. BYTE COM_I_SETCOUNT ! Input volume set count BYTE COM_O_SETCOUNT ! Output volume set count BYTE COM_I_STRUCNAME(1 to 12) ! Input volume set name BASIC$QUADWORD COM_O_BSRDATE ! Date of backup from summary record BYTE COM_O_STRUCNAME(1 to 12) ! Output volume set name BYTE ALT_SSNAME(1 to 32) ! Storage for alternate save set name BYTE INPUT_FUNC ! IO$_READVBLK or IO$_READLBLK BYTE INPUT_RTYPE ! BRH$K_VBN or BRH$K_LBN BYTE OUTPUT_FUNC ! IO$_WRITEVBLK or IO$_WRITELBLK BYTE FAST_STRUCLEV ! Structure level of input volume set BYTE SEARCH_BI_ACE(1 to 50) ! BBLOCK[ACE$S_RMSJNL], ! Block to hold the rms BI journal ACE. BYTE SEARCH_AI_ACE(1 to 50) ! BBLOCK[ACE$S_RMSJNL], ! Block to hold the rms AI journal ACE. group fill_47 variant case LONG COM_L_FLAGS2 ! Common flags 2 case group COM_r_fill_48 ! Convert ODS-5 Filenames to ODS-2 ! Input device is SnapDisk [SD$] ! (use [SD$] BACKUP date for comparisions) ! Must do MME clean-up BYTE CVT_ODS5_ODS2_bits ! COMMENT ADDED BY SDL - CVT_ODS5_ODS2_bits contains bits CVT_ODS5_ODS2 through & ! fill_49 end group COM_r_fill_48 end variant end group fill_47 LONG FIRST_BCB ! First BCB after EOV is detected. LONG PHYS_EOV_IN_PROG ! INITIAL(0), ? Indate end of volume on physical save LONG EXH_FINAL_STATUS ! INITIAL(0), ? Exit handler's final status value LONG INPUT_CHAN ! Input channel group fill_50 variant case LONG INPUT_L_FLAGS ! Input flag bits case group INPUT_r_fill_51 ! Input file is open ! EOV processing in progress ! SAVE_BLOCKS in progress ! Blocks exist on RVN selected by ! /VOLUME qualifier ! Ignore file access conflict ! No errors occurred during save ! Wild card save set given ! Input tape rewound for wildcards ! Input save set found (only for wildcards) ! Input file is an alias entry WORD OPEN_bits ! COMMENT ADDED BY SDL - OPEN_bits contains bits OPEN through fill_52 end group INPUT_r_fill_51 end variant end group fill_50 LONG INPUT_FAB ! Pointer to input FAB LONG INPUT_NAM ! Pointer to input NAM block LONG INPUT_BCB ! Pointer to input BCB LONG INPUT_QUAL ! Pointer to input qualifiers block LONG INPUT_BAD ! Pointer to input bad block data LONG INPUT_BLOCK ! Current input block number LONG INPUT_MAXBLOCK ! Maximum input block number dsc$descriptor INPUT_NAMEDESC ! Descriptor for input file name BYTE INPUT_STATBLK(1 to 8) ! Statistics block BASIC$QUADWORD INPUT_CREDATE ! Creation date BASIC$QUADWORD INPUT_REVDATE ! Revision date BASIC$QUADWORD INPUT_EXPDATE ! Expiration date BASIC$QUADWORD INPUT_BAKDATE ! Backup date BASIC$QUADWORD INPUT_ACCDATE ! ODS5, Access date BASIC$QUADWORD INPUT_ATTDATE ! ODS5, Attribute change date BYTE INPUT_EX_RECATTR(1 to 8) ! ODS5, Extended RMS record attributes BYTE INPUT_LENGTH_HINT(1 to 16) ! (NT/FAT) File length hint LONG INPUT_MEDIA_ID ! Media id of input device BYTE INPUT_FILEOWNER(1 to 4) ! File owner UIC BYTE INPUT_FILECHAR(1 to 4) ! File characteristics BYTE INPUT_RECATTR(1 to 32) ! Record attributes LONG INPUT_PROC_LIST ! List of processed file ID's LONG INPUT_PLACEMENT(1 to 2) ! List head for placement data LONG INPUT_VBN_LIST(1 to 2) ! List head for VBN data WORD INPUT_PLACE_LEN ! Length of placement data as attribute WORD fill_input_blk ! Filler, longword alignment LONG OUTPUT_CHAN ! Output channel group fill_53 variant case WORD OUTPUT_W_OUTPUT_FLAGS ! Output flag bits case group OUTPUT_r_fill_54 ! Output file is open ! Verifying first block ! Verifying last block ! Special /INCREMENTAL directory scan ! Output file implicitly opened ! Error occurred processing ACL ! First time through processing ACL ! An output directory is open ! Input saveset is not sequential ! Skip current [alias] file for output ! Skip current [alias] file for output WORD OPEN_bits ! COMMENT ADDED BY SDL - OPEN_bits contains bits OPEN through fill_55 end group OUTPUT_r_fill_54 end variant end group fill_53 WORD fill_output_flgs2 ! Filler, longword alignment LONG OUTPUT_FAB ! Pointer to output FAB LONG OUTPUT_NAM ! Pointer to output NAM block LONG OUTPUT_BCB ! Pointer to output BCB LONG OUTPUT_QUAL ! Pointer to output qualifiers block LONG OUTPUT_BAD ! Pointer to output bad block data LONG OUTPUT_BLOCK ! Current output block number LONG OUTPUT_MAXBLOCK ! Maximum output block number group fill_56 variant case BASIC$QUADWORD DGMQ_OUTPUT_DEVGEOM ! Output device geometry case group DGMr_fill_57 BYTE DGM_SECTORS ! DIB$B_SECTORS BYTE DGM_TRACKS ! DIB$B_TRACKS WORD DGM_CYLINDERS ! DIB$W_CYLINDER LONG DGM_MAXBLOCK ! DIB$L_MAXBLOCK end group DGMr_fill_57 end variant end group fill_56 BYTE OUTPUT_ATTBUF(1 to 188) ! BBLOCK[ATTBUF_LENGTH], ? Values from attribute record LONG OUTPUT_VID_LIST ! List of processed volume ID's LONG OUTPUT_INDEX_EFBLK ! Where in INDEXF the EFBLK should be, if /NOINIT was selected LONG LIST_TOTFILES ! Listing -- total files LONG LIST_TOTSIZE ! Listing -- total size LONG VERIFY_FAB ! Pointer to verification File Context (FC) LONG VERIFY_USE_COUNT ! Use count for current VERIFY_QUAL LONG VERIFY_QUAL ! Corresponding input qualifier block LONG COMPARE_BCB ! BCB for compare buffer LONG FAST_BUFFER ! Pointer to index file buffer LONG FAST_BUFFER_SIZE ! Size of index file buffer BYTE FAST_RVN ! RVN of current MFD BYTE FAST_SCANNING ! WORD DIR_VERLIMIT ! File version limit LONG FAST_IMAP_SIZE ! Number of blocks in index file bitmap LONG FAST_IMAP ! Bitmap of valid and selected files LONG FAST_HDR_OFFSET ! VBN offset to file header LONG FAST_BOOT_LBN ! LBN of 1st boot file LONG FAST_BOOT_LBN2 ! LBN OF 2nd boot file LONG CURRENT_PFL ! Current PFL for file scan/map. LONG PFL_LIST ! Header for file data. group fill_58 variant case BYTE MAP_B_PHASE ! Bit mask to indicate start of mapping phase case group MAP_r_fill_59 ! Offset into NEW_MAP_PHASE ! Processing lost files - NEW_MAP_PHASE BYTE JOURNAL_ENTRY_bits ! COMMENT ADDED BY SDL - JOURNAL_ENTRY_bits contains bits JOURNAL_ENTRY through & ! fill_60 end group MAP_r_fill_59 end variant end group fill_58 BYTE fill_phase_flgs2(1 to 3) ! Filler, longword alignment LONG VVM_LIST(1 to 2) ! VVM listhead. LONG VVM_FREE_LIST(1 to 2) ! Listhead of free VVMs. LONG VVM_LBN_HEADER ! VVM list - LBN pointer. LONG MEGA_BUFFER_SUPPORT ! The output device is capable of BASIC$QUADWORD CLEAR_ASTLM_DELTA ! handling the new buffer scheme. LONG JOUR_BUFFER ! Journal buffer LONG JOUR_DIR ! Current directory string LONG JOUR_HIBLK ! Highest allocated block LONG JOUR_EFBLK ! End of file block LONG JOUR_INBLK ! Current input block WORD JOUR_FFBYTE ! End of file byte WORD JOUR_INBYTE ! Current input byte WORD JOUR_STRUCT_LEV ! Current journal struture level BYTE JOUR_COUNT ! XOR byte count context BYTE JOUR_REVERSE ! True if reading backward WORD JOUR_EXSZ ! Default file extention size. WORD fill_jour_blk2 ! Filler, longword alignment LONG CHKPT_HIGH_SP ! High value of SP for saved portion LONG CHKPT_LOW_SP ! Low value of SP for saved portion LONG CHKPT_STACK ! Pointer to save area for stack LONG CHKPT_VARS ! Pointer to save area for variables LONG CHKPT_STATUS ! Failure status of a re-access LONG CHKPT_LIST(1 to 2) ! Q header of buffers for checkpoint data. LONG CHKPT_EOV_DATA(1 to 2) ! Storage for EOV checkpoint context group fill_61 variant case BYTE RESTART_B_IN_PROGRESS ! BITVECTOR[8], ? Indicates a restart has taken place case group RESTART_r_fill_62 ! Restart is taking place ! Restart took place on the RVN ! Restarting - must clear AST BYTE RESTARTING_bits ! COMMENT ADDED BY SDL - RESTARTING_bits contains bits RESTARTING through fill_63 end group RESTART_r_fill_62 end variant end group fill_61 BYTE PARTIAL_MAPPING ! Signal partial mapping after restart WORD fill_pmap_flg2 ! Filler, longword alignment LONG DIR_CHAN ! Channel assigned to device LONG DIR_NAM ! Pointer to name block dsc$descriptor DIR_SEL_DIR ! Descriptor for selection directory dsc$descriptor DIR_SEL_NTV ! Descriptor for selection n.t;v LONG DIR_DEV_DESC ! Descriptor for device BYTE DIR_STRUCLEV ! Structure level of directory WORD DIR_LEVELS ! Current number of active levels group fill_64 variant case BYTE DIR_B_FLAGS ! Flag bits case group DIR_r_fill_65 ! Image mode scan ! Previous scan failed ! Immediate return on terminator ! Return scanned directories ! Initial call ! Scan root MFD only BYTE IMAGE_SCAN_bits ! COMMENT ADDED BY SDL - IMAGE_SCAN_bits contains bits IMAGE_SCAN through fill_66 end group DIR_r_fill_65 end variant end group fill_64 group fill_67 variant case BYTE D_STAT_B_STATUS ! DIR_STATUS - Directory status flags case group D_STAT_r_fill_68 ! DIR_STATUS is valid ! Directory is selected ! Directory was scanned ! Files in directory are selected BYTE VALID_bits ! COMMENT ADDED BY SDL - VALID_bits contains bits VALID through fill_69 end group D_STAT_r_fill_68 end variant end group fill_67 BYTE DIR_FILLER_01(1 to 7) ! Filler for Quadword Alignment dsc$descriptor DIR_PATH_DESC ! Current directory path descriptor LONG DQE_LIVE_HDR(1 to 2) ! Live directory queue entry list LONG DQE_FREE_HDR(1 to 2) ! Free directory queue entry list LONG DQE_SAVE_PTR ! Saved directory queue entry pointer LONG DIR_SEL_LATEST ! Latest version selector LONG DIR_SCANLIMIT(1 to 8) ! ODS-1 directory scan limits LONG INPUT_MTL ! Pointer to input MTL entry LONG OUTPUT_MTL ! Pointer to output MTL entry LONG CURRENT_MTL ! Pointer to MTL for current operation LONG CURRENT_VCB ! Pointer to VCB for current operation LONG CURRENT_WCB ! Pointer to WCB for current operation dsc$descriptor RSA_DESC ! Descriptor for RSA in STA_DISMOUNT_OU WORD DQF_QUOTA_FID(1 to 3) ! File ID of quota file WORD fill_dqfquotafid ! maintain longword alignment LONG DQF_ROOT ! Root of quota table LONG DQF_COUNT ! Count of entries in quota table LONG QUEUE_HEADERS(1 to 6) ! Queue headers for: ! Allocated disk extents ! Required extents ! Used extension file IDs LONG SYSDISK_CHAN ! Standalone backup system disk channel. LONG LOCK_RANGE(1 to 2) ! Pair of addresses for WS lock. LONG ACL_BUFFER ! Pointer to the ACL to save dsc$descriptor ACL_FIB_DESCR ! FIB descriptor LONG ACL_LENGTH ! Size of the entire ACL BYTE ACL_FIB(1 to 96) ! BBLOCK [FIB$C_LENGTH], FIB storage LONG SAVESET_ENCR ! flag(s) LONG CRYP_IN_CONTEXT ! Pointer to encrypt context for input ss LONG CRYP_OU_CONTEXT ! Pointer to output encrypt context LONG CRYP_DA_CONTEXT ! Pointer to datakey encryption context BYTE CRYP_DATA_ENCIV(1 to 8) ! Copy of IV for encryption of savesets BYTE CRYP_DATA_CODE(1 to 4) ! BBLOCK [4], ? Saveset encryption algorithm code BYTE CRYP_DATA_KEY(1 to 8) ! BBLOCK [8] ? Saveset data key BYTE CRYP_DATA_IV(1 to 8) ! BBLOCK [8] ? Saveset encryption IV LONG CRYP_DATA_CKSM ! Checksum for code,key, and iv BYTE LOST_FILES_RVN ! Current RVN for lost files processing BYTE fill_lostfilervn(1 to 3) ! Maintain longword alignment LONG LOST_FILES_FNUM ! Current file number for lost files processing BYTE INCR_FIB(1 to 96) ! BBLOCK [FIB$C_LENGTH], FIB for wildcarding BYTE INCR_RSA(1 to 252) ! VECTOR[ATR$S_ASCNAME,BYTE], Resultant String BYTE fill_incrresname(1 to 2) ! Maintain longword alignment LONG INCR_RSS ! Size of entire resultant string LONG INCR_NTS ! Size of "name.type" portion LONG INCR_VER ! Binary version number WORD INCR_BACKLINK(1 to 3) ! Backlink WORD fill_incrbacklink ! Maintain longword alignment LONG INCR_FILECHAR ! Characteristics of disk file BASIC$QUADWORD INCR_BAKDATE ! Backup date dsc$descriptor INCR_DIR_DEV_DESC ! Descriptor for special dir. dev. dsc$descriptor INCR_DIR_PATH_DESC ! Descriptor for special dir. BYTE INCR_HEADER_FILENAME(1 to 252) ! VECTOR[ATR$S_ASCNAME,BYTE], Filename in the header group INCR_FLAGS ! Incremental processing flags (save and restore) ! Skip saveset dir/files ! Save all subdir's/related files of a dir. ! DISABLE the above flag. ! longword-align next field WORD SKIP_DIR_bits ! COMMENT ADDED BY SDL - SKIP_DIR_bits contains bits SKIP_DIR through incr_flags_filler1 end group INCR_FLAGS LONG CURRENT_VID ! Pointer to VID block being processed LONG EXH_CTRL_BLK(1 to 4) ! Exit handler control block group CMDCHKFLG WORD CHK_FLAGS_W_COUNT ! True if SMFS device found ! BYTE-align next bit/flag ! (formerly CHK_QUALS[CHK_DRVCLS_MISUSED] ! Maintain longword alignment WORD F11_bits ! COMMENT ADDED BY SDL - F11_bits contains bits F11 through fill_chkquals1 end group CMDCHKFLG LONG MAPPING_NEW_FILE ! Begin mapping a new file LONG EXTENT_VBN ! Starting VBN of this extent LONG STILL_ADJUSTING ! Indicate first pass through mapping pointers LONG EXIT_STATUS ! Image exit status LONG EOV_XOR_WRITTEN ! Note that an XOR block has ! already been written at the ! end of volume. LONG OUTSTANDING_WRITE_COUNT ! INITIAL(0), ! Count of outstanding writes for non-TMSCP support LONG UCB_ADDR ! address of saveset device's UCB LONG MCB_ADDR ! address of MCB for saveset device BASIC$QUADWORD SNAPDISK_BACKUP ! BACKUP date (returned from sd$getdisk routine) end record BCK_COMMON_DATA DECLARE LONG CONSTANT BTC_K_CONSIDER = 1 ! Consider a file DECLARE LONG CONSTANT BTC_K_REJECT = 2 ! Reject a file DECLARE LONG CONSTANT BTC_K_ALRFAST = 3 ! Already chosen on bitmap. DECLARE LONG CONSTANT BTC_K_MAPPED = 4 ! Mapped by scanner. DECLARE LONG CONSTANT BTC_K_CHOSEN = 5 ! File is now chosen. DECLARE LONG CONSTANT BCK_K_BLOCK_SIZE_MIN = 2048 DECLARE LONG CONSTANT BCK_K_BLOCK_SIZE_MAX = 65535 DECLARE LONG CONSTANT BCK_K_GROUP_SIZE_MIN = 0 DECLARE LONG CONSTANT BCK_K_GROUP_SIZE_MAX = 100 DECLARE LONG CONSTANT BCK_K_TAPE_DENS_800 = 800 DECLARE LONG CONSTANT BCK_K_TAPE_DENS_833 = 833 DECLARE LONG CONSTANT BCK_K_TAPE_DENS_1600 = 1600 DECLARE LONG CONSTANT BCK_K_TAPE_DENS_62500 = 6250 DECLARE LONG CONSTANT BCK_K_VOLUME_NUM_MIN = 1 DECLARE LONG CONSTANT BCK_K_VOLUME_NUM_MAX = 255