Loading...
Select Version
#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