perm filename HSTKIL.FAI[HST,NET] blob sn#824068 filedate 1986-09-03 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	 HSTKIL HSTKI1 NAMERR CORERR ATTERR ATTPRO ATTMUL ATTNON ATTIMP ERRLST OLDNAM NEWNAM
C00005 ENDMK
C⊗;
;⊗ HSTKIL HSTKI1 NAMERR CORERR ATTERR ATTPRO ATTMUL ATTNON ATTIMP ERRLST OLDNAM NEWNAM

	TITLE HSTKIL

A←1
B←2

;Program to kill the host table upper segment, to be used when we install
;a new host table.  It changes the name of the segment from "HOSTS!" to
;"HOSTS?" so that new jobs won't use it, and lets the old one go away when
;the last job using it logs out.

OLDNAM:	SIXBIT/HOSTS!/
NEWNAM:	SIXBIT/HOSTS?/

HSTKIL:	RESET
	MOVE A,OLDNAM
HSTKI1:	ATTSEG A,		;Try to attach the segment
	 JRST @ATTERR(A)	;Failed, find out why
	MOVE A,NEWNAM
	SETNM2 A,		;Try to rename it
	 JRST NAMERR		;Failed, can't do much then
	MOVEI A,0
	CORE2 A,		;Release it
	 JRST CORERR
	MOVE A,['[RSLV]']	;Job name
	MOVE B,[200,,0]		;Interrupt bits
	INTIPI A		;Wake up resolver
	 JFCL
	OUTSTR [ASCIZ/Old host table segment has been killed./]
	EXIT

ATTERR:	ATTPRO			;protection violation
	ATTMUL			;multiple upper segments
	ATTNON			;no such upper segment job number
	ATTNON			;no such upper segment job name
	ATTIMP			;already have an upper
	ATTIMP			;lower segment is too big

ATTPRO:	OUTSTR [ASCIZ/ATTSEG protection violation!/]
	EXIT

ATTMUL:	OUTSTR [ASCIZ/Multiple host table segments exist.  Will kill first one.
/]
	HLRZ A,A		;Job number of first one
	JRST HSTKI1		;Try to kill it

ATTNON:	OUTSTR [ASCIZ/No host table upper segment found./]
	EXIT

ATTIMP:	OUTSTR [ASCIZ/Impossible error return from ATTSEG UUO!/]
	EXIT

NAMERR:	OUTSTR [ASCIZ/SETNM2 to rename upper segment failed!/]
	EXIT

CORERR:	OUTSTR [ASCIZ/Impossible error return from CORE2 UUO!/]
	EXIT

	END HSTKIL