! *************************************************************************
! *                                                                       *
! * HP CONFIDENTIAL. This software is confidential proprietary software   *
! * licensed by Hewlett-Packard Development Company, L.P., and is not     *
! * authorized to be used, duplicated OR disclosed to anyone without the  *
! * prior written permission of HP.                                       *
! * © 2021 Copyright Hewlett-Packard Development Company, L.P.            *
! *                                                                       *
! * VMS SOFTWARE, INC. CONFIDENTIAL. This software is confidential        *
! * proprietary software licensed by VMS Software, Inc., and is not       *
! * authorized to be used, duplicated or disclosed to anyone without      *
! * the prior written permission of VMS Software, Inc.                    *
! * © 2021 Copyright VMS Software, Inc.                                   *
! *                                                                       *
! *************************************************************************
! ********************************************************************************************************************************
!  Created:  9-Mar-2021 22:27:19 by OpenVMS SDL EV3-3      
!  Source:  29-JUL-2019 12:06:46 $1$DGA8085:[BACKUP.SRC]BACKDEF.SDL;1 
! ********************************************************************************************************************************
 
!*** MODULE $BBHDEF ***
literal BBH$K_COMMON = 32;              !  end of common header 
literal BBH$C_COMMON = 32;              !  end of common header 
literal BBH$K_LEVEL1 = 257;             !  level 1, version 1 
literal BBH$K_LEVEL5 = 1281;            !  level 5, version 1
literal BBH$M_NOCRC = %X'1';
literal BBH$M_COMPRESSED_SS = %X'2';
literal BBH$M_COMPRESSED_BUFFER = %X'4';
literal BBH$K_LENGTH = 256;             !  length of block header 
literal BBH$C_LENGTH = 256;             !  length of block header 
macro BBH$W_SIZE = 0,0,16,0 %;          !  size in bytes of block header 
macro BBH$W_OPSYS = 2,0,16,0 %;         !  operating system ID 
macro BBH$W_SUBSYS = 4,0,16,0 %;        !  subsystem ID 
macro BBH$W_APPLIC = 6,0,16,0 %;        !  application ID 
macro BBH$L_NUMBER = 8,0,32,0 %;        !  block sequence number 
macro BBH$W_STRUCLEV = 32,0,16,0 %;     !  block structure level 
macro BBH$B_STRUCVER = 32,0,8,0 %;      !  structure version number 
macro BBH$B_STRUCLEV = 33,0,8,0 %;      !  major structure level 
macro BBH$W_VOLNUM = 34,0,16,0 %;       !  media volume number 
macro BBH$L_CRC = 36,0,32,0 %;          !  block CRC 
macro BBH$L_BLOCKSIZE = 40,0,32,0 %;    !  block size in bytes 
macro BBH$L_FLAGS = 44,0,32,0 %;        !  block flags 
macro BBH$V_NOCRC = 44,0,1,0 %;         !  no CRC computed for block 
macro BBH$V_COMPRESSED_SS = 44,1,1,0 %; !  compressed saveset
macro BBH$V_COMPRESSED_BUFFER = 44,2,1,0 %; !  compressed block
macro BBH$V_COMPRESS_ALGO = 44,3,4,0 %;
literal BBH$S_COMPRESS_ALGO = 4;        !  compression algorithm used - for future
macro BBH$T_SSNAME = 48,0,0,0 %;
literal BBH$S_SSNAME = 32;              !  save set name (counted ASCII) 
!  for compatibility sake don't change
!  *** Note: Old overlay form must be used in FID & DID due to SDL bug
!  *** that omits the field size symbol in a structured field.
macro BBH$W_FID = 80,0,0,0 %;
literal BBH$S_FID = 6;                  !  current file ID 
macro BBH$W_FID_NUM = 80,0,16,0 %;      !  file number 
macro BBH$W_FID_SEQ = 82,0,16,0 %;      !  file sequence number 
macro BBH$W_FID_RVN = 84,0,16,0 %;      !  relative volume number 
macro BBH$B_FID_RVN = 84,0,8,0 %;       !  alternate format RVN 
macro BBH$B_FID_NMX = 85,0,8,0 %;       !  alternate format file number extension 
macro BBH$W_DID = 86,0,0,0 %;
literal BBH$S_DID = 6;                  !  current directory ID 
macro BBH$W_DID_NUM = 86,0,16,0 %;      !  file number 
macro BBH$W_DID_SEQ = 88,0,16,0 %;      !  file sequence number 
macro BBH$W_DID_RVN = 90,0,16,0 %;      !  relative volume number 
macro BBH$B_DID_RVN = 90,0,8,0 %;       !  alternate format RVN 
macro BBH$B_DID_NMX = 91,0,8,0 %;       !  alternate format file number extension 
macro BBH$T_FILENAME = 92,0,0,0 %;
literal BBH$S_FILENAME = 128;           !  current file name 
macro BBH$B_RTYPE = 220,0,8,0 %;        !  record type of current file 
macro BBH$B_RATTRIB = 221,0,8,0 %;      !  record attributes of current file 
macro BBH$W_RSIZE = 222,0,16,0 %;       !  record size of current file 
macro BBH$B_BKTSIZE = 224,0,8,0 %;      !  bucket size of current file 
macro BBH$B_VFCSIZE = 225,0,8,0 %;      !  VFC area size of current file 
macro BBH$W_MAXREC = 226,0,16,0 %;      !  maximum record size of current file 
macro BBH$L_FILESIZE = 228,0,32,0 %;    !  allocation of current file 
macro BBH$L_CMPRSBLKSIZ = 232,0,32,0 %; !  compressed block size
macro BBH$T_RESERVED2 = 236,0,0,0 %;
literal BBH$S_RESERVED2 = 18;           !  reserved 
macro BBH$W_CHECKSUM = 254,0,16,0 %;    !  header checksum 
 
