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

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