Loading...
Select Version
Dieses Element enthält die Definitionen für den Aufbau spezieller Sätze (Satzart 163, 164, siehe Abschnitt „Aufbau des Sekundärsatzes (Satzart 163)" und Abschnitt „Aufbau des Attributsatzes (Satzart 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