!*** MODULE $BRHDEF ***
! +
! 
!  BRH - backup record header. This structure prefixes each record
!  within a data block. It identifies the type and use of the record.
! 
! -
literal BRH$K_NULL = 0;                 !  null record 
literal BRH$K_SUMMARY = 1;              !  BACKUP summary record 
literal BRH$K_VOLUME = 2;               !  volume summary record 
literal BRH$K_FILE = 3;                 !  file attribute record 
literal BRH$K_VBN = 4;                  !  file virtual block record 
literal BRH$K_PHYSVOL = 5;              !  physical volume attribute record 
literal BRH$K_LBN = 6;                  !  physical volume logical block record 
literal BRH$K_FID = 7;                  !  file ID record 
literal BRH$K_FILE_EXT = 8;             !  file attribute extension record 
literal BRH$K_LBN_576 = 9;              !  576 byte LBN record
literal BRH$K_RS_DIRATTR = 10;          !  RSTS directory attribute record
literal BRH$K_ALIAS = 11;
literal BRH$K_MAX_RTYPE = 12;           !  max record type
literal BRH$M_BADDATA = %X'1';
literal BRH$M_DIRECTORY = %X'2';
literal BRH$M_NONSEQUENTIAL = %X'4';
literal BRH$M_BLOCKERRS = %X'8';
literal BRH$M_ALIAS_ENTRY = %X'10';
literal BRH$M_HEADONLY = %X'20';
literal BRH$K_LENGTH = 16;
literal BRH$C_LENGTH = 16;
macro BRH$W_RSIZE = 0,0,16,0 %;         !  record size in bytes 
macro BRH$W_RTYPE = 2,0,16,0 %;         !  record type 
macro BRH$L_FLAGS = 4,0,32,0 %;         !  record flags 
macro BRH$V_BADDATA = 4,0,1,0 %;        !  data error occurred in record 
macro BRH$V_DIRECTORY = 4,1,1,0 %;      !  record belongs to a directory file 
macro BRH$V_NONSEQUENTIAL = 4,2,1,0 %;  !  data record is not in LBN / VBN sequence
macro BRH$V_BLOCKERRS = 4,3,1,0 %;      !  per block error mask present
macro BRH$V_ALIAS_ENTRY = 4,4,1,0 %;    !  file saved via alias entry
macro BRH$V_HEADONLY = 4,5,1,0 %;       !  File's data isn't copied
macro BRH$L_ADDRESS = 8,0,32,0 %;       !  address of data (e.g., VBN or LBN) 
macro BRH$W_BLOCKFLAGS = 12,0,16,0 %;   !  per block error mask
macro BRH$W_RESERVED = 14,0,16,0 %;     !  reserved 
 
