From: SMTP%"rlboyd@rock.concert.net" 9-FEB-1994 15:55:55.94 To: EVERHART CC: Subj: SLMOD part 4/5 From: Bob Boyd X-Disclaimer-1: rock.concert.net is a CONCERT-CONNECT public access host. X-Disclaimer-2: Opinions expressed are not necessarily X-Disclaimer-3: those of MCNC or the CONCERT Network. Message-Id: <9402092051.AA24168@rock.concert.net> Subject: SLMOD part 4/5 To: ADAMSE@LETT.KUN.NL (Hans Adamse), 8004slb@vmsf.csd.mu.edu (Sandy Berger), Everhart@arisia.gce.com (Glenn Everhart), bolson@u.washington.edu (Ed Bolson), jkraft@mccoy.fhcrc.org (John Kraft) Date: Wed, 9 Feb 94 15:51:30 EST X-Mailer: ELM [version 2.3 PL11] -+-+-+-+-+-+-+-+ START OF PART 4 -+-+-+-+-+-+-+-+ X$! Date:`0915-Nov-1990 X$! Change History X$!-------------------------------------------------------------------------- V- X$! 15-Nov-1990`09R.L.Boyd`09Original Version X$! X$! 03-Feb-1994`09R.L.Boyd`09added delete tests, unified error reports X$!`09`09`09`09added tests for disallows X$! X$!-------------------------------------------------------------------------- V- X$! `20 X$! Subroutine(s) X$! X$SUCCESS_FAIL: subroutine X$status_code = p1 X$counter_name = p2 X$test_descrip = 'p3' X$logical_name = p4 X$symbol_name = p5 X$table_name = p6 X$ if table_name.nes.null then $ table_name = "/"+table_name X$if p3.eqs.null then $ test_descrip = test_name X$ 'counter_name' == &'counter_name'+1 X$ if 'status_code' X$ then say f$fao( result_format, 'counter_name',test_descrip,"SUCCEEDED") X$ else say f$fao( result_format, 'counter_name',test_descrip,"FAILED") X$`09slmod_failures == 'slmod_failures'+1 X$`09if logical_name.nes.null then - X$ `09`09show logical 'logical_name'/full'table_name' X$`09if symbol_name.nes.null then - X$`09if f$type('symbol_name').nes.null then - X$`09`09show symbol 'symbol_name' X$ endif X$endsubroutine X$!-------------------------------------------------------------------------- V- X$! X$ set noon X$! X$ who_am_i = f$element(0,";",f$environment("procedure")) ! latest version X$ who_am_i_exactly = f$environment("procedure") ! this very procedure X$ where_am_i = f$parse("a.b;0",who_am_i,,,"syntax_only")-"A.B;0" X$ proc_name = f$parse(who_am_i,,,"name") X$! X$ say= "write sys$output" X$ null = "" X$ lnm = proc_name+"1" X$ lnm2 = proc_name+"2" X$ lnm3 = proc_name+"3" X$ test_privs = "SYSNAM,CMKRNL,GRPNAM,CMEXEC" X$! X$ X$ define slmod_exe 'where_am_i'/process X$ result_format = "Step !SL of test '!AS' !AS" X$ X$! X$ say proc_name,"-I-BEGIN, beginning SLMOD test procedure" X$! X$! Try FOREIGN command interface 1st X$! X$ slmod = "$slmod_exe:slmod" X$! X$! Do some house cleaning before we start X$! X$ if f$trnlnm(lnm,"lnm$job").nes.null`20 X$ then`20 X$`09sho logical 'lnm'/full/job X$`09if f$trnlnm(lnm,"lnm$job",,"supervisor") .nes."" then - X$ `09`09deassign/job`09'lnm' X$`09if f$trnlnm(lnm,"lnm$job",,"user") .nes."" then - X$`09`09deassign/job/user 'lnm' X$`09sho logical 'lnm' X$ endif X$ if f$trnlnm(lnm,"lnm$process").nes.null then $ deassign 'lnm' X$! X$ test_name = "Create/Insert (JOB&PROCESS)(Foreign)" X$ slmod 'lnm'- !/job X`09/output_table=(name=lnm$job)- X`09/name_att=confine/user - X`09a/tran=conc,b/insert/before/log/sym='lnm' X$ status = 'lnm'.eqs."A/TRANSLATION=(CONCEALED),B/NAME=(CONFINE)/USER_MODE"` V20 X$ call success_fail status slmod_insert_count test_name 'lnm' 'lnm' job X$! X$ slmod 'lnm'/input=(name=lnm$job,mode=user)/job/user - X`09c/tran=term,d/tran=conc/insert/before=2- X`09/log/name_att=(no_alias,confine)/symbol='lnm' X$ status = 'lnm'.eqs."A/TRANSLATION=(CONCEALED),C/TRANSLATION=(TERMINAL)"+- X`09",D/TRANSLATION=(CONCEALED),B/NAME=(CONFINE,NO_ALIAS)/USER_MODE"`20 X$ call success_fail status slmod_insert_count test_name 'lnm' 'lnm' JOB`20 X$! X$! Switch to DCL VERB`20 X$! X$ del/sym/local SLMOD X$ if f$type(slmod).nes.null then $ del/sym/global SLMOD X$ set command slmod_exe:slmod X$! X$ test_name = "Create/Insert (JOB&PROCESS)" X$! X$ slmod 'lnm'/input=(name=lnm$job,mode=user)/job/user - X`09a,c/delete/symbol='lnm'/log/before=2 X$ status = 'lnm'.eqs."D/TRANSLATION=(CONCEALED),B/NAME=(NO_ALIAS)/USER_MODE" X$ call success_fail status slmod_insert_count test_name 'lnm' 'lnm' JOB X$! X$ slmod 'lnm'/input_table=(name=lnm$job,mode=user)- X`09/user/output_table=name=lnm$job - X`09c,a/after=2/log/symbol='lnm' X$ status = 'lnm'.eqs."D/TRANSLATION=(CONCEALED),B,C,A/NAME=(NO_ALIAS)/USER_M VODE"`20 X$ call success_fail status slmod_insert_count test_name 'lnm' 'lnm' JOB X$! X$ slmod 'lnm'/log/sym='lnm2'- X`09/input_table=(name=lnm$job,mode=user)- X`09/output=(name=lnm$process,mode=super)- X`09z,y,x/tran=conc/insert/before=2/NAME=CONFINE X$ status = 'lnm2'.eqs."D/TRANSLATION=(CONCEALED),Z,Y,X/TRANSLATION=(CONCEALE VD)"+- X`09",B,C,A/NAME=(CONFINE,NO_ALIAS)/SUPERVISOR_MODE"`20 X$ call success_fail status slmod_insert_count test_name 'lnm' 'lnm2' process X$! X$ slmod 'lnm'/delete/item=(2,4)/input=(name=lnm$process,mode=super)- X`09/log/symbol='lnm2'/name_attributes=noconfine- X`09/output=(name=lnm$process,mode=super) X$ status = 'lnm2'.eqs."D/TRANSLATION=(CONCEALED),Y"+- X`09",B,C,A/NAME=(NO_ALIAS)/SUPERVISOR_MODE"`20 X$ call success_fail status slmod_insert_count test_name 'lnm' 'lnm2' process X$! X$ slmod 'lnm'/delete/item=(3,5)/input=(name=lnm$process,mode=super)- X`09/log/symbol='lnm2'/name_attributes=nono_alias- X`09/output=(name=lnm$process,mode=super) X$ status = 'lnm2'.eqs."D/TRANSLATION=(CONCEALED),Y,C/SUPERVISOR_MODE"`20 X$ call success_fail status slmod_insert_count test_name 'lnm' 'lnm2' process X$! X$ if f$priv("GRPNAM").or.f$priv("SYSNAM").or.f$priv("SETPRV") X$ then`09!`09they have privileges necessary to do priv mode tests X$ save_privs = f$setprv(test_privs) X$! X$ test_name = "Create/Insert (GROUP&SYSTEM)" X$! X$ slmod 'lnm2'-!/input_table=(name=lnm$job,mod=user) X`09/log/sym='lnm2'- X`09/name=no_alias/tran=conc- X`09x/tran=noconc,y/tran=term,z/tran=(noconc,noterm)- X`09/output=(name=lnm$group,mode=executive) X$ status = 'lnm2'.eqs."X,Y/TRANSLATION=(CONCEALED,TERMINAL)"+- X`09",Z/NAME=(NO_ALIAS)/EXECUTIVE_MODE"`20 X$ call success_fail status slmod_insert_count test_name 'lnm2' 'lnm2' group X$! X$ slmod 'lnm2'/input_table=(name=lnm$group,mod=exec)/log/sym='lnm2'- X`09/name=no_alias/tran=conc/after=1- X`09w/tran=(noconc,term),v/tran=term,u/tran=(noconc,noterm)- X`09/output=(name=lnm$system,mode=kernel) X$ status = 'lnm2'.eqs."X,W/TRANSLATION=(TERMINAL)"+- X`09",V/TRANSLATION=(CONCEALED,TERMINAL)"+- X`09",U,Y/TRANSLATION=(CONCEALED,TERMINAL)"+- X`09",Z/NAME=(NO_ALIAS)/KERNEL_MODE"`20 X$ call success_fail status slmod_insert_count test_name 'lnm2' 'lnm2'`20 X$! X$! delete tests X$! X$ test_name = "DELETE from GROUP table" X$! X$ slmod 'lnm2'/group/executive/delete X,Y,Z/sym='lnm2' X$ status = f$trnlnm(lnm2,"LNM$GROUP",,"KERNEL").eqs.null`20 X$ call success_fail status slmod_delete_count test_name 'lnm2' 'lnm2' group X$! X$ test_name = "DELETE from SYSTEM table" X$! X$ slmod 'lnm2'/system/kernel/delete/item=(2,4-5,6-*)/symbol='lnm2' X$ status = 'lnm2'.eqs."X,V/TRANSLATION=(CONCEALED,TERMINAL)"+- X`09"/NAME=(NO_ALIAS)/KERNEL_MODE" X$ call success_fail status slmod_delete_count test_name 'lnm2' 'lnm2' system X$! X$ slmod 'lnm2'/system/kernel/delete=ALL/log/sym='lnm2' X$ status = f$trnlnm(lnm2,"LNM$SYSTEM",,"KERNEL").eqs.null`20 X$ call success_fail status slmod_delete_count test_name 'lnm2' 'lnm2' system X$! X$ save_privs = f$setprv(save_privs) X$ endif`09! privileged mode tests X$! X$! non-privileged delete tests X$! X$ test_name = "DELETE from PROCESS table" X$! X$ slmod 'lnm'/process/supervisor/delete/item=*/sym='lnm3' X$ status = f$trnlnm(lnm,"LNM$PROCESS",,"SUPERVISOR").eqs.null X$ call success_fail status slmod_delete_count test_name 'lnm' 'lnm3' process X$! X$ test_name = "DELETE name from JOB table" X$! X$ slmod 'lnm'/job/user/delete/sym='lnm3' X$ status = f$trnlnm(lnm,"LNM$JOB",,"USER").eqs.null X$ call success_fail status slmod_delete_count test_name 'lnm3' 'lnm3' job X$!`20 X$! Test invalid qualifier combinations X$! X$ test_name = "Invalid Qualifier Combination" X$! X$ slmod 'lnm'/item=*/insert X$ status = .not.$status X$ call success_fail status slmod_invalid_count test_name X$! X$ slmod 'lnm'/before=3/after=4/item=5/delete X$ status = .not.$status X$ call success_fail status slmod_invalid_count test_name X$! X$ slmod 'lnm'/after=4/item=5/delete X$ status = .not.$status X$ call success_fail status slmod_invalid_count test_name X$! X$ slmod 'lnm'/delete=all/noempty_delete X$ status = .not.$status`20 X$ call success_fail status slmod_invalid_count test_name X$! X$ slmod 'lnm'/delete=all junk_equivalence X$ status = .not.$status`20 X$ call success_fail status slmod_invalid_count test_name X$! X$EXIT: X$ say "" X$ say "Results:" X$ if f$type(slmod_failures).nes.null X$ then X$ say "" X$ say "******************************************************************* V" X$ say f$FAO("!AS-F-FAILED, there were !SL failures",proc_name,slmod_failur Ves) X$ say "PLease review the output listing to determine which step(s) failed" X$ say "******************************************************************* V" X$ delete/symbol/global slmod_failures X$ else X$ say "" X$ say "******************************************************************* V" X$ say f$FAO("!AS-I-PASSED, SLMOD passed all of the tests",proc_name) X$ say "******************************************************************* V" X$ endif X$ delete/symbol/global slmod_insert_count X$ delete/symbol/global slmod_delete_count X$ delete/symbol/global slmod_invalid_count X$ exit X$!Last Modified: 4-FEB-1994 12:31:42.76, By: RLB14162`20 $ CALL UNPACK SLMOD_TEST.COM;41 469790835 $ create 'f' XC Last Modified: 15-APR-1991 09:48:59.66, By: RBN`20 Xc* Cli.For - command line interface routines Pat Rankin, May'88 Xc* (adapted for VNews, Apr'90) Xc* i*4 Cli_Present ( label ) Xc* i*4 Cli_Get_Value ( label, result, reslen ) Xc* i*4 Cli_Parse_Command ( tables, verb, prompt ) Xc* i*4 Cli_Get_Number ( key, result ) !`5Bnot used`5D Xc* sub SLMOD_Cli_Init ( ) Xc* X X X INTEGER *4 FUNCTION Cli_Present ( label ) X`09! Call CLI$PRESENT with signalling disabled. X`09implicit none XC input: X`09CHARACTER *(*) label XC functions: X`09INTEGER *4 CLI$PRESENT X`09EXTERNAL LIB$SIG_TO_RET X X`09CALL LIB$ESTABLISH( LIB$SIG_TO_RET) X`09Cli_Present = CLI$PRESENT( label) X`09RETURN X END !of Cli_Present X X X X X INTEGER *4 FUNCTION Cli_Get_Value ( label, result, reslen ) X`09! Call CLI$GET_VALUE with signalling disabled. X`09implicit none XC input: X`09CHARACTER *(*) label XC output: X`09CHARACTER *(*) result X`09INTEGER *2 reslen XC functions: X`09INTEGER *4 CLI$GET_VALUE X`09EXTERNAL LIB$SIG_TO_RET X X`09CALL LIB$ESTABLISH( LIB$SIG_TO_RET) X`09reslen = 0 X`09Cli_Get_Value = CLI$GET_VALUE( label, result, reslen) X`09RETURN X END !of Cli_Get_Value X X X X X INTEGER *4 FUNCTION Cli_Parse_Command ( tables, verb, prompt ) X`09! X`09! Fetch user's command line and parse it. If he used "RUN", X`09! there was no chance to supply one, so prompt for it now. X`09! X`09implicit none XC constant: X`09INCLUDE '($FSCNdef)/nolist' !filescan defs X`09INCLUDE '($CliVERBdef)/nolist' !cli verb defs X*- INCLUDE '($CliSERVdef)/nolist' !cli service defs X`09PARAMETER CLI$K_GETCMD = '00000001'x !get command line XC-------INCLUDE 'f_inc:Dsc.F' !descriptor defs X`09INCLUDE '($DSCdef)/nolist' !descriptor defs X`09STRUCTURE /dsc_d/ !dynamic string descriptor X`09 INTEGER *2 d_len /0/ X`09 BYTE d_typ /DSC$K_DTYPE_T/ !ascii text X`09 BYTE d_cls /DSC$K_CLASS_D/ !dynamic X`09 INTEGER *4 d_adr /0/ X`09END STRUCTURE !dsc_d X`09STRUCTURE /dsc_z/ !unspecified string descriptor X`09 INTEGER *2 d_len /0/ X`09 BYTE d_typ /0/, d_cls /0/ !type & class unspecified X`09 INTEGER *4 d_adr /0/ X`09END STRUCTURE !dsc_d XC------- X`09STRUCTURE /clirq/ !cli request block X`09 BYTE rqtype/0/, rqindx/0/, rqflags/0/, rqstat /0/ X`09 INTEGER *4 %FILL(1) /0/ X`09 RECORD /dsc_z/ rdesc !descriptor initialized to 0's X`09 INTEGER *4 %FILL(3) /3*0/ X`09END STRUCTURE !clirq X`09STRUCTURE /fscn/ !short itemlist for $filescan X`09 INTEGER *2 len /0/, code /0/ X`09 INTEGER *4 adr /0/, end_of_list /0/ X`09END STRUCTURE !fscn XC input: X`09EXTERNAL tables !command tables `5Bset command/obj`5D X`09CHARACTER *(*) verb, prompt !command verb and prompt strings XC local: X`09RECORD /dsc_d/ parse !descriptor for dynamic string X`09RECORD /clirq/ cmd !command interface request block X`09RECORD /fscn/ fscn !item list for $filescan X`09INTEGER *4 sts !return status value XC functions: X`09INTEGER *4 SYS$CLI, CLI$DCL_PARSE X`09EXTERNAL LIB$SIG_TO_RET, LIB$GET_INPUT X X`09CALL LIB$ESTABLISH( LIB$SIG_TO_RET) !suppress error signals X XC get command line X`09cmd.rqtype = CLI$K_GETCMD !request is 'get command line' X`09sts = SYS$CLI( cmd,,) X`09IF ( sts ) THEN !ok => cli available & verb wasn't "RUN" XC invoked via symbol => have command line (which might be empty) XC `5Bmight also be invoked via mcr or dcl; that's ok`5D X`09 IF ( cmd.rqstat .EQ. CLI$K_VERB_MCR ) THEN !strip image name - X`09`09fscn.code = FSCN$_FILESPEC !+ from MCR invocation X`09`09CALL SYS$FILESCAN( cmd.rdesc, fscn,) X`09`09cmd.rdesc.d_len = cmd.rdesc.d_len - fscn.len !shrink size X`09`09cmd.rdesc.d_adr = cmd.rdesc.d_adr + fscn.len !advance ptr X`09 END IF XC prepend verb and parse the command line X`09 CALL STR$CONCAT( parse, verb, ' ', cmd.rdesc) X`09 sts = CLI$DCL_PARSE( parse, tables) X`09ELSE ! RUN (might be "no cli present" `5BCLI$_INVREQTYP`5D) XC invoked via run => get a substitute command line from the user X`09 sts = CLI$DCL_PARSE(, tables, LIB$GET_INPUT, X & LIB$GET_INPUT, prompt) X`09END IF X X`09Cli_Parse_Command = sts X`09RETURN X END !of Cli_Parse_Command X X X X X INTEGER *4 FUNCTION Cli_Get_Number ( key, result ) X`09! X`09! Use CLI routine to obtain a parameter or qualifier value X`09! and convert the resulting string into a binary integer. X`09! X`09implicit none XC input: X`09CHARACTER *(*) key XC output: X`09INTEGER *4 result XC local: X`09CHARACTER *32 value X`09INTEGER *2 ln X`09INTEGER *4 sts XC functions: X`09INTEGER *4 Cli_Get_Value, OTS$CVT_TI_L X X`09result = 0 X`09sts = Cli_Get_Value( key, value, ln) X`09IF ( sts ) sts = OTS$CVT_TI_L( value(:ln), result) X X`09Cli_Get_Number = sts X`09RETURN X END !of Cli_Get_Number X X X X X subroutine SLMOD_Cli_Init ( ) X`09! X`09! Make sure that DCL has parsed our command line. X`09! `5BPatched together from some similar routines; X`09! signal code moved in-line.`5D X`09! X`09implicit none Xc constant: X`09include '($SHRdef)/nolist' !shared message status codes X`09parameter CLI$_SYNTAX = '000310FC'x !cli-f-syntax X`09character *(*) fACILITY_NAME, fACILITY_PROMPT X`09parameter ( fACILITY_NAME = 'SLMOD' ) X`09parameter ( fACILITY_PROMPT = fACILITY_NAME // ' args> ' ) X`09external SLMOD_Cmd !from SET COMMAND/OBJECT Xc local: X`09integer *4 msgvec(0:7) !message vector X`09integer *4 arg_dsc(2) !simplified string descriptor X`09integer *4 sts XC functions: X`09integer *4 Cli_Present, Cli_Parse_Command X`09integer LIB$MATCH_COND X XC check for a parameter or qualifier that isn't part of the RUN verb. X`09sts = Cli_Present( 'HEADER') X XC did we get a syntax error? X`09if ( LIB$MATCH_COND( sts, CLI$_SYNTAX) .gt. 0 ) then XC syntax error indicates we weren't invoked as a native dcl command, XC so we now want to generate a command and parse it X`09 sts = Cli_Parse_Command( SLMOD_Cmd, !command table X & fACILITY_NAME, fACILITY_PROMPT) X X`09 if ( .not. sts ) then XC if there's a problem, give up with error message XC "%SLMOD-F-PARSEFAIL, error parsing SLMOD command" XC "-CLI-W-IVfoo, unrecognized foo - check documentation" X`09`09arg_dsc(1) = LEN( fACILITY_NAME // ' command' ) X`09`09arg_dsc(2) = %LOC( fACILITY_NAME // ' command' ) X X`09`09msgvec(0) = 4 !vector contains 4 longwords XC set primary condition: severity=fatal, facility=non-syste Vm X`09`09msgvec(1) = SHR$_PARSEFAIL .or. '08000004'x X`09`09msgvec(2) = 1 !1 fao arg follows X`09`09msgvec(3) = %LOC(arg_dsc) !(pointer to "SLMOD command") X`09`09msgvec(4) = sts !secondary condition (CLI error) X`09`09msgvec(5) = 0 !dummy entries (just in case) X`09`09msgvec(6) = 0 X`09`09msgvec(7) = 0 X X`09`09call SYS$PUTMSG( msgvec,, fACILITY_NAME,) X`09`09sts = msgvec(1) .or. '10000000'x !set message inhibit bit X`09`09call SYS$EXIT(%VAL(sts)) X`09 end if X`09end if X X`09return X end !of SLMOD_Cli_Init $ CALL UNPACK CLI_FRONT_END.FOR;4 1464011606 $ create 'f' XC Last Modified: 2-FEB-1994 11:12:58.75, By: RLB14162`20 X Xc/*`09CLIMSGDEF - V3.0`09*/ X Xc/* Xc *`09CLI Error Message Code Definitions. Xc */ X X`09parameter`09CLI$_ABVERB =`09'00038008'X X`09parameter`09CLI$_ABKEYW =`09'00038010'X X`09parameter`09CLI$_BUFOVF =`09'00038018'X X`09parameter`09CLI$_COMPLX =`09'00038020'X X`09parameter`09CLI$_DEFOVF =`09'00038028'X X`09parameter`09CLI$_DIRECT =`09'00038030'X X`09parameter`09CLI$_EXPSYN =`09'00038038'X X`09parameter`09CLI$_IMCHNG =`09'00038040'X X`09parameter`09CLI$_INSFPRM =`09'00038048'X X`09parameter`09CLI$_IVCHAR =`09'00038050'X X`09parameter`09CLI$_SPARE =`09'00038058'X X`09parameter`09CLI$_IVKEYW =`09'00038060'X X`09parameter`09CLI$_IVOPER =`09'00038068'X X`09parameter`09CLI$_IVPROT =`09'00038070'X X`09parameter`09CLI$_IVQLOC =`09'00038078'X X`09parameter`09CLI$_IVSYMB =`09'00038080'X X`09parameter`09CLI$_IVVALU =`09'00038088'X X`09parameter`09CLI$_IVVERB =`09'00038090'X X`09parameter`09CLI$_MAXPARM =`09'00038098'X X`09parameter`09CLI$_NOATFIL =`09'000380A0'X X`09parameter`09CLI$_NOCCAT =`09'000380A8'X X`09parameter`09CLI$_NOCOMD =`09'000380B0'X X`09parameter`09CLI$_NOKEYW =`09'000380B8'X X`09parameter`09CLI$_NOLIST =`09'000380C0'X X`09parameter`09CLI$_NOQUAL =`09'000380C8'X X`09parameter`09CLI$_NOVALU =`09'000380D0'X X`09parameter`09CLI$_NOTNEG =`09'000380D8'X X`09parameter`09CLI$_NULFIL =`09'000380E0'X X`09parameter`09CLI$_NUMBER =`09'000380E8'X X`09parameter`09CLI$_ONCOMD =`09'000380F0'X X`09parameter`09CLI$_ONERR =`09'000380F8'X X`09parameter`09CLI$_ONLEVL =`09'00038100'X X`09parameter`09CLI$_ONOVF =`09'00038108'X X`09parameter`09CLI$_PARMDEL =`09'00038110'X X`09parameter`09CLI$_RSLOVF =`09'00038118'X X`09parameter`09CLI$_SKPDAT =`09'00038120'X X`09parameter`09CLI$_STKOVF =`09'00038128'X X`09parameter`09CLI$_SYMDEL =`09'00038130'X X`09parameter`09CLI$_SYMOVF =`09'00038138'X X`09parameter`09CLI$_UNDSYM =`09'00038140'X X`09parameter`09CLI$_USGOTO =`09'00038148'X X`09parameter`09CLI$_VALREQ =`09'00038150'X X`09parameter`09CLI$_ONEVAL =`09'00038158'X X`09parameter`09CLI$_OVRFLW =`09'00038160'X X`09parameter`09CLI$_UNPROQUAL =`09'00038168'X X`09parameter`09CLI$_UNPROPARM =`09'00038170'X X`09parameter`09CLI$_INVKEY =`09'00038178'X X`09parameter`09CLI$_INVRSP =`09'00038180'X X`09parameter`09CLI$_UNDFIL =`09'00038188'X X`09parameter`09CLI$_FILOPN =`09'00038190'X X`09parameter`09CLI$_BADRET =`09'00038198'X X`09parameter`09CLI$_ABSYMD =`09'000381A0'X X`09parameter`09CLI$_INVUIC =`09'000381A8'X X`09parameter`09CLI$_BADTEXT =`09'000381B0'X X`09parameter`09CLI$_ABFNAM =`09'000381B8'X X`09parameter`09CLI$_IVFNAM =`09'000381C0'X X`09parameter`09CLI$_BLKOVRFLOW =`09'000381C8'X X`09parameter`09CLI$_BLKUNDFLOW =`09'000381D0'X X`09parameter`09CLI$_BADBLK =`09'000381D8'X X`09parameter`09CLI$_NOLBLS =`09'000381E0'X X`09parameter`09CLI$_NOCHANGE =`09'000381E8'X X`09parameter`09CLI$_ABSENT =`09'000381F0'X X`09parameter`09CLI$_NEGATED =`09'000381F8'X X`09parameter`09CLI$_INVFILSPE =`09'00038200'X X`09parameter`09CLI$_INVLOGFIL =`09'00038208'X X`09parameter`09CLI$_NOTHEN =`09'00038210'X X`09parameter`09CLI$_SYMTOOLNG =`09'00038218'X X`09parameter`09CLI$_ASTDCL =`09'00038220'X X`09parameter`09CLI$_INVRANGE =`09'00038228'X X`09parameter`09CLI$_LOCNEG =`09'00038230'X X`09parameter`09CLI$_CMDNOTFND =`09'00038238'X X`09parameter`09CLI$_IVQUAL =`09'00038240'X X`09parameter`09CLI$_CMDSEG =`09'00038248'X X`09parameter`09CLI$_NOTIFY =`09'00038250'X X`09parameter`09CLI$_CONFLICT =`09'00038258'X X`09parameter`09CLI$_UNDKEY =`09'00038260'X X`09parameter`09CLI$_ARGREQ =`09'00038268'X X`09parameter`09CLI$_SYMLNG =`09'00038270'X X`09parameter`09CLI$_SYMABR =`09'00038278'X X`09parameter`09CLI$_IVKEYNAM =`09'00038280'X X`09parameter`09CLI$_NOPAREN =`09'00038288'X X`09parameter`09CLI$_IVATIME =`09'00038290'X X`09parameter`09CLI$_IVDTIME =`09'00038298'X X`09parameter`09CLI$_TKNOVF =`09'000382A0'X X`09parameter`09CLI$_CMDFILERR =`09'000382A8'X X`09parameter`09CLI$_CONFQUAL =`09'00038802'X X`09parameter`09CLI$_INVQUAL =`09'0003880A'X X`09parameter`09CLI$_REQPRMABS =`09'00038812'X X`09parameter`09CLI$_INVQUALNUM =`09'0003881A'X X`09parameter`09CLI$_INVREQTYP =`09'00038822'X X`09parameter`09CLI$_NOVALUE =`09'0003882A'X X`09parameter`09CLI$_VALCNVERR =`09'00038832'X X`09parameter`09CLI$_ILLVAL =`09'0003883A'X X`09parameter`09CLI$_NOOPTPRS =`09'00038842'X X`09parameter`09CLI$_CREQUEJOB =`09'0003884A'X X`09parameter`09CLI$_SUBMITERR =`09'00038852'X X`09parameter`09CLI$_DEVALSPL =`09'0003885A'X X`09parameter`09CLI$_DEVNOTSPL =`09'00038862'X X`09parameter`09CLI$_IVDEVTYPE =`09'0003886A'X X`09parameter`09CLI$_IMGFNF =`09'00038872'X X`09parameter`09CLI$_DEVNOTFOR =`09'0003887A'X X`09parameter`09CLI$_PWDNOTVAL =`09'00038882'X X`09parameter`09CLI$_PWDNOTVER =`09'0003888A'X X`09parameter`09CLI$_PWDLOCKED =`09'00038892'X X`09parameter`09CLI$_NOTFR =`09'0003889A'X X`09parameter`09CLI$_PWDSYNTAX =`09'000388A2'X X`09parameter`09CLI$_IMGNAME =`09'000388AA'X X`09parameter`09CLI$_IMAGEFNF =`09'000388B2'X X`09parameter`09CLI$_BADSTRLVL =`09'000388BA'X X`09parameter`09CLI$_REFUSED =`09'000388C2'X X`09parameter`09CLI$_BADCTLMSK =`09'000388CA'X X`09parameter`09CLI$_INVRFM =`09'000388D2'X X`09parameter`09CLI$_NOCLINT =`09'000388DA'X X`09parameter`09CLI$_NOSPAWN =`09'000388E2'X X`09parameter`09CLI$_SPWNIO =`09'000388EA'X X`09parameter`09CLI$_TRMMBX =`09'000388F2'X X`09parameter`09CLI$_STRTOOLNG =`09'000388FA'X X`09parameter`09CLI$_CMDGONE =`09'00038902'X X`09parameter`09CLI$_NOCMDPROC =`09'0003890A'X X`09parameter`09CLI$_INVROUT =`09'00038912'X X`09parameter`09CLI$_OLDTAB =`09'0003891A'X X`09parameter`09CLI$_INVTAB =`09'00038922'X X`09parameter`09CLI$_NOTDISCON =`09'0003892A'X X`09parameter`09CLI$_ENTNF =`09'00038932'X X`09parameter`09CLI$_DEFKEY =`09'0003DDC3'X X`09parameter`09CLI$_DELKEY =`09'0003DDCB'X X`09parameter`09CLI$_SETKEY =`09'0003DDD3'X X`09parameter`09CLI$_SPARE1 =`09'0003DDDB'X X`09parameter`09CLI$_ALLOC =`09'0003DDE3'X X`09parameter`09CLI$_SUPERSEDE =`09'0003DDEB'X X`09parameter`09CLI$_INSPRIV =`09'0003DDF3'X X`09parameter`09CLI$_NODIRCHG =`09'0003DDFB'X X`09parameter`09CLI$_IGNQUAL =`09'0003DE03'X X`09parameter`09CLI$_TABEXIST =`09'0003DE0B'X X`09parameter`09CLI$_TABSUPER =`09'0003DE13'X X`09parameter`09CLI$_TABNOTFND =`09'0003DE1B'X X`09parameter`09CLI$_DELSYM =`09'0003DE23'X X`09parameter`09CLI$_SYMTRUNC =`09'0003DE2B'X X`09parameter`09CLI$_KEYCNV =`09'0003DE33'X X`09parameter`09CLI$_SPAWNED =`09'0003FD01'X X`09parameter`09CLI$_ATTACHED =`09'0003FD09'X X`09parameter`09CLI$_RETURNED =`09'0003FD11'X X`09parameter`09CLI$_PRESENT =`09'0003FD19'X X`09parameter`09CLI$_DEFAULTED =`09'0003FD21'X X`09parameter`09CLI$_CONCAT =`09'0003FD29'X X`09parameter`09CLI$_LOCPRES =`09'0003FD31'X X`09parameter`09CLI$_COMMA =`09'0003FD39'X X`09parameter`09CLI$_OKTAB =`09'0003FD41'X X`09parameter`09CLI$_UPGTAB =`09'0003FD49'X X`09parameter`09CLI$_PROC_ID =`09'0003FFF1'X X`09parameter`09CLI$_QUEJOBCRE =`09'0003FFF9'X X`09parameter`09CLI$_NORMAL =`09'00030001'X X $ CALL UNPACK CLIMSGDEF.INC;1 343904079 $ create 'f' X!Last Modified: 2-FEB-1994 09:55:28.97, By: RLB14162`20 X! X! Command definition for Search LIST Modification image SLMOD X! X! TYPE definitions for various attributes and modes X! X Xdefine TYPE NAME_ATTR X keyword CONFINE, negatable X keyword NO_ALIAS, negatable X Xdefine TYPE TRAN_ATTR X keyword CONCEALED, negatable X keyword TERMINAL, negatable X Xdefine TYPE ACCESS_MODE X keyword USER_MODE,nonnegatable X keyword SUPERVISOR_MODE, DEFAULT,nonnegatable X keyword EXECUTIVE_MODE,nonnegatable X keyword KERNEL_MODE,nonnegatable X Xdefine TYPE DELETE_MODE X keyword ALL,nonnegatable X Xdefine TYPE LNM_TABLE X keyword NAME,nonnegatable X`09DEFAULT, value (DEFAULT=LNM$PROCESS,TYPE=$infile) X keyword MODE,nonnegatable X`09DEFAULT, value (TYPE=ACCESS_MODE) X Xdefine TYPE LNM_IN_TABLE X keyword NAME,nonnegatable X`09value (REQUIRED,TYPE=$infile) X keyword MODE,nonnegatable X`09value (TYPE=ACCESS_MODE), DEFAULT X X! X! Verb definition, if you don't want the synonyms, comment those out X! Xdefine verb SLMOD X synonym sldefine X synonym lnmmod X image slmod_exe:slmod X X! command parameters X X parameter P1, LABEL=Logical_Name, prompt="Log name" X value (REQUIRED,TYPE=$outlog) X parameter P2, LABEL=Equivalence_Name, prompt="Equ name" X value (LIST,TYPE=$infile) X X! Qualifiers that specify where to affect the search list X X qualifier ITEM, nonnegatable X`09value(REQUIRED,LIST) X qualifier AFTER, nonnegatable X`09DEFAULT, value(TYPE=$number,DEFAULT=127) X qualifier BEFORE, nonnegatable X`09value(TYPE=$number,DEFAULT=1) X X! Operation control qualifiers X X qualifier REMOVE, nonnegatable X`09value(LIST,TYPE=DELETE_MODE) X qualifier DELETE, nonnegatable X`09value(LIST,TYPE=DELETE_MODE) X qualifier INSERT, nonnegatable, DEFAULT X X! Logical name table and access qualifiers X X qualifier INPUT_TABLE, nonnegatable X`09value (LIST,REQUIRED,TYPE=lnm_in_table) X qualifier OUTPUT_TABLE, nonnegatable X`09DEFAULT, value (LIST,REQUIRED,TYPE=lnm_table) X X! global logical name table qualifiers X X qualifier JOB, nonnegatable X qualifier PROCESS, nonnegatable X qualifier SYSTEM, nonnegatable X qualifier GROUP, nonnegatable X X! global access mode qualifiers X X qualifier USER_MODE, nonnegatable X qualifier SUPERVISOR_MODE, nonnegatable X qualifier EXECUTIVE_MODE, nonnegatable X qualifier KERNEL_MODE, nonnegatable X X! global/positional name and translation attributes X X qualifier NAME_ATTRIBUTES, nonnegatable X value (LIST,TYPE=NAME_ATTR) X qualifier TRANSLATION_ATTRIBUTES, nonnegatable X value (LIST,TYPE=TRAN_ATTR) X placement=positional X X! If the /DELETE empties the list, then permit delete of the logical name X X qualifier EMPTY_DELETE, negatable, DEFAULT X X! log/nolog controls feedback to sys$output X X qualifier LOG, negatable X X! provide for returning the resulting translation to a local symbol X X qualifier SYMBOL, nonnegatable X`09value (TYPE=$outfile,DEFAULT=SLMOD_SYMBOL) X! X! What Momma don' allow roun' here: X! X! Only 1 global table specifier allowed X! X disallow ( ANY2(PROCESS,JOB,GROUP,SYSTEM) ) X! X! Only 1 global access mode specifier allowed X! X disallow ( ANY2(USER_MODE,SUPERVISOR_MODE,EXECUTIVE_MODE,KERNEL_MODE) ) X! X! only 1 delete specifier X! X disallow (DELETE and REMOVE) X! X! can't delete and insert at the same time X! X disallow (INSERT and (DELETE or REMOVE)) X! X! Item is only permitted with DELETE X! X disallow (ITEM and INSERT) X! X! Do not allow mixing ITEM with BEFORE or AFTER. X! Also don't allow mixing BEFORE with AFTER X! X disallow ((BEFORE and (AFTER or ITEM)) or (AFTER and ITEM)) X! X! can't have it both ways...delete=all can't go with /NOEMPTY_DELETE X! X disallow ( (REMOVE.ALL or DELETE.ALL) and (neg EMPTY_DELETE) ) X! X! No equivalence names allowed when deleting X! X disallow ( (REMOVE.ALL or DELETE.ALL) and (Equivalence_Name) ) $ CALL UNPACK SLMOD.CLD;32 755849046 $ create 'f' X!Last Modified: 2-FEB-1994 09:54:53.63, By: RLB14162`20 X! XModule SLMOD_CMD XIDENT "V01-01" X! X! Command definition for Search LIST Modification image SLMOD X! X! TYPE definitions for various attributes and modes X! Xdefine TYPE NAME_ATTR X keyword CONFINE, negatable X keyword NO_ALIAS, negatable X Xdefine TYPE TRAN_ATTR X keyword CONCEALED, negatable X keyword TERMINAL, negatable X Xdefine TYPE ACCESS_MODE X keyword USER_MODE,nonnegatable X keyword SUPERVISOR_MODE, DEFAULT,nonnegatable X keyword EXECUTIVE_MODE,nonnegatable X keyword KERNEL_MODE,nonnegatable X Xdefine TYPE DELETE_MODE X keyword ALL,nonnegatable X Xdefine TYPE LNM_TABLE X keyword NAME,nonnegatable X`09DEFAULT, value (DEFAULT=LNM$PROCESS,TYPE=$infile) X keyword MODE,nonnegatable X`09DEFAULT, value (TYPE=ACCESS_MODE) X Xdefine TYPE LNM_IN_TABLE X keyword NAME,nonnegatable X`09value (REQUIRED,TYPE=$infile) X keyword MODE,nonnegatable X`09value (TYPE=ACCESS_MODE), DEFAULT X X! X! Verb definition, if you don't want the synonyms, comment those out X! Xdefine verb SLMOD X`09synonym sldefine X`09synonym lnmmod X!`09image slmod_exe:slmod +-+-+-+-+-+-+-+- END OF PART 4 +-+-+-+-+-+-+-+-