Google
 

Trailing-Edge - PDP-10 Archives - bb-bt99g-bb - netser.c11
There is 1 other file named netser.c11 in the archive. Click here to see a list.
 REP 6/46	;11C1
		IDIVI	T1,MSGALN##	;TAKE MOD ALLOCATION TABLE MAXIMA
 WIT
		IDIVI	T1,MSGALN##+1	;TAKE MOD ALLOCATION TABLE MAXIMA
 REP 11/171	;11C2
		PUSHJ	P,NTDSTP	;++ THIS SHOULDN'T HAPPEN ANYMORE!
 WIT
		STOPCD	.,STOP,ANFWNN,	;++ WRONG NODE NUMBER IN DDB
 REP 19/171	;11C3
	IFN FTPI,<MOVEI T1,IR.IER!IR.OER!IR.DOL>  ;NODE DOWN PSI FLAGS
 WIT
	IFN FTPI,<MOVEI	T1,IR.IER!IR.OER!IR.DOL>  ;NODE DOWN PSI FLAGS
 REP 23/171	;11C4
	;  T1 CONTAINING PSI REASON FLAGS, T2 CONTAINING EXTENDED ERROR CODE

	NTDNW1:	DPB	T2,PDVESE##	;SET EXTENDED (DEVOP.) ERROR STATUS CODE
	NTDNW2:	LDB	T2,PJOBN	;GET OWNING JOB (IF ANY)
		JUMPE	T2,NTDNW7	;NO PSI/NETWAK IF NO JOB
	IFN FTPI,<
		MOVE	T2,DEVMOD(F)	;GET DEVICE ACTIVITY FLAGS
		TRNE	T2,ASSCON!ASSPRG;DEVICE DEFINITELY IN USE BY A JOB?
		PUSHJ	P,PSIDVB##	;YES, GIVE THE DEVICE OFFLINE/ETC. INTERRUPT
	> ;END IFN FTPI
		MOVE	S,DEVIOS(F)	;GET THE WORD WITH THE DIRECTION BIT IN IT
		MOVEI	T1,NTDIAV	;ASSUME THAT THE DEVICE IS DOING INPUT
		TLNE	S,IO		;BUT IF IT'S DOING OUTPUT,
		MOVEI	T1,NTDOAW	;THEN CHANGE OUR MIND
		PUSHJ	P,(T1)		;CALL ROUTINE TO WAKE JOB. (UNDERSTANDS DEPAIO)
 WIT
	;  T1 CONTAINING THE PSI REASON FLAGS, T2 CONTAINING EXTENDED ERROR CODE

	NTDNW1:	DPB	T2,PDVESE##	;SET EXTENDED (DEVOP.) ERROR STATUS CODE
	NTDNW2:	LDB	T2,PJOBN##	;GET OWNING JOB (IF ANY)
		JUMPE	T2,NTDNW7	;NO PSI/NETWAK IF NO JOB
		MOVE	T2,DEVMOD(F)	;GET DEVICE ACTIVITY FLAGS
		TRNN	T2,ASSCON!ASSPRG;DEVICE DEFINITELY IN USE BY A JOB?
		JRST	NTDNW4		;UNCLEAR, MAKE SURE NOT STUCK IN "EW"
	IFN FTPI,<PUSHJ	P,PSIDVB##>	;YES, GIVE THE DEVICE OFFLINE/ETC. INTERRUPT
		MOVE	S,DEVIOS(F)	;DEVICE STATUS FLAGS
		TLZ	S,IOSTBL	;CLEAR TROUBLE SO SETIOD CALLS WAKJOB
		PUSHJ	P,SETIOD##	;WAKE UP JOB IF HIBERING ON ASYNC I/O
	NTDNW4:	PUSHJ	P,NETWAK	;WAKE UP JOB IF IN ANF "EW" STATE
 DEL 42/171	;11C5

 SUM 170726