!*** MODULE $BSADEF ***
! +
! 
!  BACKUP attribute codes. These attributes appear in various records
!  in a save set.
! 
! -
! 
!  Definition for file ID record
!  (Structure level definition shared with other attribute records)
! 
macro BSA$W_STRUCLEV = 0,0,16,0 %;      !  save set structure level 
macro BSA$W_FID_NUM = 2,0,16,0 %;       !  NUM word of file ID 
macro BSA$W_FID_RVN = 4,0,16,0 %;       !  RVN word of file ID 
macro BSA$B_FID_RVN = 4,0,8,0 %;        !  alternate format RVN word 
macro BSA$B_FID_NMX = 5,0,8,0 %;        !  alternate format RVN word 
macro BSA$W_FID_COUNT = 6,0,16,0 %;     !  count of SEQ words following 
macro BSA$W_FID_SEQ = 8,0,16,0 %;       !  SEQ word of file ID, repeated 
!      BSA$W_FID_COUNT times
! 
!  Attribute entry header
! 
literal BSA$K_LENGTH = 4;               !  length of attribute descriptor 
literal BSA$C_LENGTH = 4;               !  length of attribute descriptor 
! 
macro BSA$W_SIZE = 0,0,16,0 %;          !  size of attribute value 
macro BSA$W_TYPE = 2,0,16,0 %;          !  attribute code 
!  Data item within placement attribute record
! 
macro BSA$W_PLC_PTR = 0,0,16,0 %;       !  placement pointer 
macro BSA$L_PLC_COUNT = 2,0,32,0 %;     !  count of placed blocks 
macro BSA$L_PLC_LBN = 6,0,32,0 %;       !  LBN of placed blocks 
macro BSA$W_PLC_LOLBN = 6,0,16,0 %;     !  
macro BSA$W_PLC_HILBN = 8,0,16,0 %;
! 
!  ALIAS record structure
! 
literal BSA$M_IGNORED_ALIAS = %X'1';
literal BSA_ALIAS$K_LENGTH = 32;        !  Length of fixed portion of ALIAS record
literal BSA_ALIAS$C_LENGTH = 32;        !  Length of fixed portion of ALIAS record
! 
macro BSA$W_ALIAS_STRUCLEV = 0,0,16,0 %; !  save set structure level 
!  *** Note: Old overlay form must be used in FID & DID due to SDL bug
!  *** that omits the field size symbol in a structured field.
macro BSA$W_ALIAS_DID = 2,0,0,0 %;
literal BSA$S_ALIAS_DID = 6;            !  ALIAS directory ID 
macro BSA$W_ALIAS_DID_NUM = 2,0,16,0 %; !  ALIAS Dir. file number 
macro BSA$W_ALIAS_DID_SEQ = 4,0,16,0 %; !  ALIAS Dir. file sequence number 
macro BSA$W_ALIAS_DID_RVN = 6,0,16,0 %; !  ALIAS Dir. relative volume number 
macro BSA$B_ALIAS_DID_RVN = 6,0,8,0 %;  !  alternate format RVN 
macro BSA$B_ALIAS_DID_NMX = 7,0,8,0 %;  !  alternate format file number extension 
macro BSA$W_ALIAS_ENTRY_DIR_RSS = 8,0,16,0 %; !  alias entry Dir. filename size
macro BSA$W_ALIAS_ENTRY_RSS = 10,0,16,0 %; !  alias entry filename size
macro BSA$W_PRIM_DID = 12,0,0,0 %;
literal BSA$S_PRIM_DID = 6;             !  Primary File directory ID 
macro BSA$W_PRIM_DID_NUM = 12,0,16,0 %; !  Primary File Dir. file number 
macro BSA$W_PRIM_DID_SEQ = 14,0,16,0 %; !  Primary File Dir. file sequence number 
macro BSA$W_PRIM_DID_RVN = 16,0,16,0 %; !  Primary File Dir. relative volume number 
macro BSA$B_PRIM_DID_RVN = 16,0,8,0 %;  !  alternate format RVN 
macro BSA$B_PRIM_DID_NMX = 17,0,8,0 %;  !  alternate format file number extension 
macro BSA$W_PRIM_FID = 18,0,0,0 %;
literal BSA$S_PRIM_FID = 6;             !  Primary file ID 
macro BSA$W_PRIM_FID_NUM = 18,0,16,0 %; !  Primary File file number 
macro BSA$W_PRIM_FID_SEQ = 20,0,16,0 %; !  Primary File file sequence number 
macro BSA$W_PRIM_FID_RVN = 22,0,16,0 %; !  Primary File relative volume number 
macro BSA$B_PRIM_FID_RVN = 22,0,8,0 %;  !  alternate format RVN 
macro BSA$B_PRIM_FID_NMX = 23,0,8,0 %;  !  alternate format file number extension 
macro BSA$W_ALIAS_PRIM_DIR_RSS = 24,0,16,0 %; !  Primary file entry Dir. filename size
macro BSA$W_ALIAS_PRIM_RSS = 26,0,16,0 %; !  Primary file entry filename size
macro BSA$L_ALIAS_FLAGS = 28,0,32,0 %;  !  Alias Record Flags
macro BSA$V_IGNORED_ALIAS = 28,0,1,0 %; !    1 = alias entry ignored
!   Variable length strings follow the fixed portion of the ALIAS Record.
!   These strings are: 
! 	the alias entry directory name string, (includes brackets),
! 	the alias entry name string, (NTV),
! 	the primary file directory name string, (includes brackets),
! 	and the primary file name string, (NTV).
! 
! 
!  Attribute type codes
! 
! 
!  BACKUP summary record
! 
literal BSA$K_SSNAME = 1;               !  save set name 
literal BSA$K_COMMAND = 2;              !  command line 
literal BSA$K_COMMENT = 3;              !  user comment 
literal BSA$K_USERNAME = 4;             !  name of user who wrote the set 
literal BSA$K_USERUIC = 5;              !  UIC of user 
literal BSA$K_DATE = 6;                 !  date backup was done 
literal BSA$K_OPSYS = 7;                !  operating system 
literal BSA$K_SYSVER = 8;               !  operating system version 
literal BSA$K_NODENAME = 9;             !  operating system node name 
literal BSA$K_SIR = 10;                 !  CPU system ID register 
literal BSA$K_DRIVEID = 11;             !  ID of drive writing backup 
literal BSA$K_BACKVER = 12;             !  version number of BACKUP 
literal BSA$K_BLOCKSIZE = 13;           !  block size of save set 
literal BSA$K_XORSIZE = 14;             !  size of each XOR group 
literal BSA$K_BUFFERS = 15;             !  number of buffers 
literal BSA$K_VOLSETNAM = 16;           !  volume set name 
literal BSA$K_NVOLS = 17;               !  number of volumes in set 
literal BSA$K_BACKSIZE = 18;            !  total file space in save set 
literal BSA$K_BACKFILES = 19;           !  total number of files in save set 
! 
!  Volume summary record
! 
literal BSA$K_VOLSTRUCT = 20;           !  volume structure level 
literal BSA$K_VOLNAME = 21;             !  volume label 
literal BSA$K_OWNERNAME = 22;           !  volume owner name 
literal BSA$K_FORMAT = 23;              !  volume file format name 
literal BSA$K_RVN = 24;                 !  relative volume number 
literal BSA$K_VOLOWNER = 25;            !  volume owner UIC 
literal BSA$K_PROTECT = 26;             !  volume protection mask 
literal BSA$K_FILEPROT = 27;            !  volume default file protection 
literal BSA$K_RECPROT = 28;             !  volume default record protection 
literal BSA$K_VOLCHAR = 29;             !  volume characteristics bits 
literal BSA$K_VOLDATE = 30;             !  volume creation date 
literal BSA$K_WINDOW = 31;              !  default file window size 
literal BSA$K_LRU_LIM = 32;             !  default directory LRU limit 
literal BSA$K_EXTEND = 33;              !  default file extend size 
literal BSA$K_CLUSTER = 34;             !  storage map cluster factor 
literal BSA$K_RESFILES = 35;            !  number of reserved files 
literal BSA$K_VOLSIZE = 36;             !  original volume size in blocks 
literal BSA$K_TOTSIZE = 37;             !  total file space in volume set 
literal BSA$K_TOTFILES = 38;            !  total number of files in volume set 
literal BSA$K_MAXFILES = 39;            !  maximum number of files allowed 
literal BSA$K_MAXFILNUM = 40;           !  highest file number 
literal BSA$K_SERIALNUM = 41;           !  pack serial number 
! 
!  File attribute record
! 
literal BSA$K_FILENAME = 42;            !  file name 
literal BSA$K_STRUCLEV = 43;            !  file structure level 
literal BSA$K_FID = 44;                 !  file ID 
literal BSA$K_BACKLINK = 45;            !  directory ID back link 
literal BSA$K_FILESIZE = 46;            !  file size in blocks 
literal BSA$K_UIC = 47;                 !  file owner UIC 
literal BSA$K_FPRO = 48;                !  file protection mask 
literal BSA$K_RPRO = 49;                !  record protection mask 
literal BSA$K_ACLEVEL = 50;             !  access level 
literal BSA$K_UCHAR = 51;               !  file characteristics 
literal BSA$K_RECATTR = 52;             !  record attributes area 
literal BSA$K_REVISION = 53;            !  revision number 
literal BSA$K_CREDATE = 54;             !  creation date 
literal BSA$K_REVDATE = 55;             !  revision date 
literal BSA$K_EXPDATE = 56;             !  expiration date 
literal BSA$K_BAKDATE = 57;             !  backup date 
! 
!  Physical volume attribute record
! 
literal BSA$K_SECTORS = 58;             !  sectors per track 
literal BSA$K_TRACKS = 59;              !  tracks per cylinder 
literal BSA$K_CYLINDERS = 60;           !  cylinders per volume 
literal BSA$K_MAXBLOCK = 61;            !  number of logical blocks per volume 
literal BSA$K_DEVTYP = 62;              !  device type 
literal BSA$K_SERIAL = 63;              !  serial number 
literal BSA$K_DEVNAM = 64;              !  device name 
literal BSA$K_LABEL = 65;               !  label 
literal BSA$K_BADBLOCK = 66;            !  bad block descriptor, a sequence of 
!  pairs of longwords where the first
!  is an LBN, the second is a count
! 
!  Additions
! 
literal BSA$K_INDEXLBN = 67;            !  (VS) Index file bitmap starting LBN 
literal BSA$K_BOOTBLOCK = 68;           !  (VS) Boot block image 
literal BSA$K_BOOTVBN = 69;             !  (FA) VBN within file for 1st boot image 
literal BSA$K_PLACEMENT = 70;           !  (FA) Placement data 
literal BSA$K_DIR_UIC = 71;             !  (FA) UIC of directory 
literal BSA$K_DIR_FPRO = 72;            !  (FA) Protection of directory 
literal BSA$K_DIR_STATUS = 73;          !  (FA) Status of directory 
literal BSA$K_DIR_VERLIM = 74;          !  (FA) Version limit of directory 
literal BSA$K_VERLIMIT = 75;            !  (FA) File version limit 
literal BSA$K_RETAINMIN = 76;           !  (VS) Minimum file retention period 
literal BSA$K_RETAINMAX = 77;           !  (VS) Maximum file retention period 
literal BSA$K_ACLSEGMENT = 78;          !  (FA) ACL segment for the file 
literal BSA$K_HIGHWATER = 79;           !  (FA) Highwater mark
literal BSA$K_JNL_FLAGS = 80;           !  (FA) Journal control flags
literal BSA$K_CRYPDATKEY = 81;          !  (BS) File encryption attribute
literal BSA$K_LBNSIZE = 82;             !  (PS) Disk block size in bytes
literal BSA$K_RS_DIRCRE = 83;           !  (DA) RSTS directory creation attribute
literal BSA$K_RS_DIRATTR = 84;          !  (DA) RSTS directory attributes
literal BSA$K_RS_FILECHAR = 85;         !  (FA) RSTS specific file attributes
literal BSA$K_RS_VOLCHAR = 86;          !  (VS) RSTS specific volume characteristics
literal BSA$K_RU_ACTIVE = 87;           !  (FA) Active recovery units recoverable facility id (if non-zero)
literal BSA$K_BACKREV = 88;             !  (VS) Backup revision count.
literal BSA$K_MIN_CLASS = 89;           !  (VS) Volume min security class
literal BSA$K_MAX_CLASS = 90;           !  (VS) Volume max security class
literal BSA$K_CLASS_PROT = 91;          !  (FA) File security class
literal BSA$K_BOOTVBN2 = 92;            !  (FA) VBN within file for 2nd boot image
literal BSA$K_ACCDATE = 93;             !  (FA) File access date, (ODS5)
literal BSA$K_ATTDATE = 94;             !  (FA) File attribute revision date, (ODS5)
literal BSA$K_EX_RECATTR = 95;          !  (FA) Extended RMS record attributes, (ODS5)
literal BSA$K_LENGTH_HINT = 96;         !  (FA) File length hint, (ODS5)
literal BSA$K_LINKCOUNT = 97;           !  (FA) (hard) link count (ODS5)    
literal BSA$K_GPT_VBN = 98;             !  (FA) VBN within file for EFI/GPT partition image
literal BSA$K_GPT_TYPE = 99;            !  (FA) Type of EFI/GPT partition image (see GPT_TYPE codes below)
literal BSA$K_CRYPAESDATKEY = 100;      !  (BS) File encryption attribute for AES
literal BSA$K_EXPSIZE = 101;            !  (VS)	Volume Expansion Size
literal BSA$K_COMPRESSALGO = 102;       !  (BS) File compressed with deflate algorithm
literal BSA$K_NUM_ATRS = 103;           !  number of attribute codes 
! 
!  Placement data type codes
! 
literal BSA$K_PLC_FID = 1;              !  file ID 
literal BSA$K_PLC_COUNT = 2;            !  count of unplaced blocks 
literal BSA$K_PLC_PLACE = 3;            !  placement pointer, count of placed blocks 
literal BSA$K_PLC_PLLBN = 4;            !  placement pointer, count, LBN of placed blocks 
! 
!  GPT_TYPE codes
! 
literal BSA$K_GPT_BOOT = 1;             !  boot partition for IA64
literal BSA$K_GPT_DIAG = 2;             !  diagnostic partition for IA64
literal BSA$K_GPT_X86_EFI = 3;          !  EFI boot partition for X86
literal BSA$K_GPT_X86_NTDATA = 4;       !  Windows data partition for X86
literal BSA$K_GPT_MDISK = 5;            !  Memory disk container file
! 
!  Lengths of above attributes
! 
! 
!  BACKUP summary record
! 
literal BSA$S_SSNAME = 79;              !  save set name 
literal BSA$S_COMMAND = 1024;           !  command line 
literal BSA$S_COMMENT = 255;            !  user comment 
literal BSA$S_USERNAME = 32;            !  name of user who wrote the set 
literal BSA$S_USERUIC = 4;              !  UIC of user 
literal BSA$S_DATE = 8;                 !  date backup was done 
literal BSA$S_OPSYS = 2;                !  operating system 
literal BSA$S_SYSVER = 4;               !  operating system version 
literal BSA$S_NODENAME = 12;            !  operating system node name 
literal BSA$S_SIR = 4;                  !  CPU system ID register 
literal BSA$S_DRIVEID = 16;             !  ID of drive writing backup 
literal BSA$S_BACKVER = 32;             !  version number of BACKUP 
literal BSA$S_BLOCKSIZE = 4;            !  block size of save set 
literal BSA$S_XORSIZE = 2;              !  size of each XOR group 
literal BSA$S_BUFFERS = 2;              !  number of buffers 
literal BSA$S_VOLSETNAM = 12;           !  volume set name 
literal BSA$S_NVOLS = 2;                !  number of volumes in set 
literal BSA$S_BACKSIZE = 8;             !  total file space in save set 
literal BSA$S_BACKFILES = 4;            !  total number of files in save set 
! 
!  Volume summary record
! 
literal BSA$S_VOLSTRUCT = 2;            !  volume structure level 
literal BSA$S_VOLNAME = 12;             !  volume label 
literal BSA$S_OWNERNAME = 12;           !  volume owner name 
literal BSA$S_FORMAT = 12;              !  volume file format name 
literal BSA$S_RVN = 2;                  !  relative volume number 
literal BSA$S_VOLOWNER = 4;             !  volume owner UIC 
literal BSA$S_PROTECT = 2;              !  volume protection mask 
literal BSA$S_FILEPROT = 2;             !  volume default file protection 
literal BSA$S_RECPROT = 2;              !  volume default record protection 
literal BSA$S_VOLCHAR = 2;              !  volume characteristics bits 
literal BSA$S_VOLDATE = 8;              !  volume creation date 
literal BSA$S_WINDOW = 1;               !  default file window size 
literal BSA$S_LRU_LIM = 1;              !  default directory LRU limit 
literal BSA$S_EXTEND = 2;               !  default file extend size 
literal BSA$S_CLUSTER = 2;              !  storage map cluster factor 
literal BSA$S_RESFILES = 2;             !  number of reserved files 
literal BSA$S_VOLSIZE = 4;              !  original volume size in blocks 
literal BSA$S_TOTSIZE = 8;              !  total file space in volume 
literal BSA$S_TOTFILES = 4;             !  total number of files in volume 
literal BSA$S_MAXFILES = 4;             !  maximum number of files allowed 
literal BSA$S_MAXFILNUM = 4;            !  highest file number 
literal BSA$S_SERIALNUM = 4;            !  pack serial number 
! 
!  File attribute record
! 
literal BSA$S_FILENAME = 128;           !  file name 
literal BSA$S_STRUCLEV = 2;             !  file structure level 
literal BSA$S_FID = 6;                  !  file ID 
literal BSA$S_BACKLINK = 6;             !  directory ID back link 
literal BSA$S_FILESIZE = 4;             !  file size in blocks 
literal BSA$S_UIC = 4;                  !  file owner UIC 
literal BSA$S_FPRO = 2;                 !  file protection mask 
literal BSA$S_RPRO = 2;                 !  record protection mask 
literal BSA$S_ACLEVEL = 1;              !  access level 
literal BSA$S_UCHAR = 4;                !  file characteristics 
literal BSA$S_RECATTR = 32;             !  record attributes area 
literal BSA$S_REVISION = 2;             !  revision number 
literal BSA$S_CREDATE = 8;              !  creation date 
literal BSA$S_REVDATE = 8;              !  revision date 
literal BSA$S_EXPDATE = 8;              !  expiration date 
literal BSA$S_BAKDATE = 8;              !  backup date 
! 
!  Physical volume attribute record
! 
literal BSA$S_SECTORS = 1;              !  sectors per track 
literal BSA$S_TRACKS = 1;               !  tracks per cylinder 
literal BSA$S_CYLINDERS = 2;            !  cylinders per volume 
literal BSA$S_MAXBLOCK = 4;             !  number of logical blocks per volume 
literal BSA$S_DEVTYP = 4;               !  device type 
literal BSA$S_SERIAL = 4;               !  serial number 
literal BSA$S_DEVNAM = 64;              !  device name 
literal BSA$S_LABEL = 12;               !  label 
literal BSA$S_BADBLOCK = 8;             !  bad block descriptor (one pair) 
! 
!  Additions
! 
literal BSA$S_INDEXLBN = 4;             !  (VS) Index file bitmap starting LBN 
literal BSA$S_BOOTBLOCK = 512;          !  (VS) Boot block image 
literal BSA$S_BOOTVBN = 4;              !  (FA) VBN within file for boot block 
literal BSA$S_BOOTVBN2 = 4;             !  (FA) VBN within file for boot image 
literal BSA$S_GPT_VBN = 4;              !  (FA) VBN within EFI/GPT partition file
literal BSA$S_GPT_TYPE = 4;             !  (FA) type of EFI/GPT partition file
literal BSA$S_PLACEMENT = 2048;         !  (FA) Placement data 
literal BSA$S_DIR_UIC = 4;              !  (FA) UIC of directory 
literal BSA$S_DIR_FPRO = 2;             !  (FA) Protection of directory 
literal BSA$S_DIR_STATUS = 1;           !  (FA) Status of directory 
literal BSA$S_DIR_VERLIM = 2;           !  (FA) Version limit of directory 
literal BSA$S_VERLIMIT = 2;             !  (FA) File version limit 
literal BSA$S_RETAINMIN = 8;            !  (VS) Minimum file retention period 
literal BSA$S_RETAINMAX = 8;            !  (VS) Maximum file retention period 
literal BSA$S_ACLSEGMENT = 380;         !  (FA) ACL segment for the file 
literal BSA$S_HIGHWATER = 4;            !  (FA) Highwater mark
literal BSA$S_JNL_FLAGS = 1;            !  (FA) Journal control flags
literal BSA$S_CRYPDATKEY = 24;          !  (BS) Saveset encryption key
literal BSA$S_CRYPAESDATKEY = 64;       !  (BS) Saveset encryption key AES
literal BSA$S_LBNSIZE = 2;              !  (PS) Disk block size in bytes
literal BSA$S_RS_DIRCRE = 4;            !  (FA) RSTS directory creation attribute
literal BSA$S_RS_DIRATTR = 14;          !  (FA) RSTS directory attributes
literal BSA$S_RS_FILECHAR = 12;         !  (FA) RSTS specific file attributes
literal BSA$S_RS_VOLCHAR = 4;           !  (VS) RSTS specific volume characteristics
literal BSA$S_RU_ACTIVE = 1;            !  (FA) Active recovery units recoverable facility id (if non-zero)
literal BSA$S_BACKREV = 2;              !  (VS) Backup revision count.
literal BSA$S_MIN_CLASS = 20;           !  (VS) Volume min security class
literal BSA$S_MAX_CLASS = 20;           !  (VS) Volume max security class
literal BSA$S_CLASS_PROT = 20;          !  (FA) File security class
literal BSA$S_ACCDATE = 8;              !  (FA) File access date, (ODS5)
literal BSA$S_ATTDATE = 8;              !  (FA) File attribute revision date, (ODS5)
literal BSA$S_EX_RECATTR = 8;           !  (FA) Extended RMS record attributes, (ODS5)
literal BSA$S_LENGTH_HINT = 16;         !  (FA) File length hint, (ODS5 / FAT)
literal BSA$S_LINKCOUNT = 2;            !  (FA) (hard) link count (ODS5)
literal BSA$S_EXPSIZE = 4;              !  (VS) Dynamic Volume Expansion Size 
literal BSA$S_COMPRESSALGO = 8;         !  (BS) File compressed with deflate algorithm
! 
!  Placement data type codes
! 
literal BSA$S_PLC_FID = 6;              !  file ID 
literal BSA$S_PLC_COUNT = 4;            !  count of unplaced blocks 
literal BSA$S_PLC_PLACE = 6;            !  placement pointer, count of placed blocks 
literal BSA$S_PLC_PLLBN = 10;           !  placement pointer, count, LBN of placed blocks 
literal BSA$K_CRYP_DESCBC = 1;          !  Code for DES Cypher Block Chaining
literal BSA$K_CRYP_DESECB = 2;          !  Code for DES Electronic Code Book.
macro BSA$B_CRYPTYP = 0,0,8,0 %;        !  Byte code describing saveset encr alg
macro BSA$Q_CRYPKEY = 4,0,0,0 %;
literal BSA$S_CRYPKEY = 8;              !  DES key used to encrypt saveset
macro BSA$Q_CRYPIV = 12,0,0,0 %;
literal BSA$S_CRYPIV = 8;               !  DES initialize vector prototype
macro BSA$L_CRYPCKSM = 20,0,32,0 %;     !  Checksum for attribute record
literal BSA$K_CRYP_AESCBC128 = 1;       !  Code for AES Cypher Block Chaining
literal BSA$K_CRYP_AESCBC192 = 2;       !  Code for AES Cypher Block Chaining
literal BSA$K_CRYP_AESCBC256 = 3;       !  Code for AES Cypher Block Chaining
literal BSA$K_CRYP_AESECB128 = 4;       !  Code for AES Electronic Code Book.
literal BSA$K_CRYP_AESECB192 = 5;       !  Code for AES Electronic Code Book.
literal BSA$K_CRYP_AESECB256 = 6;       !  Code for AES Electronic Code Book.
literal BSA$K_CRYP_AESCFB128 = 7;
literal BSA$K_CRYP_AESCFB192 = 8;
literal BSA$K_CRYP_AESCFB256 = 9;
literal BSA$K_CRYP_AESOFB128 = 10;
literal BSA$K_CRYP_AESOFB192 = 11;
literal BSA$K_CRYP_AESOFB256 = 12;
macro BSA$W_CRYPAES_TYP = 0,0,16,0 %;   !  Word code describing saveset encr alg
macro BSA$L_CRYPAES_CKSM = 50,0,32,0 %; !  Checksum for attribute record
 
