Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Include-Element LMSREC.H

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