Loading...
Select Version
This element contains the definitions for the construction of special records (record type 163,164, see section "Format of the secondary record (record type 163)" and section "Format of the attribute record (record type 164)")
#ifdef WAS_LMSREC #else /*********************************************************************/ /* L M S R E C ****/ /*********************************************************************/ #define WAS_LMSREC #define BLANK4 ' ',' ',' ',' ' #define BLANK8 ' ',' ',' ',' ',' ',' ',' ',' ' #define BLANK18 BLANK8,BLANK8,' ',' ' #define BLANK24 BLANK8,BLANK8,BLANK8 #define BLANK64 BLANK8,BLANK8,BLANK8,BLANK8,BLANK8,BLANK8,BLANK8,BLANK8 #define ZERO4 {'\0','\0','\0','\0'} #define X0_4 '\0','\0','\0','\0' #define X0_8 '\0','\0','\0','\0','\0','\0','\0','\0' #define X0_32 X0_8,X0_8,X0_8,X0_8 /*********************************************************************/ /* RECORD TYPE : 1 6 3 ****/ /*********************************************************************/ struct lmsc_rec163 { short rec_len; /* record length */ char filler1; /* reserved */ char rec_type; /* identification of plam record */ char sec_name[32]; /* secondary name */ char sec_attr[8]; /* secondary attribute */ /* '0 ' : - CSECT */ /* '1 ' : - ENTRY */ char format_ind; /* format indicator */ char sec_name_long[1]; /* long secondary name: - 32K-45 */ }; #define LMSC_REC163_PROTO \ {\ 0, /* record length */\ '\0', /* reserved */\ 163, /* identification of plam record */\ {BLANK24,BLANK8}, /* secondary name */\ {BLANK8}, /* secondary attribute */\ 0, /* format indicator */\ ' ' /* long secondary name: - 32K-45 */\ } static struct lmsc_rec163 lmsc_rec163_proto = LMSC_REC163_PROTO; /*********************************************************************/ /* RECORD TYPE : 1 6 4 ****/ /*********************************************************************/ #define LMSREC_AIXMAX 30 /* max nr. of aix entries */ struct lmsc_rec164 { short rec_len; /* record length */ char filler1; /* reserved */ char rec_type; /* identification of plam record */ char version; /* version of specified PLAM record*/ char rec_num; /* record describes format of PLAM record of record type with specified number */ char filename[54]; /* file name taken from FCB */ char fcb; /* fcbtype (SET/RESET) */ char share; /* share (SET,RESET) */ char size[3]; /* file size < 32GB */ char sec_alloc[2]; /* secondary allocation (byte alig)*/ char recform; /* recform (SET,RESET) */ short blksize; /* blksize */ short recsize; /* recsize */ short keypos; /* keypos */ char keylen; /* keylen */ char pad; /* pad */ char loglen; /* loglen */ char vallen; /* vallen */ char key_ind; /* does key exists in member */ char cfid[4]; /* cfid */ char blkctrl_ind; /* BLKCTRL-indicator */ char ioperf_ind; /* IOPERF-indicator */ char iousage_ind; /* IOusage-indicator */ char catalog_ind; /* catalog-indicator */ char filler2; /* reserved, must be 0 */ short a_ind_count; /* alternate index count */ char filesize_32[4]; /* file size >= 32GB, filesize must be X'FFFFFF' */ char lbp[2]; /* last byte pointer */ char lbpv; /* last byte pointer valid */ char nccs[8]; /* net-coded-char-set */ char filler3[75]; /* reserved, must be 0 */ struct { char keyname[8]; /* keyname */ short keypos; /* keypos */ char keylen; /* keylen */ char indicator; /* dupkey=yes/no */ } aix[LMSREC_AIXMAX]; }; #define LMSC_AIX_PROTO {X0_8,0,'\0','\0'} #define LMSC_REC164_PROTO \ {\ 540, /* record length */\ '\0', /* reserved */\ 164, /* identification of plam record */\ '\2', /* version of specified PLAM record*/\ '\1', /* record describes format of \ PLAM record of record type \ with specified number */\ {BLANK18,BLANK18,BLANK18}, /* file name taken from FCB */\ '\0', /* fcbtype (SET/RESET) */\ '\0', /* share (SET,RESET) */\ {'\0','\0','\0'}, /* file size < 32GB */\ {'\0','\0'}, /* secondary allocation */\ '\0', /* recform (SET,RESET) */\ 0, /* blksize */\ 0, /* recsize */\ 0, /* keypos */\ '\0', /* keylen */\ '\0', /* pad */\ '\0', /* loglen */\ '\0', /* vallen */\ ' ', /* does key exists in member */\ ZERO4, /* cfid */\ '\0', /* BLKCTRL-indicator */\ '\0', /* IOPERF-indicator */\ '\0', /* IOusage-indicator */\ '\0', /* catalog-indicator */\ '\0', /* reserved, must be 0 */\ 0, /* alternate index count */\ {'\0','\0','\0','\0'}, /* file size >= 32GB */\ {'\0','\0'}, /* lbp = 0 */\ '\0', /* lbpv not set */\ {BLANK8}, /* netccsn */\ {X0_32,X0_32,X0_8, /* reserved, must be 0 */\ '\0','\0','\0'},\ {LMSC_AIX_PROTO,LMSC_AIX_PROTO,LMSC_AIX_PROTO, \ LMSC_AIX_PROTO,LMSC_AIX_PROTO, \ LMSC_AIX_PROTO,LMSC_AIX_PROTO,LMSC_AIX_PROTO, \ LMSC_AIX_PROTO,LMSC_AIX_PROTO, \ LMSC_AIX_PROTO,LMSC_AIX_PROTO,LMSC_AIX_PROTO, \ LMSC_AIX_PROTO,LMSC_AIX_PROTO, \ LMSC_AIX_PROTO,LMSC_AIX_PROTO,LMSC_AIX_PROTO, \ LMSC_AIX_PROTO,LMSC_AIX_PROTO, \ LMSC_AIX_PROTO,LMSC_AIX_PROTO,LMSC_AIX_PROTO, \ LMSC_AIX_PROTO,LMSC_AIX_PROTO, \ LMSC_AIX_PROTO,LMSC_AIX_PROTO,LMSC_AIX_PROTO, \ LMSC_AIX_PROTO,LMSC_AIX_PROTO} \ } static struct lmsc_rec164 lmsc_rec164_proto = LMSC_REC164_PROTO; /* -------------- fcbtype (SET/RESET) -------------------------------*/ #define LMSREC_FTYPES '\xC0' /* R SAM */ #define LMSREC_FTYPEI '\x40' /* S ISAM */ #define LMSREC_FTYPEP '\xC0' /* S PAM */ #define LMSREC_VMIN '\x01' /* R VALPROP MIN. FUNCT. */ #define LMSREC_VMAX '\x01' /* S VALPROP MAX. FUNCT. */ /*--------------- share (SET,RESET) -------------------------------- */ #define LMSREC_SHAREY '\x04' /* S YES */ #define LMSREC_ACCESS '\x08' /* S ACCESS=READ */ #define LMSREC_SHCCNO '\xC0' /* R NO CONTROL CHAR */ #define LMSREC_SHCCM '\x40' /* S MACHINE CODE CONTROL CHAR */ #define LMSREC_SHCCA '\xC0' /* S ASA CONTROL CHAR */ /* -------------- recform (SET,RESET) ------------------------------ */ #define LMSREC_RECFF '\x04' /* S FIXED */ #define LMSREC_RECFV '\x02' /* S VARIABLE */ #define LMSREC_RECFU '\x06' /* S UNDEFINED */ /* -------------- does key exists in member ? ---------------------- */ #define LMSREC_KEYY 'Y' /* YES */ #define LMSREC_KEYN 'N' /* NO */ /* -------------- BLKCTRL-indicator -------------------------------- */ #define LMSREC_CTRLN '\x80' /* S BLKCTRL=NO */ #define LMSREC_CTRLP '\x40' /* S BLKCTRL=PAMKEY */ #define LMSREC_CTRLD '\x20' /* S BLKCTRL=DATA */ #define LMSREC_CTRL0 '\x10' /* S BLKCTRL=NULL */ #define LMSREC_CTRLR '\xF0' /* R BLKCTRL=NOT SPECIFIED */ #define LMSREC_BCF4K '\x08' /* S BLOCK CONTROL FIELD 4K */ #define LMSREC_BCF2K '\x04' /* S BLOCK CONTROL FIELD 2K */ #define LMSREC_CTRLU '\x03' /* R -- RESERVED, MUST BE 0 -- */ /* -------------- IOPERF-indicator --------------------------------- */ #define LMSREC_PFVH '\x03' /* S IOPERF=VERY-HIGH */ #define LMSREC_PFHI '\x02' /* S IOPERF=HIGH */ #define LMSREC_PFST '\x01' /* S IOPERF=STD */ #define LMSREC_PFNS '\x00' /* S IOPERF NOT SPECIFIED */ /* -------------- IOUSAGE-indicator -------------------------------- */ #define LMSREC_USRW '\x03' /* S IOUSAGE=RDWRT */ #define LMSREC_USWR '\x02' /* S IOUSAGE=WRITE */ #define LMSREC_USRD '\x01' /* S IOUSAGE=READ */ #define LMSREC_USNS '\x00' /* S IOUSAGE NOT SPECIFIED */ /* -------------- CATALOG-indicator (IDCEX) ------------------------ */ #define LMSREC_ESPEC '\x08' /* S PLAM FILE INDICATOR */ /* -------------- BLKCTRL-indicator -------------------------------- */ #define LMSREC_AIXIDK '\x80' /* S DUPKEY = YES */ /* R DUPKEY = NO */ /* ----------------------------------------------------------------- */ #endif