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