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 LMS.H

#ifdef WAS_LMS
#else
 
#ifdef __cplusplus
extern "C" {
#endif
 
/*********************************************************************/
/*                          L M S U P                             ****/
/*********************************************************************/
 
  
 
#define WAS_LMS
#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_8    '\0','\0','\0','\0','\0','\0','\0','\0'
#define X0_32   X0_8,X0_8,X0_8,X0_8
 
/*********************************************************************/
/*                  Function Control Block                        ****/
/*********************************************************************/
struct lmsc_cb
{
       char  scbvers[2];        /* interface-version              in */
       char  function;          /* function-code                  in */
       char  subcode;           /* function-subcode               in */
       int   acc;               /* up access-identification    inout */
       char  retcode;           /* returncode                    out */
       char  filler1;           /* reserved                          */
       short lms_msg;           /* lms message-code              out */
       short dms_msg;           /* dms-message-code              out */
       short plam_msg;          /* plam-message-code             out */
       char  lmsvers[12];       /* version of lms                out */
       int   filler2;           /* reserved                          */
       /********  lms  parameters   **********************************/
       char  destroy;           /* element-destroy-option      inout */
       char  fcb;               /* fcbtype for file            inout */
       char  rkey;              /* key-handling                inout */
       char  overwrite;         /* overwrite-option            inout */
       short column;            /* lms parameter: column       inout */
       short line;              /* lms parameter: line         inout */
       char  prot_ind;          /* lms par: protection ind.    inout */
       char  attr;              /* copylib with attributes     inout */
       char  info;              /* record types for ....       inout */
       char  ld_return;         /* DMS-filename in ld          inout */
       char  filler3[4];        /* reserved                          */
};
#define LMSC_CB_PROTO \
{\
       {'\xF0','\xF4'},                         /* scbvers           */\
       '\x01',                                  /* function          */\
       ' ',                                     /* subcode           */\
       -1,                                      /* acc               */\
       '\0',                                    /* retcode           */\
       '\0',                                    /* filler1           */\
       0,                                       /* lms_msg           */\
       0,                                       /* dms_msg           */\
       0,                                       /* plam_msg          */\
       {BLANK8,BLANK4},                         /* lmsvers           */\
       0,                                       /* filler2           */\
       ' ',                                     /* destroy           */\
       ' ',                                     /* fcbtype           */\
       ' ',                                     /* rkey              */\
       ' ',                                     /* overwrite         */\
       0,                                       /* column            */\
       0,                                       /* line              */\
       ' ',                                     /* prot_ind          */\
       ' ',                                     /* attr              */\
       ' ',                                     /* rec_range         */\
       ' ',                                     /* ld_return         */\
       {BLANK4}                                 /* filler3           */\
}
static struct lmsc_cb lmsc_cb_proto = LMSC_CB_PROTO;
 
 
 
/*********************************************************************/
/*                     Element Attributes                         ****/
/*********************************************************************/
struct lmsc_ea
{
       char  user_date[14];    /* date from user                  in */
       char  user_time[8];     /* time from user hh:mm:ss         in */
       char  ccs_name[8];      /* ccs  from user                  in */
                               /*   V03.00  */
       char  hold_state;       /* hold flag: '-': free            in */
                               /*            'H': in hold            */
                               /*            ' ': unchange           */
       char  filler1[8];       /* reserved (holder userid)        in */
       char  mod_date_ind;     /* modification date indicator     in */
                               /*            'O': old                */
                               /*            'S': system date        */
       char  filler2[56];      /* reserved                        in */
};
#define LMSC_EA_PROTO \
{\
       {BLANK8,BLANK4,' ',' '},                 /* user-date         */\
       {BLANK8},                                /* user-time         */\
       {BLANK8},                                /* ccs-name          */\
       ' ',                                     /* hold-state        */\
       {BLANK8},                                /* reserved (holder) */\
       'O',                                     /* mod-dat-ind       */\
       {BLANK24,BLANK24,BLANK8}                 /* reserved          */\
}
static struct lmsc_ea lmsc_ea_proto = LMSC_EA_PROTO;
 
 
 
/*********************************************************************/
/*                     Element Description                        ****/
/*********************************************************************/
struct lmsc_ed
{
       char  typ[8];           /* typ of element                  in */
       char  name[64];         /* name of element                 in */
       char  version[24];      /* version fo element              in */
       char  store_form;       /* storage form                    in */
       char  user_date[14];    /* date from user                  in */
       char  user_time[8];     /* time from user hh:mm:ss         in */
};
#define LMSC_ED_PROTO \
{\
       {BLANK8},                                /* typ               */\
       {BLANK64},                               /* name              */\
       {BLANK8,BLANK8,BLANK8},                  /* version           */\
       'V',                                     /* stroage-form      */\
       {BLANK8,BLANK4,' ',' '},                 /* user-date         */\
       {BLANK8}                                 /* user-time         */\
}
static struct lmsc_ed lmsc_ed_proto = LMSC_ED_PROTO;
 
 
 
/*********************************************************************/
/*                     Element Information                        ****/
/*********************************************************************/
struct lmsc_ei
{
       char  typ[8];           /* type of element                out */
       char  name[64];         /* name of element                out */
       char  version[24];      /* version fo element             out */
       char  store_form;       /* storage form                   out */
       char  user_date[14];    /* date from user                 out */
       char  user_time[8];     /* time from user                 out */
       char  crea_date[14];    /* creation date of element       out */
       char  crea_time[8];     /* creation time                  out */
       char  modif_date[14];   /* date of last modfication       out */
       char  modif_time[8];    /* time of last modifcation       out */
       char  sec_name[32];     /* secondary name                 out */
       char  sec_attr[8];      /* attribute of secondary name    out */
       char  filler1[5];       /* reserved                           */
       /*********    protection attributes   *************************/
       char  p_tind_read;      /*  prot. type indi. for read     out */
       char  p_read_own;       /*  read indicator for owner      out */
       char  p_read_grp;       /*  read indicator for group      out */
       char  p_read_oth;       /*  read indicator for others     out */
       char  p_read_pind;      /*  read password indicator       out */
       char  filler2[4];       /*  reserved                          */
       char  p_tind_writ;      /*  prot. type indi. for write    out */
       char  p_writ_own;       /*  write indicator for owner     out */
       char  p_writ_grp;       /*  write indicator for group     out */
       char  p_writ_oth;       /*  write indicator for others    out */
       char  p_writ_pind;      /*  write password indicator      out */
       char  filler3[4];       /*  reserved                          */
       char  p_tind_exec;      /*  prot. type indi. for exec     out */
       char  p_exec_own;       /*  exec indicator for owner      out */
       char  p_exec_grp;       /*  exec indicator for group      out */
       char  p_exec_oth;       /*  exec indicator for others     out */
       char  p_exec_pind;      /*  exec password indicator       out */
       char  filler4[4];       /*  reserved                          */
       char  p_read_guard[18]; /*  read guard                    out */
       char  p_writ_guard[18]; /*  write guard                   out */
       char  p_exec_guard[18]; /*  exec guard                    out */
       char  ccs_name[8];      /*  ccs-name                      out */
                               /*   V03.00:  source code control     */
       char  p_tind_hold;      /*  prot. type indi. for holder   out */
       char  p_hold_own;       /*  holder indicator for owner    out */
       char  p_hold_grp;       /*  holder indicator for group    out */
       char  p_hold_oth;       /*  holder indicator for others   out */
       char  p_hold_pind;      /*  holder password indicator     out */
       char  filler5[4];       /*  reserved                          */
       char  p_hold_guard[18]; /*  holder guard                  out */
                               /*                                    */
       char  hold_state;       /* hold flag: '-': free           out */
                               /*            'H': in hold            */
       char  holder[8];        /* holder userid                  out */
       char  access_date[14];  /* access date                    out */
       char  access_time[ 8];  /* access time                    out */
       char  filler8[ 1];      /*  reserved                          */
       unsigned int element_size;/*element size                  out */
       char  destroy_data;     /*  destroy data                  out */
       char  filler9[39];      /*  reserved                          */
};
#define LMSC_EI_PROTO \
{\
       {BLANK8},                                /* typ               */\
       {BLANK64},                               /* name              */\
       {BLANK8,BLANK8,BLANK8},                  /* version           */\
       ' ',                                     /* storage form      */\
       {BLANK8,BLANK4,' ',' '},                 /* user date         */\
       {BLANK8},                                /* user time         */\
       {BLANK8,BLANK4,' ',' '},                 /* creation date     */\
       {BLANK8},                                /* creation time     */\
       {BLANK8,BLANK4,' ',' '},                 /* modification date */\
       {BLANK8},                                /* modification time */\
       {BLANK8,BLANK8,BLANK8,BLANK8},           /* secondary name    */\
       {BLANK8},                                /* secondary attr    */\
       {BLANK4,' '},                            /* reserved          */\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for read     */\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for write    */\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for exec     */\
       {BLANK18},                               /* read guard        */\
       {BLANK18},                               /* write guard       */\
       {BLANK18},                               /* exec guard        */\
       {BLANK8},                                /* ccs-name          */\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for holder   */\
       {BLANK18},                               /* holder guard      */\
       ' ',                                     /* hold-state        */\
       {BLANK8},                                /* holder            */\
       {BLANK8,BLANK4,' ',' '},                 /* access date       */\
       {BLANK8},                                /* access time       */\
       ' ',                                     /* reserved          */\
       0,                                       /* element size      */\
       ' ',                                     /* destroy data      */\
       {BLANK18,BLANK18,' ',' ',' '}            /* reserved          */\
}
static struct lmsc_ei lmsc_ei_proto = LMSC_EI_PROTO;
 
 
 
/*********************************************************************/
/*                     Element Mask                               ****/
/*********************************************************************/
struct lmsc_em
{
       char  typ[20];          /* type of element                 in */
       char  name[132];        /* name of element                 in */
       char  version[52];      /* version of element              in */
       char  store_form[6];    /* storage form                    in */
       char  user_date[32];    /* date from user                  in */
       char  user_time[20];    /* time from user hh:mm:ss         in */
       char  crea_date[32];    /* creation date of element        in */
       char  crea_time[20];    /* creation time of element        in */
       char  modif_date[32];   /* date of last modification       in */
       char  modif_time[20];   /* time of last modification       in */
       char  sec_name[68];     /* secondary name                  in */
       char  sec_attr[20];     /* attribute of secondary name     in */
       char  filler1[14];      /* reserved                           */
       /*********    protection attributes   *************************/
       char  p_tind_read;      /*  prot. type indi. for read      in */
       char  p_read_own;       /*  read indicator for owner       in */
       char  p_read_grp;       /*  read indicator for group       in */
       char  p_read_oth;       /*  read indicator for others      in */
       char  p_read_pind;      /*  read password indicator        in */
       char  filler2[4];       /*  reserved                          */
       char  p_tind_writ;      /*  prot. type indi. for write     in */
       char  p_writ_own;       /*  write indicator for owner      in */
       char  p_writ_grp;       /*  write indicator for group      in */
       char  p_writ_oth;       /*  write indicator for others     in */
       char  p_writ_pind;      /*  write password indicator       in */
       char  filler3[4];       /*  reserved                          */
       char  p_tind_exec;      /*  prot. type indi. for exec      in */
       char  p_exec_own;       /*  exec indicator for owner       in */
       char  p_exec_grp;       /*  exec indicator for group       in */
       char  p_exec_oth;       /*  exec indicator for others      in */
       char  p_exec_pind;      /*  exec password indicator        in */
       char  filler4[4];       /*  reserved                          */
       char  p_read_guard[40]; /*  read guard                     in */
       char  p_writ_guard[40]; /*  write guard                    in */
       char  p_exec_guard[40]; /*  exec guard                     in */
       char  ccs_name[20];     /*  ccs-name                       in */
                               /*   V03.00:  source code control     */
       char  p_tind_hold;      /*  prot. type indi. for holder    in */
       char  p_hold_own;       /*  holder indicator for owner     in */
       char  p_hold_grp;       /*  holder indicator for group     in */
       char  p_hold_oth;       /*  holder indicator for others    in */
       char  p_hold_pind;      /*  holder password indicator      in */
       char  filler5[4];       /*  reserved                          */
       char  p_hold_guard[40]; /*  holder guard                   in */
                               /*                                    */
       char  hold_state;       /* hold flag: '-': free            in */
                               /*            'H': inhold             */
                               /*            ' ': any                */
       char  holder[20];       /* holder userid                   in */
       char  access_date[32];  /* access date                     in */
       char  access_time[20];  /* access time                     in */
       char  filler8[ 3];      /* reserved                           */
       unsigned int e_size_min;/* min element size                in */
       unsigned int e_size_max;/* max element size                in */
       char  filler9[64];      /* reserved                           */
};
#define LMSC_EM_PROTO \
{\
       {BLANK8,BLANK8,BLANK4},                  /* type              */\
       {BLANK64,BLANK64,BLANK4},                /* name              */\
       {BLANK8,BLANK8,BLANK8,BLANK8,BLANK8,BLANK8,BLANK4}, /* vers   */\
       {BLANK4,' ',' '},                        /* storage form      */\
       {BLANK8,BLANK8,BLANK8,BLANK8},           /* user date         */\
       {BLANK8,BLANK8,BLANK4},                  /* user time         */\
       {BLANK8,BLANK8,BLANK8,BLANK8},           /* creation date     */\
       {BLANK8,BLANK8,BLANK4},                  /* creation time     */\
       {BLANK8,BLANK8,BLANK8,BLANK8},           /* modification date */\
       {BLANK8,BLANK8,BLANK4},                  /* modification time */\
       {BLANK64,BLANK4},                        /* secondary name    */\
       {BLANK8,BLANK8,BLANK4},                  /* secondary attr    */\
       {BLANK8,BLANK4,' ',' '},                 /* reserved          */\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for read     */\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for write    */\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for exec     */\
       {BLANK18,BLANK18,BLANK4},                /* read guard        */\
       {BLANK18,BLANK18,BLANK4},                /* write guard       */\
       {BLANK18,BLANK18,BLANK4},                /* exec guard        */\
       {BLANK8,BLANK8,BLANK4},                  /* ccs-name          */\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for holder   */\
       {BLANK18,BLANK18,BLANK4},                /* holder guard      */\
       ' ',                                     /* hold-state        */\
       {BLANK18,' ',' '},                       /* holder            */\
       {BLANK8,BLANK8,BLANK8,BLANK8},           /* access date       */\
       {BLANK8,BLANK8,BLANK4},                  /* access time       */\
       {' ',' ',' '},                           /* reserved          */\
       0,                                       /* min element size  */\
       0xFFFFFFFF,                              /* max element size  */\
       {BLANK64}                                /* reserved          */\
}
static struct lmsc_em lmsc_em_proto = LMSC_EM_PROTO;
 
 
/*********************************************************************/
/*                       File Description                         ****/
/*********************************************************************/
struct lmsc_fd
{
       char  password[4];       /* password                       in */
       char  link[8];           /* linkname for file              in */
       char  name[54];          /* filename                    inout */
};
#define LMSC_FD_PROTO \
{\
       ZERO4,                                   /* password          */\
       {BLANK8},                                /* linkname          */\
       {BLANK8,BLANK8,BLANK8,BLANK8,BLANK8,BLANK8,BLANK4,' ',' '}  \
}
static struct lmsc_fd lmsc_fd_proto = LMSC_FD_PROTO;
 
 
 
/*********************************************************************/
/*                     Library Attributes                         ****/
/*********************************************************************/
struct lmsc_la
{
       char  p_tind_admin;     /*  prot. type indi. for admin     in */
       char  p_admin_own;      /*  admin indicator for owner      in */
       char  p_admin_grp;      /*  admin indicator for group      in */
       char  p_admin_oth;      /*  admin indicator for others     in */
       char  p_admin_pind;     /*  admin password indicator       in */
       char  p_admin_pswd[4];  /*  admin password                 in */
       char  p_admin_guard[18]; /*  admin guard                   in */
                               /*   V03.00  */
       char  store_form;       /*  ind. for holder-authorization  in */
                               /*  'S': STD   fully or delta stored  */
                               /*  'V': FULL  all el. fully stored   */
                               /*  'D': DELTA all el. fully stored   */
       char  write_ctrl;       /*  write-control for library      in */
                               /*  'A': activated                    */
                               /*  'D': deactivated                  */
       char  access_date;      /*  access date                    in */
                               /*  'N': NONE (no KEEP)               */
                               /*  'K': KEEP                         */
       char  filler2[34];      /*  reserved                          */
};
#define LMSC_LA_PROTO \
{\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for Adm   in */\
       {BLANK18},                               /* admin guard       */\
       ' ',' ',' ',                             /* store-form/wr-ctrl*/\
       {BLANK24,BLANK8,' ',' '}                 /* reserved          */\
}
static struct lmsc_la lmsc_la_proto = LMSC_LA_PROTO;
 
 
 
/*********************************************************************/
/*                     Library Description                        ****/
/*********************************************************************/
struct lmsc_ld
{
       char  password[4];       /* password for library           in */
       char  link[8];           /* linkname                       in */
       char  reserv1[8];        /*                                   */
       short max_name_len;      /* max.length of libary_name      in */
       char  name[54];          /* name of libary              inout */
};
#define LMSC_LD_PROTO \
{\
       ZERO4,                                   /* password          */\
       {BLANK8},                                /* linkname          */\
       {'\0','\0','\0','\0','\0','\0','\0','\0'},/* reserv1          */\
       (short)54,                               /* max length name   */\
       {BLANK8,BLANK8,BLANK8,BLANK8,BLANK8,BLANK8,BLANK4,' ',' '}  \
}
static struct lmsc_ld lmsc_ld_proto = LMSC_LD_PROTO;
 
 
 
/*********************************************************************/
/*                     Library Information                        ****/
/*********************************************************************/
struct lmsc_li
{
       char  p_tind_admin;     /*  prot. type indi. for admin    out */
       char  p_admin_own;      /*  admin indicator for owner     out */
       char  p_admin_grp;      /*  admin indicator for group     out */
       char  p_admin_oth;      /*  admin indicator for others    out */
       char  p_admin_pind;     /*  admin password indicator      out */
       char  filler1[4];       /*  reserved                          */
       char  p_admin_guard[18]; /*  admin guard                      */
       char  store_form;       /*  ind. for holder-authorization out */
                               /*  'S': STD   fully or delta stored  */
                               /*  'V': FULL  all el. fully stored   */
                               /*  'D': DELTA all el. fully stored   */
       char  write_ctrl;       /*  write-control for library     out */
                               /*  'A': activated                    */
                               /*  'D': deactivated                  */
       char  access_date;      /*  access date                   out */
                               /*  'N': NONE (no KEEP)               */
                               /*  'K': KEEP                         */
       char  filler2[24];      /* reserved                           */
       char  lib_form;         /*  library format (NK2/NK4)      out */
                               /*    '2' : NK2 library format        */
                               /*    '4' : NK4 library format        */
       char  upam_prot;        /*  UPAM protected (yes/no)       out */
                               /*    'Y' : lib is UPAM protected     */
                               /*    'N' : lib is not UPAM protected */
       int   file_size;        /*  file size                     out */
       int   free_size;        /*  free size                     out */
       /*********    protection attributes   *************************/
       char  p_tind_read;      /*  prot. type indi. for read     out */
       char  p_read_own;       /*  read indicator for owner      out */
       char  p_read_grp;       /*  read indicator for group      out */
       char  p_read_oth;       /*  read indicator for others     out */
       char  p_read_pind;      /*  read password indicator       out */
       char  filler4[4];       /*  reserved                          */
       char  p_tind_writ;      /*  prot. type indi. for write    out */
       char  p_writ_own;       /*  write indicator for owner     out */
       char  p_writ_grp;       /*  write indicator for group     out */
       char  p_writ_oth;       /*  write indicator for others    out */
       char  p_writ_pind;      /*  write password indicator      out */
       char  filler5[4];       /*  reserved                          */
       char  p_tind_exec;      /*  prot. type indi. for exec     out */
       char  p_exec_own;       /*  exec indicator for owner      out */
       char  p_exec_grp;       /*  exec indicator for group      out */
       char  p_exec_oth;       /*  exec indicator for others     out */
       char  p_exec_pind;      /*  exec password indicator       out */
       char  filler6[4];       /*  reserved                          */
       char  p_read_guard[18]; /*  read guard                    out */
       char  p_writ_guard[18]; /*  write guard                   out */
       char  p_exec_guard[18]; /*  exec guard                    out */
                               /*   V03.00  */
       char  p_tind_hold;      /*  prot. type indi. for holder   out */
       char  p_hold_own;       /*  holder indicator for owner    out */
       char  p_hold_grp;       /*  holder indicator for group    out */
       char  p_hold_oth;       /*  holder indicator for others   out */
       char  p_hold_pind;      /*  holder password indicator     out */
       char  filler7[4];       /*  reserved                          */
       char  p_hold_guard[18]; /*  holder guard                  out */
       char  filler8[68];      /*  reserved                          */
};
#define LMSC_LI_PROTO \
{\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for admin    */\
       {BLANK18},                               /* admin guard       */\
       ' ',' ',' ',                             /* store-form/wr-ctrl*/\
       {BLANK24},                               /* reserved          */\
       ' ',' ', 0,  0,                          /* fomat + size      */\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for read     */\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for write    */\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for exec     */\
       {BLANK18},                               /* read guard        */\
       {BLANK18},                               /* write guard       */\
       {BLANK18},                               /* exec guard        */\
       ' ',' ',' ',' ',' ',ZERO4,               /* holder            */\
       {BLANK18},                               /* holder guard      */\
       {BLANK64,BLANK4}                         /* reserved          */\
}
static struct lmsc_li lmsc_li_proto = LMSC_LI_PROTO;
 
 
 
/*********************************************************************/
/*                     Protection Attributes                      ****/
/*********************************************************************/
struct lmsc_pa
{
       char  p_tind_read;      /*  prot. type indi. for read      in */
       char  p_read_own;       /*  read indicator for owner       in */
       char  p_read_grp;       /*  read indicator for group       in */
       char  p_read_oth;       /*  read indicator for others      in */
       char  p_read_pind;      /*  read password indicator        in */
       char  p_read_pswd[4];   /*  read password                  in */
       char  p_tind_writ;      /*  prot. type indi. for write     in */
       char  p_writ_own;       /*  write indicator for owner      in */
       char  p_writ_grp;       /*  write indicator for group      in */
       char  p_writ_oth;       /*  write indicator for others     in */
       char  p_writ_pind;      /*  write password indicator       in */
       char  p_writ_pswd[4];   /*  write password                 in */
       char  p_tind_exec;      /*  prot. type indi. for exec      in */
       char  p_exec_own;       /*  exec indicator for owner       in */
       char  p_exec_grp;       /*  exec indicator for group       in */
       char  p_exec_oth;       /*  exec indicator for others      in */
       char  p_exec_pind;      /*  exec password indicator        in */
       char  p_exec_pswd[4];   /*  exec password                  in */
       char  p_read_guard[18]; /*  read guard                     in */
       char  p_writ_guard[18]; /*  write guard                    in */
       char  p_exec_guard[18]; /*  exec guard                     in */
                               /*   V03.00  */
       char  p_tind_hold;      /*  prot. type indi. for holder    in */
       char  p_hold_own;       /*  holder indicator for owner     in */
       char  p_hold_grp;       /*  holder indicator for group     in */
       char  p_hold_oth;       /*  holder indicator for others    in */
       char  p_hold_pind;      /*  holder password indicator      in */
       char  p_hold_pswd[4];   /*  holder password                in */
       char  p_hold_guard[18]; /*  holder guard                   in */
       char  filler1[84];      /*  reserved                          */
};
#define LMSC_PA_PROTO \
{\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for read     */\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for write    */\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for exec     */\
       {BLANK18},                               /* read guard        */\
       {BLANK18},                               /* write guard       */\
       {BLANK18},                               /* exec guard        */\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for holder   */\
       {BLANK18},                               /* holder guard      */\
       {BLANK64,BLANK18,' ',' '}                /* reserved          */\
}
static struct lmsc_pa lmsc_pa_proto = LMSC_PA_PROTO;
 
 
 
/*********************************************************************/
/*                      Record Description                        ****/
/*********************************************************************/
struct lmsc_rd
{
       int   rec_acc_id;        /* element access id           inout */
       int   buffer_len;        /* length of recordbuffer         in */
       int   record_len;        /* length of record            inout */
       char  filler1[3];        /* reserved                          */
       char  record_type;       /* record type                 inout */
       int   record_num;        /* number of record            inout */
       char  filler2[8];        /* reserved                          */
};
#define LMSC_RD_PROTO \
{\
       -1,                                      /* rec_acc_id        */\
       0,                                       /* buffer_len        */\
       0,                                       /* record_len        */\
       {'\0','\0','\0'},                        /* reserv1           */\
       '\x01',                                  /* record_type       */\
       0,                                       /* record_num        */\
       {'\0','\0','\0','\0','\0','\0','\0','\0'} /* reserv2          */\
}
static struct lmsc_rd lmsc_rd_proto = LMSC_RD_PROTO;
 
 
 
/*********************************************************************/
/*                      Type Attributes                           ****/
/*********************************************************************/
struct lmsc_ta
{
       char  convention;        /* type convention                in */
       char  filler1[3];        /* reserved                          */
       char  v_example[24];     /* version example (f. seq)       in */
                               /*   V03.00  */
       char  p_tind_admin;     /*  prot. type indi. for admin     in */
       char  p_admin_own;      /*  admin indicator for owner      in */
       char  p_admin_grp;      /*  admin indicator for group      in */
       char  p_admin_oth;      /*  admin indicator for others     in */
       char  p_admin_pind;     /*  admin password indicator       in */
       char  p_admin_pswd[4];  /*  admin password                 in */
       char  p_admin_guard[18]; /*  admin guard                   in */
                               /*   V03.00  */
       char  store_form;       /*  ind. for holder-authorization  in */
                               /*  'S': STD   fully or delta stored  */
                               /*  'V': FULL  all el. fully stored   */
                               /*  'D': DELTA all el. fully stored   */
       char  write_ctrl;       /*  write-control for type         in */
                               /*  'A': activated                    */
                               /*  'D': deactivated                  */
       char  super_type[8];    /*  super type                     in */
       char  filler2[47];      /*  reserved                          */
};
#define LMSC_TA_PROTO \
{\
       ' ',                                     /* convention        */\
       {' ',' ',' '},                           /* reserved          */\
       {BLANK24},                               /* v_example         */\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for Adm   in */\
       {BLANK18},                               /* admin guard       */\
       ' ',' ',                                 /* store-form/wr-ctrl*/\
       {BLANK8},                                /* super type        */\
       {BLANK24,BLANK18,BLANK4,' '}             /* reserved          */\
}
static struct lmsc_ta lmsc_ta_proto = LMSC_TA_PROTO;
 
 
 
/*********************************************************************/
/*                      Type Description                          ****/
/*********************************************************************/
struct lmsc_td
{
       char  typ[8];            /* element type                   in */
       char  filler1[8];        /* reserved                          */
};
#define LMSC_TD_PROTO \
{\
       {BLANK8},                                /* typ               */\
       {BLANK8}                                 /* reserved          */\
}
static struct lmsc_td lmsc_td_proto = LMSC_TD_PROTO;
 
 
 
/*********************************************************************/
/*                      Type Information                          ****/
/*********************************************************************/
struct lmsc_ti
{
       char  typ[8];            /* element type                  out */
       char  filler1[8];        /* reserved                          */
       char  convention;        /* type convention               out */
       char  filler2[3];        /* reserved                          */
       char  v_example[24];     /* version example (f. seq)      out */
                               /*   V03.00  */
       char  p_tind_admin;     /*  prot. type indi. for admin    out */
       char  p_admin_own;      /*  admin indicator for owner     out */
       char  p_admin_grp;      /*  admin indicator for group     out */
       char  p_admin_oth;      /*  admin indicator for others    out */
       char  p_admin_pind;     /*  admin password indicator      out */
       char  filler3[4];       /*  reserved                          */
       char  p_admin_guard[18]; /*  admin guard                  out */
                               /*   V03.00  */
       char  store_form;       /*  ind. for holder-authorization out */
                               /*  'S': STD   fully or delta stored  */
                               /*  'V': FULL  all el. fully stored   */
                               /*  'D': DELTA all el. fully stored   */
       char  write_ctrl;       /*  write-control for library     out */
                               /*  'A': activated                    */
                               /*  'D': deactivated                  */
       char  super_type[8];    /*  super type                    out */
       char  basis_type[8];    /*  basis type                    out */
       char  filler5[39];      /*  reserved                          */
       /*********    protection attributes   *************************/
       char  p_tind_read;      /*  prot. type indi. for read     out */
       char  p_read_own;       /*  read indicator for owner      out */
       char  p_read_grp;       /*  read indicator for group      out */
       char  p_read_oth;       /*  read indicator for others     out */
       char  p_read_pind;      /*  read password indicator       out */
       char  filler6[4];       /*  reserved                          */
       char  p_tind_writ;      /*  prot. type indi. for write    out */
       char  p_writ_own;       /*  write indicator for owner     out */
       char  p_writ_grp;       /*  write indicator for group     out */
       char  p_writ_oth;       /*  write indicator for others    out */
       char  p_writ_pind;      /*  write password indicator      out */
       char  filler7[4];       /*  reserved                          */
       char  p_tind_exec;      /*  prot. type indi. for exec     out */
       char  p_exec_own;       /*  exec indicator for owner      out */
       char  p_exec_grp;       /*  exec indicator for group      out */
       char  p_exec_oth;       /*  exec indicator for others     out */
       char  p_exec_pind;      /*  exec password indicator       out */
       char  filler8[4];       /*  reserved                          */
       char  p_read_guard[18]; /*  read guard                    out */
       char  p_writ_guard[18]; /*  write guard                   out */
       char  p_exec_guard[18]; /*  exec guard                    out */
       char  p_tind_hold;      /*  prot. type indi. for holder   out */
       char  p_hold_own;       /*  holder indicator for owner    out */
       char  p_hold_grp;       /*  holder indicator for group    out */
       char  p_hold_oth;       /*  holder indicator for others   out */
       char  p_hold_pind;      /*  holder password indicator     out */
       char  filler4[4];       /*  reserved                          */
       char  p_hold_guard[18]; /*  holder guard                  out */
       char  filler9[52];      /*  reserved                          */
};
#define LMSC_TI_PROTO \
{\
       {BLANK8},                                /* typ               */\
       {BLANK8},                                /* reserved          */\
       ' ',                                     /* convention        */\
       {' ',' ',' '},                           /* reserved          */\
       {BLANK24},                               /* v_example         */\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for Admin    */\
       {BLANK18},                               /* admin guard       */\
       ' ',' ',                                 /* store-form/wr-ctrl*/\
       {BLANK8},                                /* super type        */\
       {BLANK8},                                /* basis type        */\
       {BLANK18,BLANK18,' ',' ',' '},           /* reserved          */\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for read     */\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for write    */\
       ' ',' ',' ',' ',' ',ZERO4,               /* prot for exec     */\
       {BLANK18},                               /* read guard        */\
       {BLANK18},                               /* write guard       */\
       {BLANK18},                               /* exec guard        */\
       ' ',' ',' ',' ',' ',ZERO4,               /* holder            */\
       {BLANK18},                               /* holder guard      */\
       {BLANK24,BLANK24,BLANK4}                 /* reserved          */\
}
static struct lmsc_ti lmsc_ti_proto = LMSC_TI_PROTO;
 
 
 
/* -------------- LMS Parameter values ------------------------------*/
#define LMSUP_YES            'Y'   /* yes                            */
#define LMSUP_NO             'N'   /* no                             */
#define LMSUP_NONE           'N'   /* none                           */
#define LMSUP_ANY            ' '   /* any                            */
#define LMSUP_UNCHANGE       ' '   /* unchange                       */
#define LMSUP_SAME           'M'   /* same                           */
#define LMSUP_STD            'S'   /* std                            */
/* -------------- FOR: CBFCB  ---------------------------------------*/
#define LMSUP_ISAM           'I'   /* isam                           */
#define LMSUP_SAM            'Q'   /* sam                            */
#define LMSUP_CATALOG        'C'   /* catalog                        */
/* -------------- FOR: CBOV -----------------------------------------*/
#define LMSUP_EXTEND         'E'   /* extend                         */
#define LMSUP_ONLY           'O'   /* only                           */
#define LMSUP_NAME           'A'   /* name                           */
/* -------------- FOR: INFO      ------------------------------------*/
#define LMSUP_TXT          '\x01'  /* text only                      */
#define LMSUP_COM          '\x02'  /* coment / documentation only    */
/* -------------- functioncodes -------------------------------------*/
#define LMSUP_INIT         '\x01'  /* init                           */
#define LMSUP_END          '\x02'  /* end                            */
#define LMSUP_TOCPRIM      '\x03'  /* tocprim                        */
#define LMSUP_TOCSEC       '\x04'  /* tocsec                         */
#define LMSUP_TOC          '\x05'  /* toc                            */
#define LMSUP_REN          '\x06'  /* ren                            */
#define LMSUP_DEL          '\x07'  /* ddel                           */
#define LMSUP_ADD          '\x08'  /* add                            */
#define LMSUP_SEL          '\x09'  /* sel                            */
#define LMSUP_COPY         '\x0A'  /* copy                           */
#define LMSUP_COPSTRUC     '\x0B'  /* copystr                        */
#define LMSUP_LOCK         '\x0C'  /* lock                           */
#define LMSUP_UNLOCK       '\x0D'  /* unlock                         */
#define LMSUP_OPEN_GET     '\x0E'  /* open get                       */
#define LMSUP_OPEN_PUT     '\x0F'  /* open put                       */
#define LMSUP_OPEN_UPD     '\x10'  /* open upd                       */
#define LMSUP_GET          '\x11'  /* get                            */
#define LMSUP_PUT          '\x12'  /* put                            */
#define LMSUP_CLOSE        '\x13'  /* close                          */
#define LMSUP_LIST         '\x14'  /* list element                   */
#define LMSUP_MOD_EL_PROT  '\x15'  /* modify element protection      */
#define LMSUP_MOD_LIB_A    '\x16'  /* modify library attributes      */
#define LMSUP_SHOW_LIB_A   '\x17'  /* show   library attributes      */
#define LMSUP_MOD_TYP_A    '\x18'  /* modify type attributes         */
#define LMSUP_SHOW_TYP_A   '\x19'  /* show   type attributes         */
#define LMSUP_MOD_EA       '\x1A'  /* modify element attributes      */
#define LMSUP_COPY_LIB     '\x1B'  /* copy  library                  */
#define LMSUP_CLOSE_LIB    '\x1C'  /* close library                  */
#define LMSUP_PROVIDE      '\x1D'  /* provide element                */
#define LMSUP_RETURN       '\x1E'  /* return element                 */
#define LMSUP_GET_SYS_EL   '\x1F'  /* get variable syslmselem        */
#define LMSUP_REORG_LIB    '\x20'  /* reorganize library             */
/* -------------- subcodes ----------------------------------------- */
#define LMSUP_UNUSED         ' '   /* subcode unused (default)       */
#define LMSUP_SHORT          'S'   /* toc short                      */
#define LMSUP_LONG           'L'   /* toc long                       */
#define LMSUP_DIR            'D'   /* direct read                    */
#define LMSUP_SEQ            'S'   /* sequential read                */
#define LMSUP_WRITE          'W'   /* close output element           */
#define LMSUP_RESET          'R'   /* reset output element           */
#define LMSUP_SYM            'S'   /* show element symbolic          */
#define LMSUP_HEX            'H'   /* show element alpha + hex       */
#define LMSUP_INC_PRE        'P'   /* increment with prefix          */
#define LMSUP_INC_BASE       'B'   /* increment with baset           */
#define LMSUP_HIGH_PRE       'H'   /* highest with prefix            */
#define LMSUP_EXTRA          'X'   /* Format-B records allowed       */
/* -------------- returncodes -------------------------------------- */
#define LMSUP_OK           '\0'    /* OK                             */
#define LMSUP_TRUNC        '\x04'  /* REC TRUNC                      */
#define LMSUP_EOF          '\x08'  /* EOF (GET/TOC)                  */
#define LMSUP_LMSERR       '\x0C'  /* LMS ERROR                      */
#define LMSUP_PARERR       '\x14'  /* PARAMETER ERROR                */
#define LMSUP_SEQERR       '\x18'  /* SEQUENCE ERROR                 */
#define LMSUP_INTERR       '\x1C'  /* LMS INTERNAL ERROR             */
/* -------------- storage form ------------------------------------- */
#define LMSUP_FULL           'V'   /* fully stored                   */
#define LMSUP_DELTA          'D'   /* delta stored                   */
/* -------------- conventions  ------------------------------------- */
#define LMSUP_CNONE          'N'   /* none                           */
#define LMSUP_CSEQ           'S'   /* std-sequence                   */
#define LMSUP_CMSEQ          'M'   /* multi-sequence                 */
#define LMSUP_CTREE          'T'   /* std-tree                       */
/* -------------- protection indicators  --------------------------- */
#define LMSUP_PNONE          'N'   /* none                           */
#define LMSUP_PSTD           'Y'   /* standard protection            */
#define LMSUP_PGUARD         'G'   /* protection by guard            */
/* -------------- source code control  ----------------------------- */
#define LMSUP_FREE           '-'   /* free                           */
#define LMSUP_INHOLD         'H'   /* in hold                        */
/* -------------- write control  ----------------------------------- */
#define LMSUP_ACTIV          'A'   /* active                         */
#define LMSUP_DEACTIV        'D'   /* inactive                       */
/* -------------- access date  ------------------------------------- */
#define LMSUP_KEEP           'K'   /* keep access date               */
/* -------------- modification date indicator ---------------------- */
#define LMSUP_OLD            'O'   /* by-source                      */
#define LMSUP_SYS_DATE       'S'   /* new (system date)              */
/* ----------------------------------------------------------------- */
 
#ifdef C_V1
extern void lmsup1 ();
#else
extern void lmsup1( struct lmsc_cb *cb, ...);
#endif
 
 
 
#ifdef __cplusplus
}
#endif
 
#endif