$! ------------------ CUT HERE ----------------------- $ v='f$verify(f$trnlnm("SHARE_VERIFY"))' $! $! This archive created by VMS_SHARE Version 7.2-007 22-FEB-1990 $! On 29-JUN-1992 15:36:18.81 By user UDAA055 $! $! This VMS_SHARE Written by: $! Andy Harper, Kings College London UK $! $! Acknowledgements to: $! James Gray - Original VMS_SHARE $! Michael Bednarek - Original Concept and implementation $! $! TO UNPACK THIS SHARE FILE, CONCATENATE ALL PARTS IN ORDER $! AND EXECUTE AS A COMMAND PROCEDURE ( @name ) $! $! THE FOLLOWING FILE(S) WILL BE CREATED AFTER UNPACKING: $! 1. [.UNMVT]UNMVT.MAR;1 $! 2. [.UNMVT]UNMVT.README;1 $! $set="set" $set symbol/scope=(nolocal,noglobal) $f=f$parse("SHARE_TEMP","SYS$SCRATCH:.TMP_"+f$getjpi("","PID")) $e="write sys$error ""%UNPACK"", " $w="write sys$output ""%UNPACK"", " $ if f$trnlnm("SHARE_LOG") then $ w = "!" $ ve=f$getsyi("version") $ if ve-f$extract(0,1,ve) .ges. "4.4" then $ goto START $ e "-E-OLDVER, Must run at least VMS 4.4" $ v=f$verify(v) $ exit 44 $UNPACK: SUBROUTINE ! P1=filename, P2=checksum $ if f$search(P1) .eqs. "" then $ goto file_absent $ e "-W-EXISTS, File ''P1' exists. Skipped." $ delete 'f'* $ exit $file_absent: $ if f$parse(P1) .nes. "" then $ goto dirok $ dn=f$parse(P1,,,"DIRECTORY") $ w "-I-CREDIR, Creating directory ''dn'." $ create/dir 'dn' $ if $status then $ goto dirok $ e "-E-CREDIRFAIL, Unable to create ''dn'. File skipped." $ delete 'f'* $ exit $dirok: $ w "-I-PROCESS, Processing file ''P1'." $ if .not. f$verify() then $ define/user sys$output nl: $ EDIT/TPU/NOSEC/NODIS/COM=SYS$INPUT 'f'/OUT='P1' PROCEDURE Unpacker ON_ERROR ENDON_ERROR;SET(FACILITY_NAME,"UNPACK");SET( SUCCESS,OFF);SET(INFORMATIONAL,OFF);f:=GET_INFO(COMMAND_LINE,"file_name");b:= CREATE_BUFFER(f,f);p:=SPAN(" ")@r&LINE_END;POSITION(BEGINNING_OF(b)); LOOP EXITIF SEARCH(p,FORWARD)=0;POSITION(r);ERASE(r);ENDLOOP;POSITION( BEGINNING_OF(b));g:=0;LOOP EXITIF MARK(NONE)=END_OF(b);x:=ERASE_CHARACTER(1); IF g=0 THEN IF x="X" THEN MOVE_VERTICAL(1);ENDIF;IF x="V" THEN APPEND_LINE; MOVE_HORIZONTAL(-CURRENT_OFFSET);MOVE_VERTICAL(1);ENDIF;IF x="+" THEN g:=1; ERASE_LINE;ENDIF;ELSE IF x="-" THEN IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+")= 1 THEN g:=0;ENDIF;ENDIF;ERASE_LINE;ENDIF;ENDLOOP;t:="0123456789ABCDEF"; POSITION(BEGINNING_OF(b));LOOP r:=SEARCH("`",FORWARD);EXITIF r=0;POSITION(r); ERASE(r);x1:=INDEX(t,ERASE_CHARACTER(1))-1;x2:=INDEX(t,ERASE_CHARACTER(1))-1; COPY_TEXT(ASCII(16*x1+x2));ENDLOOP;WRITE_FILE(b,GET_INFO(COMMAND_LINE, "output_file"));ENDPROCEDURE;Unpacker;QUIT; $ delete/nolog 'f'* $ CHECKSUM 'P1' $ IF CHECKSUM$CHECKSUM .eqs. P2 THEN $ EXIT $ e "-E-CHKSMFAIL, Checksum of ''P1' failed." $ ENDSUBROUTINE $START: $ create 'f' X`09.title`09`09unmvt -- undo mount-verify timeout X`09.library`09/sys$share:lib.mlb/ X`09$ucbdef X`09$vcbdef X; Xucbat:`09.blkl`09`091 Xcmdlin:`09.ascid`09`09/????????/ Xcmdlen:`09.blkw`09`091 Xprompt:`09.ascid`09`09/UCB address: / Xdone:`09.ascid`09`09/Done/ Xerror:`09.ascid`09`09/Error/ X; X`09.entry`09unmvt,0 X`09pushaw`09cmdlen X`09pushaq`09prompt X`09pushaq`09cmdlin X`09calls`09#3,g`5Elib$get_foreign X`09blbc`09r0,8$ X`09cmpw`09#8,cmdlen X`09bneq`098$ X`09pushal`09ucbat X`09pushl`09cmdlin+4 X`09movzwl`09cmdlen,-(sp) X`09calls`09#3,g`5Elib$cvt_htb X`09tstl`09ucbat X`09bgeq`098$ X`09clrl`09-(sp) X`09pushab`09doit X`09calls`09#2,g`5Esys$cmkrnl X`09pushaq`09done X`09blbs`09r0,9$ X`09tstl`09(sp)+ X8$:`09pushaq`09error X9$:`09calls`09#1,g`5Elib$put_output X`09movl`09#1,r0 X`09ret X; X`09.entry`09doit,`5Em X`09movl`09ucbat,r5 X`09bisl`09#ucb$m_valid,ucb$l_sts(r5) X`09movl`09ucb$l_vcb(r5),r4 X`09bisb`09#1@vcb$v_mountver,vcb$b_status2(r4) X`09movl`09#1,r0 X`09ret X`09.end`09unmvt $ CALL UNPACK [.UNMVT]UNMVT.MAR;1 1531604965 $ create 'f' XFrom:`09CBS%UK.AC.ULCC.NCDLAB::GOV.ANL.CMT::OSUDAR 27-JUN-1992 23:15:56.96 XTo:`09A.Harper XCC:`09 XSubj:`09RE: MncVerifyTimeout status - any cure? X XVia: UK.AC.ULCC.NCDLAB; Sat, 27 Jun 92 23:15 BST XDate:`09`09Sat, 27 JUN 92 23:11:30 BST XFrom:`09`09INFOVAX@UK.AC.ULCC.NCDLAB XTo:`09`09A.Harper@UK.AC.KCL.CC.OAK XDate-Sent: Sat, 27 Jun 1992 16:31:59 -0500 (CDT) XOriginal-From: OSUDAR@gov.anl.cmt (John Osudar `7B708 252-7505`7D) XMessage-Id: <920627163159.21a078d1@cmt.anl.gov> XSubject: RE: MncVerifyTimeout status - any cure? XOriginal-To: info-vax@com.sri XX-Vmsmail-To: SMTP%"info-vax@sri.com" XReply-To: OSUDAR@gov.anl.cmt (John Osudar `7B708 252-7505`7D) XSender: INFOVAX-request@UK.AC.ULCC.NCDLAB X X XThe program that's attached below has worked for me when I've had disks go i Vnto XMntVerifyTimeout. (We try to avoid having that situation, by setting the`20 XMVTIMEOUT parameter to its maximum of 64000 seconds -- but there have been Xtimes when nobody's noticed that a disk has gone away for more than 17 hours V!) XThis program requires that you look up the disk's UCB address using XANALYZE/SYSTEM -- mainly because I was too lazy to write the code required t Vo Xtrack down the UCB given the device name. X XAs always, there are no guarantees that this will work correctly for you -- V use Xat your own risk. (Of course, at worst it will trigger that system reboot y Vou Xwere going to do anyway! :-) X XAll this does is (1) set the volume-valid bit in the UCB; and (2) set the Xmount-verify bit in the VCB. That seems to do the trick. X X`09`09`09`09`09John X $ CALL UNPACK [.UNMVT]UNMVT.README;1 356282023 $ v=f$verify(v) $ EXIT