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