!*** MODULE $BJLDEF ***
! +
! 
!  BACKUP journal file.
! 
! -
literal BJL$S_SIZE_LEN = 1;             !  length of size
literal BJL$K_STRUCLEV = 0;             !  structure level 
literal BJL$K_SSNAME = 1;               !  save set name 
literal BJL$K_VOLUME = 2;               !  volume identification 
literal BJL$K_DIRECTORY = 3;            !  directory name 
literal BJL$K_FILE = 4;                 !  file name 
macro BJL$B_SIZE = 0,0,8,0 %;           !  record length (XOR format) 
macro BJL$B_TYPE = 1,0,8,0 %;           !  record type 
macro BJL$B_DATA = 2,0,8,0 %;           !  beginning of data portion of record 
! 
!  Following definitions are all relative to data portion of record.
! 
!  Structure level record.
! 
literal BJL$K_LEVEL1 = 257;             !  level 1, version 1 
literal BJL$K_LEVEL2 = 258;             !  level 1, version 2
literal BJL$K_LEVEL5 = 1281;            !  level 5, version 1 
literal BJL$K_STRUC_LEN = 2;            !  length of record 
literal BJL$C_STRUC_LEN = 2;            !  length of record 
! 
macro BJL$W_STRUCLEV = 0,0,16,0 %;      !  structure level 
macro BJL$B_STRUCVER = 0,0,8,0 %;       !  structure version number 
macro BJL$B_STRUCLEV = 1,0,8,0 %;       !  major structure level 
!  Save set name record.
! 
literal BJL$K_SSNAME_LEN = 257;         !  maximum length of record 
literal BJL$C_SSNAME_LEN = 257;         !  maximum length of record 
macro BJL$Q_CREDATE = 0,0,0,0 %;
literal BJL$S_CREDATE = 8;              !  creation date and time 
macro BJL$T_SSNAME = 8,0,0,0 %;
literal BJL$S_SSNAME = 247;             !  save set name (variable length) 
macro BJL$W_SSNAME_FLAGS = 255,0,16,0 %; !  flags, (Ref. NAMESTR_SEG_FLAGS, etc.)
!  The following masks define flag bits for file/directory name string 
!  segmentation.  The structure is being defined in this way because the
!  name string segment flag may be used in several journal file record flag fields.
!  By defining the structure in this manner the flags are relative to the 
!  start of the record's flag field(s) and are not position dependant.
!  
literal BJL$M_MORE_SEGMENTS = %X'2';
macro BJL$v_namestrseg_fill1 = 0,0,1,0 %; !  reserve space for filename flags
! 	  i.e. BJL$V_HEADONLY compatibility 
macro BJL$V_MORE_SEGMENTS = 0,1,1,0 %;  !  0 = last segment, 
!  1 = more segments to follow
! 
! 	Add any new flags here.
! 
! 
!  Volume identification record.
! 
literal BJL$K_VOLUME_LEN = 14;          !  length of record 
literal BJL$C_VOLUME_LEN = 14;          !  length of record 
macro BJL$T_VOLNAME = 0,0,0,0 %;
literal BJL$S_VOLNAME = 12;             !  volume label 
macro BJL$W_VOLNUMBER = 12,0,16,0 %;    !  volume sequence number 
! 
!  Directory record.
! 
literal BJL$K_DIR_LEN = 254;            !  maximum length of record 
literal BJL$C_DIR_LEN = 254;            !  maximum length of record 
!  stored in XOR format
macro BJL$T_DIRNAME = 0,0,0,0 %;
literal BJL$S_DIRNAME = 252;            !  directory name (variable length) 
macro BJL$W_DIRNAME_FLAGS = 252,0,16,0 %; !  flags, (Ref. NAMESTR_SEG_FLAGS, etc.)
! 
!  File record.  
! 
!  The following masks define flag bits.  The structure is being defined
!  in this way because the flags do not have a set position in the record
!  defined by BJLDEF5 but simply follow directly after the file name.  
!  By defining the structures in this manner there is a full longword 
!  reserved but is not position dependant
literal BJL$M_HEADONLY = %X'1';
macro BJL$V_HEADONLY = 0,0,1,0 %;       !  NOBACKUP was set when file was saved
literal BJL$K_FILE_LEN = 254;           !  maximum length of record 
literal BJL$C_FILE_LEN = 254;           !  maximum length of record 
macro BJL$T_FILENAME = 0,0,0,0 %;
literal BJL$S_FILENAME = 250;           !  file name (variable length) 
!  Ref.  FLAG_BITS and NAMESTR_SEG_FLAGS
literal BCK_DEF_JOURBUFF_SIZE = 512;    !  default journal buffer size
