SYSPCNTRL       PROCESS CONTROL SERVICES ;                       21-AUG-1978 23:44:53   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)    3600  HISTORY			; DETAILED

   (1)    4600  DECLARATIONS

   (1)    7300  EXE$SUSPND - SUSPEND SYSTEM SERVICE

   (1)   16100  EXE$RESUME - RESUME SYSTEM SERVICE

   (1)   20800  EXE$HIBER - HIBERNATE SYSTEM SERVICE

   (1)   25900  EXE$WAKE - WAKE SYSTEM SERVICE

   (1)   32500  EXE$NAMPID - CONVERT PROCESS NAME TO PID

   (1)   44100  EXE$SETPRN - SET PROCESS NAME

SYSPCNTRL       PROCESS CONTROL SERVICES ;                       21-AUG-1978 23:44:53   VAX-11 MACRO X0.3-11               Page   1

01                                                                                                                               (1)



                                     0000   100 

                                     0000   200 	.TITLE	SYSPCNTRL PROCESS CONTROL SERVICES	;

                                     0000   300 	.IDENT	/01/		;

                                     0000   400 

                                     0000   500 ;

                                     0000   600 ; COPYRIGHT (C) 1977

                                     0000   700 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000   800 ;

                                     0000   900 ; THIS SOFTWARE IS FURNISHED  UNDER A LICENSE FOR USE ONLY ON A SINGLE

                                     0000  1000 ; COMPUTER  SYSTEM AND  MAY BE  COPIED ONLY WITH  THE INCLUSION OF THE

                                     0000  1100 ; ABOVE COPYRIGHT NOTICE.  THIS SOFTWARE, OR ANY OTHER COPIES THEREOF,

                                     0000  1200 ; MAY NOT BE PROVIDED OR  OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON

                                     0000  1300 ; EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO AGREES TO THESE LICENSE

                                     0000  1400 ; TERMS.  TITLE TO AND  OWNERSHIP OF THE  SOFTWARE  SHALL AT ALL TIMES

                                     0000  1500 ; REMAIN IN DEC.

                                     0000  1600 ;

                                     0000  1700 ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT NOTICE

                                     0000  1800 ; AND SHOULD  NOT BE CONSTRUED  AS A COMMITMENT  BY DIGITAL  EQUIPMENT

                                     0000  1900 ; CORPORATION.

                                     0000  2000 ;

                                     0000  2100 ; DEC ASSUMES  NO  RESPONSIBILITY  FOR  THE USE OR  RELIABILITY OF ITS

                                     0000  2200 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.

                                     0000  2300 

                                     0000  2400 ;++

                                     0000  2500 ; FACILITY: EXECUTIVE, PROCESS CONTROL SYSTEM SERVICES

                                     0000  2600 ;

                                     0000  2700 ; ABSTRACT:

                                     0000  2800 ;	THIS MODULE CONTAINS THE ROUTINES WHICH IMPLEMENT THE PROCESS

                                     0000  2900 ;	CONTROL SERVICES, SUSPEND, RESUME, HIBERNATE AND WAKE.

                                     0000  3000 ;

                                     0000  3100 ;--

                                     0000  3200 ;

                                     0000  3300 ; VERSION:

                                     0000  3400 ;

                                     0000  3500 ;	.PAGE

                                     0000  3600 	.SBTTL	HISTORY			; DETAILED

                                     0000  3700 ;

                                     0000  3800 ; AUTHOR:

                                     0000  3900 ;	R. HUSTVEDT : VERSION

                                     0000  4000 ;

                                     0000  4100 ; MODIFIED BY:

                                     0000  4200 ;	, : VERSION

                                     0000  4300 ; 01	 -

                                     0000  4400 

SYSPCNTRL       PROCESS CONTROL SERVICES ;                       21-AUG-1978 23:44:53   VAX-11 MACRO X0.3-11               Page   2

01              DECLARATIONS                                                                                                     (1)



                                     0000  4600 	.SBTTL	DECLARATIONS

                                     0000  4700 

                                     0000  4800 ;

                                     0000  4900 ; INCLUDE FILES:

                                     0000  5000 ;

                                     0000  5100 

                                     0000  5200 	$ACBDEF				; DEFINE AST CONTROL BLOCK

                                     0000  5300 	$IPLDEF				; IPL DEFINITIONS

                                     0000  5400 	$PCBDEF				; PCB OFFSET DEFINITIONS

                                     0000  5500 	$PRDEF				; PROCESSOR REGISTER DEFS

                                     0000  5600 	$PRIDEF				; PRIORITY INCREMENT DEFINITIONS

                                     0000  5700 	$PRVDEF				; PRIVILEGE BIT DEFINITIONS

                                     0000  5800 	$RSNDEF				; RESOURCE NUMBER DEFINITIONS

                                     0000  5900 	$SSDEF				; STATUS DEFINITIONS

                                     0000  6000 	$STATEDEF			; SCHEDULER STATE DEFINITIONS

                                     0000  6100 ;

                                     0000  6200 ; EQUATED SYMBOLS:

                                     0000  6300 ;

                           00000004  0000  6400 PID=4					; DISPLACEMENT TO PID ARGUMENT

                           00000008  0000  6500 PRCNAM=8				; DISPLACEMENT TO PROCESS NAME

                                     0000  6600 

                                     0000  6700 ;

                                     0000  6800 ; OWN STORAGE:

                                     0000  6900 ;

                                 00000000  7000 	.PSECT	AEXENOPAGED,BYTE	; NONPAGED EXEC

                                     0000  7100 

SYSPCNTRL       PROCESS CONTROL SERVICES ;                       21-AUG-1978 23:44:53   VAX-11 MACRO X0.3-11               Page   3

01              EXE$SUSPND - SUSPEND SYSTEM SERVICE                                                                              (1)



                                     0000  7300 	.SBTTL	EXE$SUSPND - SUSPEND SYSTEM SERVICE

                                     0000  7400 ;++

                                     0000  7500 ;	EXE$SUSPND - SUSPEND SYSTEM SERVICE

                                     0000  7600 ;

                                     0000  7700 ; FUNCTIONAL DESCRIPTION:

                                     0000  7800 ;	EXE$SUSPND IMPLEMENTS THE SUSPEND PROCESS SYSTEM SERVICE.

                                     0000  7900 ;	THIS SERVICE CAUSES THE SPECIFIED PROCESS TO BE SUSPENDED

                                     0000  8000 ;	BY INITIATING A KERNEL MODE AST IF NOT THE CURRENT PROCESS.

                                     0000  8100 ;	A SUSPENDED PROCESS CANNOT RECEIVE ASTS AND WILL ONLY BE

                                     0000  8200 ;	RESUMED AS A RESULT OF THE RESUME SYSTEM SERVICE OR A 

                                     0000  8300 ;	DELETE PROCESS REQUEST.

                                     0000  8400 ;

                                     0000  8500 ;

                                     0000  8600 ; CALLING SEQUENCE:

                                     0000  8700 ;	CALLG	ARGLIST,EXE$SUSPND

                                     0000  8800 ;

                                     0000  8900 ;

                                     0000  9000 ; INPUT PARAMETERS:

                                     0000  9100 ;	04(AP) - PROCESS IDENTIFICATION POINTER (PID)

                                     0000  9200 ;	08(AP) - PROCESS NAME DESCRIPTOR POINTER

                                     0000  9250 ;	R4 - PCB ADDRESS OF CURRENT PROCESS

                                     0000  9300 ;

                                     0000  9400 ; IMPLICIT INPUTS:

                                     0000  9500 ;	PCB OF CURRENT PROCESS

                                     0000  9600 ;	PCB OF TARGET PROCESS

                                     0000  9700 ;	

                                     0000  9800 ;

                                     0000  9900 ; OUTPUT PARAMETERS:

                                     0000 10000 ;	R0 - COMPLETION STATUS

                                     0000 10100 ;	@PID(AP) - PROCESS IDENTIFICATION OF TARGET PROCESS

                                     0000 10200 ;

                                     0000 10300 ; COMPLETION CODES:

                                     0000 10400 ;	SS$_NORMAL  -  NORMAL SUCCESSFUL COMPLETION

                                     0000 10500 ;	SS$_NOPRIV  -  INSUFFICIENT PRIVILEGE FOR REQUESTED OPERATION

                                     0000 10600 ;	SS$_NONEXPR -  NON-EXISTENT PROCESS

                                     0000 10700 ;	SS$_ACCVIO  -  ACCESS VIOLATION ON WRITE DESTINATION

                                     0000 10800 ;	SS$_INSFMEM -  INSUFFICIENT DYNAMIC MEMORY FOR REQUEST

                                     0000 10900 ;			( ONLY RETURNED IF NO RESOURCE WAIT ENABLE )

                                     0000 11000 ;

                                     0000 11100 ; SIDE EFFECTS:

                                     0000 11200 ;	NONE

                                     0000 11300 ;

                                     0000 11400 ;--

                                     0000 11500 

                                     0000 11600 EXE$SUSPND::				; SUSPEND SYSTEM SERVICE

                               003C  0000 11700 	.WORD	^M<R2,R3,R4,R5>		; REGISTER SAVE MASK FOR R2-R5

                          008B   30  0002 11800 	BSBW	EXE$NAMPID		; TRANSLATE AND VERIFY ARGS

                                     0005 11850 	SETIPL	#0			; ENABLE

                          51     DD  0008 11900 	PUSHL	R1			; SAVE PID

            23            50     E9  000A 12000 	BLBC	R0,20$			; CONTINUE IF NO ERROR

         28 A4            0B     E6  000D 12200 	BBSSI	#PCB$V_SUSPEN,PCB$L_STS(R4),10$	; EXIT IF ALREADY SUSPENDED

                          1C         0011       

                          FFEB'  30  0012 12300 	BSBW	EXE$ALLOCIRP		; ALLOCATE I/O PACKET FOR AST

            18            50     E9  0015 12400 	BLBC	R0,20$			; IF LBC THEN NO PACKET ALLOCATED

            55            52     D0  0018 12500 	MOVL	R2,R5			; SETUP POINTER TO AST CONTROL BLK

         18 A5         31'AF     DE  001B 12600 	MOVAL	B^SUSPND,ACB$L_KAST(R5)	; SET FOR KERNEL AST OM PROCESS

         0B A5         80 8F     90  0020 12700 	MOVB	#^X80,ACB$B_RMOD(R5)	; SET ACCESS MODE FOR AST

SYSPCNTRL       PROCESS CONTROL SERVICES ;                       21-AUG-1978 23:44:53   VAX-11 MACRO X0.3-11               Page   4

01              EXE$SUSPND - SUSPEND SYSTEM SERVICE                                                                              (1)



         0C A5            8E     D0  0025 12800 	MOVL	(SP)+,ACB$L_PID(R5)	; SET PID FOR AST

                          52     D4  0029 12900 	CLRL	R2			; SET NULL PRIORITY INCREMENT

                          FFD2'  30  002B 13000 	BSBW	SCH$QAST		; QUEUE KERNEL AST

                          59     11  002E 13100 10$:	BRB	EXITN			; EXIT WITH NORMAL STATUS

                                 04  0030 13150 20$:	RET				; ERROR RETURN

                                     0031 13200 

SYSPCNTRL       PROCESS CONTROL SERVICES ;                       21-AUG-1978 23:44:53   VAX-11 MACRO X0.3-11               Page   5

01              EXE$SUSPND - SUSPEND SYSTEM SERVICE                                                                              (1)



                                     0031 13400 ;

                                     0031 13500 ; KERNEL AST ROUTINE TO SUSPEND PROCESS

                                     0031 13600 ;

                                     0031 13700 ; CALLING SEQUENCE:

                                     0031 13800 ;	JSB	SUSPND

                                     0031 13900 ;

                                     0031 14000 ; INPUT PARAMETERS:

                                     0031 14100 ;	R4 - PCB ADDRESS

                                     0031 14200 ;	R5 - ADDRESS OF AST CONTROL BLOCK

                                     0031 14300 ;

                                     0031 14305 ; OUTPUT PARAMETERS:

                                     0031 14310 ;	NONE

                                     0031 14315 ;

                                     0031 14320 ; IMPLICIT INPUTS:

                                     0031 14325 ;	PCB OF CURRENT PROCESS LOCATED VIA SCH$GL_CURPCB

                                     0031 14330 ;

                                     0031 14335 ; IMPLICIT OUTPUTS:

                                     0031 14340 ;	PCB$V_SUSPEN - CLEARED

                                     0031 14342 ;			       > WHEN PROCESS IS RESUMED

                                     0031 14345 ;	PCB$V_RESPEN - CLEARED

                                     0031 14350 ;-

                                     0031 14400 

                                     0031 14500 SUSPND:					; SUSPEND KERNEL AST ROUTINE

            50            55     D0  0031 14600 	MOVL	R5,R0			; GET PACKET ADDRESS FOR RELEASE

                          FFC9'  30  0034 14700 	BSBW	EXE$DEANONPAGED		; DEALLOCATE PACKET

                          7E     DC  0037 14900 10$:	MOVPSL	-(SP)			;;; SAVE PSL ON STACK

                                     0039 15000 	SETIPL	#IPL$_SYNCH		;;; DISABLE SYSTEM EVENTS

         28 A4            05     E7  003C 15100 	BBCCI	#PCB$V_RESPEN,PCB$L_STS(R4),30$	;;; BR IF NO PENDING RESUME

                          0B         0040       

         28 A4            0B     E7  0041 15150 	BBCCI	#PCB$V_SUSPEN,PCB$L_STS(R4),20$	; CLEAR SUSPEND PENDING

                          00         0045       

                                     0046 15200 20$:	SETIPL	#IPL$_ASTDEL		; DROP TO ASTDEL IPL

                          8E     D5  0049 15300 	TSTL	(SP)+			; CLEAN PSL FROM STACK

                                 05  004B 15400 	RSB				; AND EXIT

            52       0000'CF     DE  004C 15500 30$:	MOVAL	W^SCH$GQ_SUSP,R2	;;; GET QUEUE HEADER ADDRESS

                          FFAC'  30  0051 15600 	BSBW	SCH$WAITK		;;; WAIT WITH CLEAN STACK

                          E1     11  0054 15700 	BRB	10$			; AND CLEAR RESUME PENDING FLAG

                                     0056 15800 

                                     0056 15900 

SYSPCNTRL       PROCESS CONTROL SERVICES ;                       21-AUG-1978 23:44:53   VAX-11 MACRO X0.3-11               Page   6

01              EXE$RESUME - RESUME SYSTEM SERVICE                                                                               (1)



                                     0056 16100 	.SBTTL	EXE$RESUME - RESUME SYSTEM SERVICE

                                     0056 16200 ;++

                                     0056 16300 ;	EXE$RESUME - RESUME SYSTEM SERVICE

                                     0056 16400 ;

                                     0056 16500 ; FUNCTIONAL DESCRIPTION:

                                     0056 16600 ;	EXE$RESUME IMPLEMENTS THE RESUME SYSTEM SERVICE WHICH RESTARTS

                                     0056 16700 ;	A SUSPENDED PROCESS.

                                     0056 16800 ;

                                     0056 16900 ; INPUT PARAMETERS:

                                     0056 17000 ;	04(AP) - PROCESS IDENTIFICATION POINTER (PID)

                                     0056 17100 ;	08(AP) - PROCESS NAME DESCRIPTOR POINTER

                                     0056 17150 ;	R4 - PCB ADDRESS OF CURRENT PROCESS

                                     0056 17200 ;

                                     0056 17300 ; IMPLICIT INPUTS:

                                     0056 17400 ;	PCB OF CURRENT PROCESS

                                     0056 17500 ;	PCB OF TARGET PROCESS

                                     0056 17600 ;	PROCESS HEADER OF CURRENT PROCESS

                                     0056 17700 ;

                                     0056 17800 ; OUTPUT PARAMETERS:

                                     0056 17900 ;	R0 - COMPLETION STATUS

                                     0056 18000 ;	@PID - PROCESS IDENTIFICATION OF TARGET PROCESS

                                     0056 18100 ;

                                     0056 18200 ; IMPLICIT OUTPUTS:

                                     0056 18300 ;	NONE

                                     0056 18400 ;

                                     0056 18500 ; COMPLETION CODES:

                                     0056 18600 ;	SS$_NORMAL  -  NORMAL SUCCESSFUL COMPLETION

                                     0056 18700 ;	SS$_NOPRIV  -  INSUFFICIENT PRIVILEGE FOR REQUESTED OPERATION

                                     0056 18800 ;	SS$_NONEXPR -  NON-EXISTENT PROCESS

                                     0056 18900 ;	SS$_ACCVIO  -  ACCESS VIOLATION ON WRITE DESTINATION

                                     0056 19000 ;

                                     0056 19100 ; SIDE EFFECTS:

                                     0056 19200 ;	NONE

                                     0056 19300 ;--

                                     0056 19400 

                                     0056 19500 EXE$RESUME::				; RESUME SYSTEM SERVICE

                               001C  0056 19600 	.WORD	^M<R2,R3,R4>		; REGISTER SAVE MASK FOR R2-R4

                          36     10  0058 19700 	BSBB	EXE$NAMPID		; CONVERT AND VALIDATE

            2F            50     E9  005A 19800 	BLBC	R0,EXIT			; EXIT IF ERROR OCCURRED

            52            02     9A  005D 20200 	MOVZBL	#PRI$_RESAVL,R2		;;; SET PRIORITY INCREMENT CLASS

         28 A4            05     E6  0060 20300 	BBSSI	#PCB$V_RESPEN,PCB$L_STS(R4),10$ ;;; SET RESUME PENDING

                          00         0064       

                                     0065 20400 10$:	RPTEVT	RESUME			;;; REPORT RESUME EVENT

                          1E     11  0069 20500 	BRB	EXITN			;;; AND TAKE NORMAL EXIT

                                     006B 20600 

SYSPCNTRL       PROCESS CONTROL SERVICES ;                       21-AUG-1978 23:44:53   VAX-11 MACRO X0.3-11               Page   7

01              EXE$HIBER - HIBERNATE SYSTEM SERVICE                                                                             (1)



                                     006B 20800 	.SBTTL	EXE$HIBER - HIBERNATE SYSTEM SERVICE

                                     006B 20900 ;++

                                     006B 21000 ;	EXE$HIBER - HIBERNATE SYSTEM SERVICE

                                     006B 21100 ;

                                     006B 21200 ; FUNCTIONAL DESCRIPTION:

                                     006B 21300 ;	EXE$HIBER IMPLEMENTS THE HIBERNATE SYSTEM SERVICE WHICH

                                     006B 21400 ;	PLACES THE PROCESS IN A WAIT STATE, HIB , UNTIL IT

                                     006B 21500 ;	IS RE-AWAKENED BY A WAKE SYSTEM SERVICE.  ASTS MAY BE DELIVERED

                                     006B 21600 ;	WHILE THE PROCESS IS IN A HIBERNATE STATE.

                                     006B 21700 ;

                                     006B 21800 ;

                                     006B 21900 ;

                                     006B 22000 ; CALLING SEQUENCE:

                                     006B 22100 ;	CALLG	ARGLIST,EXE$HIBER

                                     006B 22200 ;

                                     006B 22300 ;

                                     006B 22400 ; INPUT PARAMETERS:

                                     006B 22500 ;	R4 - PCB ADDRESS OF CURRENT PROCESS

                                     006B 22600 ;

                                     006B 22700 ; IMPLICIT INPUTS:

                                     006B 22800 ;	PROCESS CONTROL BLOCK(PCB) OF THE PROCESS ISSUING THE HIBERNATE

                                     006B 22900 ;	SYSTEM SERVICE.

                                     006B 23000 ;

                                     006B 23100 ;

                                     006B 23200 ; OUTPUT PARAMETERS:

                                     006B 23300 ;	R0 - COMPLETION STATUS CODE

                                     006B 23400 ;

                                     006B 23500 ; IMPLICIT OUTPUTS:

                                     006B 23600 ;	NONE

                                     006B 23700 ;

                                     006B 23800 ; COMPLETION CODES:

                                     006B 23900 ;	SS$_NORMAL - NORMAL SUCCESSFUL COMPLETION

                                     006B 24000 ;

                                     006B 24100 ; SIDE EFFECTS:

                                     006B 24200 ;	THE PROCESS WILL BE PLACED IN A WAIT STATE UNTIL EITHER

                                     006B 24300 ;	AN AST IS DELIVERED OR A WAKE REQUEST IS MADE.

                                     006B 24400 ;

                                     006B 24500 ;--

                                     006B 24600 

                                     006B 24700 

                                     006B 24800 EXE$HIBER::				; HIBERNATE SYSTEM SERVICE

                               001C  006B 24900 	.WORD	^M<R2,R3,R4>		; REGISTER SAVE MASK FOR R2-R4

                                     006D 25100 	SETIPL	#IPL$_SYNCH		;;; BLOCK SCHEDULING EVENTS

         28 A4            0C     E7  0070 25200 	BBCCI	#PCB$V_WAKEPEN,PCB$L_STS(R4),10$  ;;; CHECK FOR PENDING WAKE

                          02         0074       

                          12     11  0075 25300 	BRB	EXITN			;;; AND RETURN TO CALLER

                                     0077 25400 

                                     0077 25500 10$:					;;; MUST HIBERNATE

            52       0000'CF     DE  0077 25600 	MOVAL	W^SCH$GQ_HIBWQ,R2	;;; SET ADDRESS OF WAIT QUEUE HDR

                          FF81'  31  007C 25700 	BRW	SCH$WAIT		;;; AND WAIT

SYSPCNTRL       PROCESS CONTROL SERVICES ;                       21-AUG-1978 23:44:53   VAX-11 MACRO X0.3-11               Page   8

01              EXE$WAKE - WAKE SYSTEM SERVICE                                                                                   (1)



                                     007F 25900 	.SBTTL	EXE$WAKE - WAKE SYSTEM SERVICE

                                     007F 26000 ;++

                                     007F 26100 ;	EXE$WAKE - WAKE SYSTEM SERVICE

                                     007F 26200 ;

                                     007F 26300 ; FUNCTIONAL DESCRIPTION:

                                     007F 26400 ;	THE WAKE SYSTEM SERVICE CAUSES A PROCESS IN A HIBERNATE STATE

                                     007F 26500 ;	TO BE CHANGED TO AN EXECUTABLE STATE AND RE-EXECUTED.

                                     007F 26600 ;	IF THE TARGET OF A WAKE SERVICE IS NOT CURRENTLY HIBERNATING, 

                                     007F 26700 ;	THEN A BIT IS POSTED WHICH WILL CAUSE A SUBSEQUENT HIBERNATE

                                     007F 26800 ;	CALL BY THAT PROCESS TO RETURN IMMEDIATELY.

                                     007F 26900 ;

                                     007F 27000 ; CALLING SEQUENCE:

                                     007F 27100 ;	CALLG	ARGLIST,EXE$WAKE

                                     007F 27200 ;

                                     007F 27300 ; INPUT PARAMETERS:

                                     007F 27400 ;	04(AP) = PROCESS IDENTIFICATION (PID) OF PROCESS TO WAKE

                                     007F 27500 ;	08(AP) = ADDRESS OF PROCESS NAME DESCRIPTOR

                                     007F 27550 ;	R4 - PCB ADDRESS

                                     007F 27600 ;	

                                     007F 27700 ; IMPLICIT INPUTS:

                                     007F 27800 ;	PCB OF CURRENT PROCESS

                                     007F 27900 ;	ALL PCBS LOCATED BY THE VECTOR SCH$AL_PCB

                                     007F 28000 ;

                                     007F 28100 ; OUTPUT PARAMETERS:

                                     007F 28200 ;	R0 - COMPLETION STATUS CODE

                                     007F 28300 ;	@PID(AP) - PROCESS IDENTIFICATION (PID) OF PROCESS AWAKENED

                                     007F 28400 ;

                                     007F 28500 ; IMPLICIT OUTPUTS:

                                     007F 28600 ;	PCB$V_WAKEPEN BIT IN PCB$L_STS OF TARGET PROCESS WILL BE

                                     007F 28700 ;	SET IF PROCESS IS NOT HIBERNATING.

                                     007F 28800 ;

                                     007F 28900 ; COMPLETION CODES:

                                     007F 29000 ;	SS$_NORMAL - NORMAL SUCCESSFUL COMPLETION

                                     007F 29100 ;	SS$_NONEXPR - NON-EXISTENT PROCESS

                                     007F 29200 ;	SS$_NOPRIV - NO PRIVILEGE FOR ATTEMPTED OPERATION

                                     007F 29300 ;	SS$_ACCVIO - ACCESS VIOLATION ON WRITE DESTINATION

                                     007F 29400 ;

                                     007F 29500 ; SIDE EFFECTS:

                                     007F 29600 ;	THE TARGET PROCESS WILL BE CHANGED TO AN EXECUTABLE STATE,

                                     007F 29700 ;	COM OR COMO, IF IT IS IN A HIBERNATE STATE AND

                                     007F 29800 ;	RESCHEDULING WILL BE INITIATED IF NECESSARY.

                                     007F 29900 ;

                                     007F 30000 ;--

                                     007F 30100 EXE$WAKE::				; WAKE SYSTEM SERVICE

                               001C  007F 30200 	.WORD	^M<R2,R3,R4>		; SAVE MASK FOR R2-R4

                          0D     10  0081 30300 	BSBB	EXE$NAMPID		; CONVERT NAME TO PID

                                     0083 30400 ;

                                     0083 30500 ;	R0 - SUCCESS INDICATOR

                                     0083 30600 ;	R1 - PID CORRESPONDING TO NAME STRING

                                     0083 30700 ;	R4 - PCB ADDRESS IF NAME WAS FOUND

                                     0083 30800 ;

            06            50     E9  0083 30900 	BLBC	R0,EXIT			; CONTINUE IF PROCESS LOCATED

                          FF77'  30  0086 31100 	BSBW	SCH$WAKE		;;; WAKE PROCESS BY PID

                                     0089 31400 EXITN:					; EXIT HIBERNATE SERVICE

            50            01     3C  0089 31500 	MOVZWL	#SS$_NORMAL,R0		; SET NORMAL COMPLETION

                                     008C 31600 EXIT:					; RETURN WITH R0 SET

                                     008C 31650 	SETIPL	#0			; ENABLE

SYSPCNTRL       PROCESS CONTROL SERVICES ;                       21-AUG-1978 23:44:53   VAX-11 MACRO X0.3-11               Page   9

01              EXE$WAKE - WAKE SYSTEM SERVICE                                                                                   (1)



                                 04  008F 31700 	RET				; AND RETURN TO CALLER

                                     0090 31800 

                                     0090 32300 

SYSPCNTRL       PROCESS CONTROL SERVICES ;                       21-AUG-1978 23:44:53   VAX-11 MACRO X0.3-11               Page  10

01              EXE$NAMPID - CONVERT PROCESS NAME TO PID                                                                         (1)



                                     0090 32500 	.SBTTL	EXE$NAMPID - CONVERT PROCESS NAME TO PID

                                     0090 32600 ;++

                                     0090 32700 ;	EXE$NAMPID  -  CONVERT PROCESS NAME TO PID

                                     0090 32800 ;

                                     0090 32900 ; FUNCTIONAL DESCRIPTION:

                                     0090 33000 ;	EXE$NAMPID OBTAINS THE PROPER PID AND PCB ADDRESS FOR A

                                     0090 33100 ;	STANDARD PROCESS CONTROL SERVICE ARGUMENT LIST CONSISTING

                                     0090 33200 ;	OF A PID/PROCESS-NAME PAIR.  THE ABSENCE OF BOTH SELECTS THE

                                     0090 33300 ;	CURRENT PROCESS.  AFTER ANY NECESSARY NAME TRANSLATION AND

                                     0090 33400 ;	PID VALIDATION, GROUP AND WORLD PROCESS CONTROL PRIVILEGES

                                     0090 33500 ;	ARE CHECKED.

                                     0090 33600 ;

                                     0090 33700 ;

                                     0090 33800 ; CALLING SEQUENCE:

                                     0090 33900 ;	JSB/BSB	EXE$NAMPID

                                     0090 34000 ;

                                     0090 34100 ; INPUT PARAMETERS:

                                     0090 34200 ;	PID(AP) - ADDRESS OF PID SOURCE/DESTINATION 

                                     0090 34300 ;	PRCNAM(AP) - POINTER TO PROCESS DESCRIPTOR TO CONVERT TO PID

                                     0090 34350 ;	R4 - PCB ADDRESS

                                     0090 34400 ;

                                     0090 34500 ; IMPLICIT INPUTS:

                                     0090 34600 ;	SCH$AL_PCB - VECTOR OF PCB ADDRESSES 

                                     0090 34800 ;	PHD$L_PRIV - PRIVILEGE BIT VECTOR IN PROCESS HEADER

                                     0090 34900 ;

                                     0090 35000 ; OUTPUT PARAMETERS:

                                     0090 35100 ;	R0 - COMPLETION STATUS

                                     0090 35200 ;	R1 - PROCESS IDENTIFICATION (PID) OF NAMED PROCESS.

                                     0090 35300 ;	     ZERO IF NO MATCH IS FOUND.

                                     0090 35400 ;	R4 - PCB ADDRESS OF PROCESS IF MATCH IS FOUND.

                                     0090 35500 ;	@PID(AP) - PROCESS IDENTIFICATION (PID) OF SELECTED PROCESS

                                     0090 35550 ;	IPL - IPL$_SYNCH (IPL UNCHANGED IF SS$_ACCVIO OR SS$_IVLOGNAM)

                                     0090 35600 ;

                                     0090 35700 ; COMPLETION CODES:

                                     0090 35800 ;	SS$_NORMAL  -  NORMAL SUCCESSFUL COMPLETION

                                     0090 35900 ;	SS$_IVLOGNAM  -  INVALID LOGICAL NAME STRING

                                     0090 36000 ;	SS$_NONEXPR -  NONEXISTENT PROCESS OR INVALID PID

                                     0090 36100 ;	SS$_NOPRIV  -  NO PRIVILEGE FOR SPECIFIED OPERATION.

                                     0090 36200 ;	SS$_ACCVIO  -  ACCESS VIOLATION FOR WRITE DESTINATION

                                     0090 36300 ;

                                     0090 36400 ; SIDE EFFECTS:

                                     0090 36500 ;	NONE

                                     0090 36600 ;

                                     0090 36700 ;--

                                     0090 36800 EXE$NAMPID::				; TRANSLATE PNAME TO PID

            50         04 AC     D0  0090 37000 	MOVL	PID(AP),R0		; GET PID ADDRESS

                          0B     13  0094 37100 	BEQL	10$			; NO PID ADDRESS

                                     0096 37200 	IFNOWRT	#4,(R0),ACCVIO		; ERROR IF ACCESS VIOLATION

            51            60     D0  009C 37300 	MOVL	(R0),R1			; NOW FETCH PID

                          62     12  009F 37400 	BNEQ	GOTPID			; YES,

            51         60 A4     D0  00A1 37500 10$:	MOVL	PCB$L_PID(R4),R1	; ASSUME CALLERS PID

            53         08 AC     D0  00A5 37600 	MOVL	PRCNAM(AP),R3		; GET PNAME ADDRESS IF SPECIFIED

                          03     12  00A9 37700 	BNEQ	20$			; WAS SPECIFIED

                          008A   31  00AB 37750 	BRW	RETN			; NONE SPECIFIED, RETURN

                                     00AE 37800 20$:					; MUST LOOK UP PROCESS NAME

                                     00AE 37900 	IFNORD	#8,(R3),ACCVIO		; CHECK DESCRIPTOR FOR READABLITY

            52            63     7D  00B4 38000 	MOVQ	(R3),R2			; GET DESCRIPTOR

SYSPCNTRL       PROCESS CONTROL SERVICES ;                       21-AUG-1978 23:44:53   VAX-11 MACRO X0.3-11               Page  11

01              EXE$NAMPID - CONVERT PROCESS NAME TO PID                                                                         (1)



                          52     B5  00B7 38100 	TSTW	R2			; AND CHECK FOR ZERO LENGTH

                          3B     13  00B9 38200 	BEQL	IVLNAM			; NOT A VALID NAME STRING

            52            0F     B1  00BB 38300 	CMPW	#15,R2			; CHECK FOR MAXIMUM LENGTH

                          36     1F  00BE 38400 	BLSSU	IVLNAM			; NOT A VALID NAME STRING

                                     00C0 38425 	IFNORD	R2,(R3),ACCVIO		; ACCESS VIOLATION IF STRING NOT READABLE

                          50     DD  00C6 38450 	PUSHL	R0			; SAVE PID ADDRESS

            50       0000'8F     3C  00C8 38500 	MOVZWL	#SCH$C_MAXPIX,R0	; INITIALIZE PROCESS INDEX

                                     00CD 38600 PIXLOOP:				; LOOP FOR EACH PROCESS INDEX

            51       0000'CF40   D0  00CD 38700 	MOVL	W^SCH$AL_PCB[R0],R1	; GET PCB ADDRESS FROM VECTOR

         22 A4         22 A1     B1  00D3 38800 	CMPW	PCB$W_GRP(R1),PCB$W_GRP(R4) ; COMPARE GROUP NUMBERS

                          11     12  00D8 38900 	BNEQ	NEXTPIX			; NOT SAME GROUP, NEXT PIX

         6C A1            52     91  00DA 39000 	CMPB	R2,PCB$T_LNAME(R1)	; COMPARE NAME LENGTH

                          0B     12  00DE 39100 	BNEQ	NEXTPIX			; DIFFERENT LENGTH

                          0F     BB  00E0 39200 	PUSHR	#^M<R0,R1,R2,R3>	; SAVE REGISTERS FOR CMPC3

            63            52     29  00E2 39300 	CMPC3	R2,(R3),PCB$T_LNAME+1(R1)	; COMPARE TEXT OF NAME

                       6D A1         00E5       

                          0F     BA  00E7 39400 	POPR	#^M<R0,R1,R2,R3>	; RESTORE REGISTERS

                          11     13  00E9 39500 	BEQL	GOTNAM			; FOUND A MATCHING PROCESS NAME

                                     00EB 39600 NEXTPIX:				; STEP TO NEXT PROCESS

            DF            50     F4  00EB 39700 	SOBGEQ	R0,PIXLOOP		; UPDATE INDEX AND TRYA AGAIN

                          8E     D5  00EE 39800 	TSTL	(SP)+			; CLEAN PID ADDRESS FROM STACK

                          2A     11  00F0 39900 	BRB	NONEX			; EXIT WITH NONEXISTENT PROCESS STATUS

                                     00F2 40000 

                                     00F2 40100 ACCVIO:					; ACCESS VIOLATION

            50            0C     3C  00F2 40200 	MOVZWL	#SS$_ACCVIO,R0		; SET ERROR CODE

                                 05  00F5 40300 	RSB				; AND EXIT

                                     00F6 40400 

                                     00F6 40500 IVLNAM:					; INVALID NAME

            50       0154 8F     3C  00F6 40600 	MOVZWL	#SS$_IVLOGNAM,R0	; SET ERROR CODE

                                 05  00FB 40700 	RSB				; AND RETURN

                                     00FC 40800 

            51         60 A1     D0  00FC 40900 GOTNAM:	MOVL	PCB$L_PID(R1),R1	; GET FULL PID FOR NAME

                          50   8ED0  0100 41000 	POPL	R0			; RESTORE PID ADDRESS

                                     0103 41100 GOTPID:					; VERIFY PID AND CHECK PRIV

                                     0103 41150 	SETIPL	#IPL$_SYNCH		; BLOCK SYSTEM EVENTS

            52            51     3C  0106 41200 	MOVZWL	R1,R2			; EXTRACT PROCESS INDEX

       0000'8F            52     B1  0109 41300 	CMPW	R2,#SCH$C_MAXPIX	; TEST AGAINST MAXIMUM VALUE

                          0C     1A  010E 41400 	BGTRU	NONEX			; NONEXISTENT IF GTRU THAN MAXPIX

            52       0000'CF42   D0  0110 41500 	MOVL	W^SCH$AL_PCB[R2],R2	; GET PCB ADDRESS

         60 A2            51     D1  0116 41600 	CMPL	R1,PCB$L_PID(R2)	; CHECK FOR VALID PID

                          06     13  011A 41700 	BEQL	VALPID			; YES,

                                     011C 41800 NONEX:					; PROCESS NON-EXISTENT

            50       08E8 8F     3C  011C 41900 	MOVZWL	#SS$_NONEXPR,R0		; SET ERROR STATUS

                                 05  0121 42000 	RSB				; AND RETURN TO CALLER

                                     0122 42100 VALPID:					; PID IS VALID, CHECK PRIV

         60 A4         1C A2     D1  0122 42200 	CMPL	PCB$L_OWNER(R2),PCB$L_PID(R4) ; IS IT A SUBPROCESS

                          0C     13  0127 42300 	BEQL	RETURN			; YES,

         22 A4         22 A2     B1  0129 42400 	CMPW	PCB$W_GRP(R2),PCB$W_GRP(R4) ; ARE GROUP NUMBERS EQUAL

                          13     12  012E 42500 	BNEQ	WORLDCK			; NO,

                                     0130 42600 	IFNPRIV	GROUP,NOPRIV,R4		; ERROR IF NOT GROUP PRIV

                                     0135 42700 RETURN:					; SUCCESSFUL EXIT 

            54            52     D0  0135 42800 	MOVL	R2,R4			; MOVE PCB ADDRESS OF TARGET

                                     0138 42900 RETN:					; NORMAL STATUS EXIT

                          50     D5  0138 43000 	TSTL	R0			; WAS PID ADDRESS SPECIFIED

                          03     13  013A 43100 	BEQL	10$			; NO, SKIP STORE OF PID

            60            51     D0  013C 43200 	MOVL	R1,(R0)			; STORE PID IN DESTINATION

            50            01     3C  013F 43300 10$:	MOVZWL	#SS$_NORMAL,R0		; SET SUCCESS STATUS

SYSPCNTRL       PROCESS CONTROL SERVICES ;                       21-AUG-1978 23:44:53   VAX-11 MACRO X0.3-11               Page  12

01              EXE$NAMPID - CONVERT PROCESS NAME TO PID                                                                         (1)



                                 05  0142 43400 	RSB				; AND RETURN TO CALLER

                                     0143 43500 WORLDCK:				; CHECK FOR WORLD PRIVILEGE

                                     0143 43600 	IFPRIV	WORLD,RETURN,R4		; MUST HAVE WORLD PRIVILEGE

            50            24     3C  0148 43700 NOPRIV:	MOVZWL	#SS$_NOPRIV,R0		; SET ERROR STATUS

                                 05  014B 43800 	RSB				; AND RETURN TO CALLER

                                     014C 43900 

SYSPCNTRL       PROCESS CONTROL SERVICES ;                       21-AUG-1978 23:44:53   VAX-11 MACRO X0.3-11               Page  13

01              EXE$SETPRN - SET PROCESS NAME                                                                                    (1)



                                     014C 44100 	.SBTTL	EXE$SETPRN - SET PROCESS NAME

                                     014C 44200 

                                     014C 44300 ;++

                                     014C 44400 ; FUNCTIONAL DESCRIPTION:

                                     014C 44500 ;	EXE$SETPRN IMPLEMENTS THE SET PROCESS NAME SYSTEM

                                     014C 44600 ;	SERVICE WHICH ALLOWS A PROCESS TO ESTABLISH A LOGICAL NAME

                                     014C 44700 ;	FOR ITSELF.  ALL SUCH LOGICAL NAMES ARE IMPLICITLY QUALIFIED

                                     014C 44800 ;	BY THE GROUP NUMBER OF THE PROCESS THEREBY ALLOWING THE SAME

                                     014C 44900 ;	LOGICAL NAME TO BE USED BY PROCESSES IN DIFFERENT GROUPS.

                                     014C 45000 ;

                                     014C 45100 ; CALLING SEQUENCE:

                                     014C 45200 ;	CALLG	ARGLIST,EXE$SETPRN

                                     014C 45300 ;

                                     014C 45400 ; INPUT PARAMETERS:

                                     014C 45500 ;	04(AP) - ADDRESS OF PROCESS NAME STRING DESCRIPTOR

                           00000004  014C 45600 PRCNAM=4

                                     014C 45650 ;	R4 - PCB ADDRESS OF CURRENT PROCESS

                                     014C 45700 ;

                                     014C 45800 ; IMPLICIT INPUTS:

                                     014C 45900 ;	SCH$GL_CURPCB - POINTER TO PCB OF CURRENT PROCESS

                                     014C 46000 ;	SCH$AL_PCB - VECTOR OF ALL PCB ADDRESSES

                                     014C 46100 ;

                                     014C 46200 ; OUTPUT PARAMETERS:

                                     014C 46300 ; 	NONE

                                     014C 46400 ;

                                     014C 46500 ; IMPLICIT OUTPUTS:

                                     014C 46600 ;	PCB$T_NAME IN CURRENT PCB IS FILLED WITH THE SPECIFIED NAME

                                     014C 46700 ;	PROVIDED NO ERROR HAS OCURRED.

                                     014C 46800 ;

                                     014C 46900 ; SIDE EFFECTS:

                                     014C 47000 ;	NONE

                                     014C 47100 ; 

                                     014C 47200 ; COMPLETION CODES:

                                     014C 47300 ;	SS$_NORMAL    -  NORMAL SUCCESSFUL COMPLETION STATUS

                                     014C 47400 ;	SS$_ACCVIO    -  ALL OR PART OF NAME STRING IS INACCESSIBLE FOR READ

                                     014C 47500 ;	SS$_IVLOGNAM  -  ILLEGAL LOGICAL NAME STRING LENGTH (>15)

                                     014C 47600 ;	SS$_DUPLNAM   -  DUPLICATE PROCESS NAME WITHIN GROUP

                                     014C 47700 ;

                                     014C 47800 ;--

                                     014C 47900 

                                     014C 48000 EXE$SETPRN::				; SET PROCESS NAME

                               00FC  014C 48100 	.WORD	^M<R2,R3,R4,R5,R6,R7>	; SAVE REGISTERS R2-R7

            55         04 AC     D0  014E 48200 	MOVL	PRCNAM(AP),R5		; GET ADDRESS OF PROCESS NAME

                          05     12  0152 48250 	BNEQ	5$			; WAS SPECIFIED

                       6C A4     D4  0154 48275 	CLRL	PCB$T_LNAME(R4)		; CLEAR NAME FIELD OF PCB

                          53     11  0157 48287 	BRB	65$			; AND EXIT WITH NORMAL STATUS

                                     0159 48300 5$:	IFNORD	#8,(R5),80$		; CHECK ACCESS FOR DESCRIPTOR

            7E            65     7D  015F 48400 	MOVQ	(R5),-(SP)		; PUSH DESCRIPTOR ON STACK

                          6E     B5  0162 48500 	TSTW	(SP)			; CHECK FOR ZERO LENGTH STRING

                          0C     13  0164 48600 	BEQL	10$			; INVALID NAME

                                     0166 48700 	IFNORD	(SP),@4(SP),80$		; PROBE ENDS OF STRING

            0F            6E     B1  016D 48800 	CMPW	(SP),#15		; CHECK FOR MAXIMUM LENGTH

                          06     1B  0170 48900 	BLEQU	20$			; IF LEQU, WITHIN LIMIT

            50       0154 8F     3C  0172 49000 10$:	MOVZWL	#SS$_IVLOGNAM,R0	; INVALID PROCESS NAME STATUS

                                 04  0177 49100 	RET				; AND RETURN

            56       0000'8F     3C  0178 49300 20$:	MOVZWL	#SCH$C_MAXPIX,R6	; SET MAXIMUM PROCESS INDEX

            57       0000'CF46   D0  017D 49400 30$:	MOVL	W^SCH$AL_PCB[R6],R7	; GET PCB ADDRESS

SYSPCNTRL       PROCESS CONTROL SERVICES ;                       21-AUG-1978 23:44:53   VAX-11 MACRO X0.3-11               Page  14

01              EXE$SETPRN - SET PROCESS NAME                                                                                    (1)



         22 A7         22 A4     B1  0183 49500 	CMPW	PCB$W_GRP(R4),PCB$W_GRP(R7)  ; CHECK FOR SAME GROUP

                          0E     12  0188 49600 	BNEQ	40$			; NO, SKIP IT

         6C A7            6E     91  018A 49700 	CMPB	(SP),PCB$T_LNAME(R7)	; COMPARE LENGTHS

                          08     12  018E 49800 	BNEQ	40$			; NOT EQUAL, TRY ANOTHER

         04 BE            6E     29  0190 49900 	CMPC3	(SP),@4(SP),PCB$T_LNAME+1(R7)    ; COMPARE NAMES WITH COUNTS

                       6D A7         0194       

                          05     13  0196 50000 	BEQL	50$			; MATCH

            E2            56     F4  0198 50100 40$:	SOBGEQ	R6,30$			; CONTINUE FOR ALL PCBS

                          05     11  019B 50200 	BRB	60$			; NOT FOUND

            57            54     D1  019D 50300 50$:	CMPL	R4,R7			; SAME PROCESS?

                          0E     12  01A0 50400 	BNEQ	70$			; DUPLICATE NAME ERROR

         6C A4            6E     90  01A2 50500 60$:	MOVB	(SP),PCB$T_LNAME(R4)	; SAVE NAME LENGTH

         04 BE            6E     28  01A6 50600 	MOVC3	(SP),@4(SP),PCB$T_LNAME+1(R4)	; MOVE NAME TO PCB

                       6D A4         01AA       

            50            01     3C  01AC 50700 65$:	MOVZWL	#SS$_NORMAL,R0		; SUCCESSFUL STATUS

                                 04  01AF 50800 	RET				; AND RETURN

            50       0094 8F     3C  01B0 50900 70$:	MOVZWL	#SS$_DUPLNAM,R0		; DUPLICATE NAME WITHIN GROUP

                                 04  01B5 51000 	RET				; AND RETURN

                                     01B6 51100 

            50            0C     3C  01B6 51200 80$:	MOVZWL	#SS$_ACCVIO,R0		; ACCESS VIOLATION

                                 04  01B9 51300 	RET				; RETURN WITH ERROR STATUS

                                     01BA 51400 	.END

SYSPCNTRL       PROCESS CONTROL SERVICES ;                       21-AUG-1978 23:44:53   VAX-11 MACRO X0.3-11               Page  15

SYMBOL TABLE                                                                                                                     (1)



ACB$B_RMOD       0000000B            PCB$L_EFWM       0000004C            PR$_ASTLVL     = 00000013            

ACB$B_TYPE       0000000A            PCB$L_OWNER      0000001C            PR$_ESP        = 00000001            

ACB$L_AST        00000010            PCB$L_PHD        00000064            PR$_ICCS       = 00000018            

ACB$L_ASTPRM     00000014            PCB$L_PHYPCB     00000018            PR$_ICR        = 0000001A            

ACB$L_ASTQBL     00000004            PCB$L_PID        00000060            PR$_IPL        = 00000012            

ACB$L_ASTQFL     00000000            PCB$L_PQB        0000004C            PR$_ISP        = 00000004            

ACB$L_KAST       00000018            PCB$L_SQBL       00000004            PR$_KSP        = 00000000            

ACB$L_PID        0000000C            PCB$L_SQFL       00000000            PR$_MAPEN      = 00000038            

ACB$M_QUOTA    = 00000040            PCB$L_STS        00000028            PR$_NICR       = 00000019            

ACB$S_MODE     = 00000002            PCB$L_UIC        00000020            PR$_P0BR       = 00000008            

ACB$V_KAST     = 00000007            PCB$L_WSSWP      00000024            PR$_P0LR       = 00000009            

ACB$V_MODE     = 00000000            PCB$L_WTIME      0000002C            PR$_P1BR       = 0000000A            

ACB$V_QUOTA    = 00000006            PCB$T_LNAME      0000006C            PR$_P1LR       = 0000000B            

ACB$W_SIZE       00000008            PCB$V_ASTPEN   = 00000011            PR$_PCBB       = 00000010            

ACCVIO           000000F2 R     03   PCB$V_BATCH    = 0000000E            PR$_RXCS       = 00000020            

BIT...         = 0000000F            PCB$V_DELPEN   = 00000001            PR$_RXDB       = 00000021            

EVT$_RESUME      ********   X   03   PCB$V_FORCPEN  = 00000002            PR$_SBIER      = 00000034            

EXE$ALLOCIRP     ********   X   03   PCB$V_HIBER    = 00000013            PR$_SBIFS      = 00000030            

EXE$DEANONPAGED  ********   X   03   PCB$V_INQUAN   = 00000003            PR$_SBIMT      = 00000033            

EXE$HIBER        0000006B RG    03   PCB$V_LOGIN    = 00000014            PR$_SBIQC      = 00000036            

EXE$NAMPID       00000090 RG    03   PCB$V_NOACNT   = 0000000F            PR$_SBIS       = 00000031            

EXE$RESUME       00000056 RG    03   PCB$V_PHDRES   = 00000012            PR$_SBISC      = 00000032            

EXE$SETPRN       0000014C RG    03   PCB$V_PSWAPM   = 00000004            PR$_SBITA      = 00000035            

EXE$SUSPND       00000000 RG    03   PCB$V_RES      = 00000000            PR$_SBR        = 0000000C            

EXE$WAKE         0000007F RG    03   PCB$V_RESPEN   = 00000005            PR$_SCBB       = 00000011            

EXIT             0000008C R     03   PCB$V_SSFEXC   = 00000006            PR$_SID        = 0000003E            

EXITN            00000089 R     03   PCB$V_SSFEXCE  = 00000007            PR$_SIRR       = 00000014            

GBL...         = 00000000            PCB$V_SSFEXCS  = 00000008            PR$_SISR       = 00000015            

GOTNAM           000000FC R     03   PCB$V_SSFEXCU  = 00000009            PR$_SLR        = 0000000D            

GOTPID           00000103 R     03   PCB$V_SSRWAIT  = 0000000A            PR$_SSP        = 00000002            

IPL$_ASTDEL    = 00000002            PCB$V_SUSPEN   = 0000000B            PR$_TBIA       = 00000039            

IPL$_HWCLK     = 00000018            PCB$V_SWPVBN   = 00000010            PR$_TBIS       = 0000003A            

IPL$_IOPOST    = 00000004            PCB$V_WAKEPEN  = 0000000C            PR$_TODR       = 0000001B            

IPL$_MAILBOX   = 0000000B            PCB$V_WALL     = 0000000D            PR$_TXCS       = 00000022            

IPL$_POWER     = 0000001F            PCB$W_APTCNT     00000034            PR$_TXDB       = 00000023            

IPL$_QUEUEAST  = 00000006            PCB$W_ASTCNT     0000003C            PR$_USP        = 00000003            

IPL$_SCHED     = 00000003            PCB$W_BIOCNT     0000003E            PR$_WCSA       = 0000002C            

IPL$_SYNCH     = 00000007            PCB$W_BIOLM      00000040            PR$_WCSD       = 0000002D            

IPL$_TIMER     = 00000007            PCB$W_BYTCNT     00000042            PRCNAM         = 00000004            

IVLNAM           000000F6 R     03   PCB$W_BYTLM      00000068            PRI$_IOCOM     = 00000001            

NEXTPIX          000000EB R     03   PCB$W_DIOCNT     00000044            PRI$_NULL      = 00000000            

NONEX            0000011C R     03   PCB$W_DIOLM      00000046            PRI$_RESAVL    = 00000002            

NOPRIV           00000148 R     03   PCB$W_FILCNT     00000048            PRI$_TICOM     = 00000004            

PCB$B_ASTACT     0000000C            PCB$W_GPGCNT     00000038            PRI$_TIMER     = 00000002            

PCB$B_ASTEN      0000000D            PCB$W_GRP        00000022            PRI$_TOCOM     = 00000003            

PCB$B_PRI        0000000B            PCB$W_MEM        00000020            PRV$V_ALLSPOOL = 00000004            

PCB$B_PRIB       00000033            PCB$W_MTXCNT     0000000E            PRV$V_BUGCHK   = 00000017            

PCB$B_TYPE       0000000A            PCB$W_PPGCNT     0000003A            PRV$V_CMEXEC   = 00000001            

PCB$B_WEFC       00000032            PCB$W_PRCCNT     0000006A            PRV$V_CMKRNL   = 00000000            

PCB$C_LENGTH     0000007C            PCB$W_SIZE       00000008            PRV$V_DETACH   = 00000005            

PCB$K_LENGTH     0000007C            PCB$W_STATE      00000030            PRV$V_DEVCHAR  = 00000011            

PCB$L_ASTQBL     00000014            PCB$W_TMBU       00000036            PRV$V_DIAGNOSE = 00000006            

PCB$L_ASTQFL     00000010            PCB$W_TQCNT      0000004A            PRV$V_EXQUOTA  = 00000013            

PCB$L_EFC2P      00000058            PID            = 00000004            PRV$V_GROUP    = 00000008            

PCB$L_EFC3P      0000005C            PIXLOOP          000000CD R     03   PRV$V_GRPNAM   = 00000003            

PCB$L_EFCS       00000050            PR$_ACCR       = 00000029            PRV$V_LOG_IO   = 00000007            

PCB$L_EFCU       00000054            PR$_ACCS       = 00000028            PRV$V_NETMBX   = 00000014            

SYSPCNTRL       PROCESS CONTROL SERVICES ;                       21-AUG-1978 23:44:53   VAX-11 MACRO X0.3-11               Page  16

SYMBOL TABLE                                                                                                                     (1)



PRV$V_NOACNT   = 00000009            SS$_BADIRECTORY= 00000828            SS$_FORMAT     = 000000BC            

PRV$V_OPER     = 00000012            SS$_BADPARAM   = 00000014            SS$_GPTFULL    = 000000C4            

PRV$V_PHY_IO   = 00000016            SS$_BADSTACK   = 000002B4            SS$_GSDFULL    = 000000CC            

PRV$V_PRMCEB   = 0000000A            SS$_BEGOFFILE  = 00000938            SS$_GSDNOTXXX  = 000000D4            

PRV$V_PRMGBL   = 00000018            SS$_BLOCKCNTERR= 00000940            SS$_HANGUP     = 000002CC            

PRV$V_PRMMBX   = 0000000B            SS$_BREAK      = 00000414            SS$_HEADERFULL = 000008C8            

PRV$V_PSWAPM   = 0000000C            SS$_BUFFEROVF  = 00000601            SS$_IDXFILEFULL= 000008D0            

PRV$V_SETPRI   = 0000000D            SS$_BUGCHECK   = 000002A4            SS$_ILLBLKNUM  = 000000DC            

PRV$V_SETPRV   = 0000000E            SS$_CANCEL     = 00000830            SS$_ILLCNTRFUNC= 000000E4            

PRV$V_SYSGBL   = 00000019            SS$_CHANINTLK  = 0000004C            SS$_ILLEFC     = 000000EC            

PRV$V_SYSNAM   = 00000002            SS$_CLIFRCEXT  = 00000980            SS$_ILLIOFUNC  = 000000F4            

PRV$V_TMPMBX   = 0000000F            SS$_CMODSUPR   = 0000041C            SS$_ILLLBLAST  = 00000968            

PRV$V_VOLPRO   = 00000015            SS$_CMODUSER   = 00000424            SS$_ILLPAGCNT  = 000000FC            

PRV$V_WORLD    = 00000010            SS$_COMPAT     = 0000042C            SS$_ILLSEQOP   = 000002DC            

RETN             00000138 R     03   SS$_CONTINUE   = 00000001            SS$_ILLSER     = 00000104            

RETURN           00000135 R     03   SS$_CONTROLC   = 00000651            SS$_ILLUSRLBLRD= 00000958            

RSN$_ASTWAIT   = 00000001            SS$_CONTROLO   = 00000609            SS$_ILLUSRLBLWT= 00000960            

RSN$_BRKTHRU   = 00000006            SS$_CONTROLY   = 00000611            SS$_INCVOLLABEL= 0000010C            

RSN$_MAILBOX   = 00000002            SS$_CREATED    = 00000619            SS$_INSFARG    = 00000114            

RSN$_NPDYNMEM  = 00000003            SS$_CTRLERR    = 00000054            SS$_INSFMEM    = 00000124            

RSN$_PGDYNMEM  = 00000005            SS$_DATACHECK  = 0000005C            SS$_INSFRAME   = 0000012C            

RSN$_PGFILE    = 00000004            SS$_DATAOVERUN = 00000838            SS$_INSFWSL    = 0000011C            

SCH$AL_PCB       ********   X   03   SS$_DEBUG      = 0000046C            SS$_IVADDR     = 00000134            

SCH$C_CEF      = 00000003            SS$_DEVACTIVE  = 000002C4            SS$_IVCHAN     = 0000013C            

SCH$C_COLPG    = 00000001            SS$_DEVALLOC   = 00000840            SS$_IVCHNLSEC  = 0000026C            

SCH$C_COM      = 0000000C            SS$_DEVALRALLOC= 00000641            SS$_IVDEVNAM   = 00000144            

SCH$C_COMO     = 0000000D            SS$_DEVASSIGN  = 00000848            SS$_IVGSDNAM   = 0000014C            

SCH$C_CUR      = 0000000E            SS$_DEVFOREIGN = 00000064            SS$_IVLOGNAM   = 00000154            

SCH$C_FPG      = 0000000B            SS$_DEVICEFULL = 00000850            SS$_IVLOGTAB   = 0000015C            

SCH$C_HIB      = 00000007            SS$_DEVMOUNT   = 0000006C            SS$_IVPROTECT  = 000002F4            

SCH$C_HIBO     = 00000008            SS$_DEVNOTALLOC= 00000858            SS$_IVQUOTAL   = 00000164            

SCH$C_LEF      = 00000005            SS$_DEVNOTMBX  = 00000074            SS$_IVSECFLG   = 0000016C            

SCH$C_LEFO     = 00000006            SS$_DEVNOTMOUNT= 0000007C            SS$_IVSECIDCTL = 000002E4            

SCH$C_MAXPIX     ********   X   03   SS$_DEVOFFLINE = 00000084            SS$_IVSSRQ     = 00000174            

SCH$C_MWAIT    = 00000002            SS$_DIRFULL    = 00000860            SS$_IVSTSFLG   = 0000017C            

SCH$C_PFW      = 00000004            SS$_DRVERR     = 0000008C            SS$_IVTIME     = 00000184            

SCH$C_SUSP     = 00000009            SS$_DUPFILENAME= 00000868            SS$_LENVIO     = 0000018C            

SCH$C_SUSPO    = 0000000A            SS$_DUPLNAM    = 00000094            SS$_LKWSETFUL  = 00000194            

SCH$GQ_HIBWQ     ********   X   03   SS$_ENDOFFILE  = 00000870            SS$_MBFULL     = 000008D8            

SCH$GQ_SUSP      ********   X   03   SS$_ENDOFTAPE  = 00000878            SS$_MBTOOSML   = 0000019C            

SCH$QAST         ********   X   03   SS$_ENDOFUSRLBL= 00000970            SS$_MCHECK     = 000002BC            

SCH$RSE          ********   X   03   SS$_EXQUOTA    = 0000001C            SS$_MEDOFL     = 000001A4            

SCH$WAIT         ********   X   03   SS$_EXTIDXFILE = 00000880            SS$_MSGNOTFND  = 00000621            

SCH$WAITK        ********   X   03   SS$_FCPREADERR = 00000888            SS$_MUSTCLOSEFL= 00000948            

SCH$WAKE         ********   X   03   SS$_FCPREPSTN  = 00000988            SS$_NODATA     = 000001AC            

SS$_ABORT      = 0000002C            SS$_FCPREWNDERR= 00000890            SS$_NOHANDLER  = 000008F8            

SS$_ACCONFLICT = 00000800            SS$_FCPSPACERR = 00000898            SS$_NOHOMEBLK  = 000008E0            

SS$_ACCVIO     = 0000000C            SS$_FCPWRITERR = 000008A0            SS$_NOIOCHAN   = 000001B4            

SS$_ARITH      = 00000404            SS$_FILACCERR  = 0000009C            SS$_NOLINKS    = 0000027C            

SS$_ASTFLT     = 0000040C            SS$_FILALRACC  = 000000A4            SS$_NOLOGNAM   = 000001BC            

SS$_BADATTRIB  = 00000034            SS$_FILELOCKED = 000008A8            SS$_NOMBX      = 00000274            

SS$_BADCHKSUM  = 00000808            SS$_FILENUMCHK = 000008B0            SS$_NOMOREFILES= 00000930            

SS$_BADESCAPE  = 0000003C            SS$_FILESEQCHK = 000008B8            SS$_NONEXDRV   = 000001C4            

SS$_BADFILEHDR = 00000810            SS$_FILESTRUCT = 000008C0            SS$_NONEXPR    = 000008E8            

SS$_BADFILENAME= 00000818            SS$_FILNOTACC  = 000000AC            SS$_NONLOCAL   = 000008F0            

SS$_BADFILEVER = 00000820            SS$_FILNOTCNTG = 000002AC            SS$_NOPRIV     = 00000024            

SS$_BADIMGHDR  = 00000044            SS$_FILNOTEXP  = 000000B4            SS$_NORMAL     = 00000001            

SYSPCNTRL       PROCESS CONTROL SERVICES ;                       21-AUG-1978 23:44:53   VAX-11 MACRO X0.3-11               Page  17

SYMBOL TABLE                                                                                                                     (1)



SS$_NOSIGNAL   = 00000900            

SS$_NOSOLICIT  = 00000284            

SS$_NOSUCHDEV  = 00000908            

SS$_NOSUCHFILE = 00000910            

SS$_NOSUCHNODE = 0000028C            

SS$_NOSUCHSEC  = 00000978            

SS$_NOTAPEOP   = 00000264            

SS$_NOTFILEDEV = 000001CC            

SS$_NOTINTBLSZ = 000001D4            

SS$_NOTLABELMT = 000001DC            

SS$_NOTNETDEV  = 000002EC            

SS$_NOTRAN     = 00000629            

SS$_NOTSQDEV   = 000001E4            

SS$_OPCCUS     = 00000434            

SS$_OPCDEC     = 0000043C            

SS$_OPINCOMPL  = 000002D4            

SS$_PAGOWNVIO  = 000001EC            

SS$_PAGRDERR   = 00000444            

SS$_PARITY     = 000001F4            

SS$_PARTESCAPE = 000001FC            

SS$_PFMBSY     = 00000204            

SS$_PSTFULL    = 0000020C            

SS$_RADRMOD    = 0000044C            

SS$_REJECT     = 00000294            

SS$_REMOTE     = 00000649            

SS$_RESIGNAL   = 00000918            

SS$_RESULTOVF  = 00000214            

SS$_ROPRAND    = 00000454            

SS$_SECTBLFUL  = 0000021C            

SS$_SSFAIL     = 0000045C            

SS$_SUPERSEDE  = 00000631            

SS$_TAPEPOSLOST= 00000224            

SS$_TBIT       = 00000464            

SS$_TIMEOUT    = 0000022C            

SS$_TOOMANYVER = 00000990            

SS$_TOOMUCHDATA= 0000029C            

SS$_UNASEFC    = 00000234            

SS$_UNSAFE     = 0000023C            

SS$_UNWIND     = 00000920            

SS$_UNWINDING  = 00000928            

SS$_VASFULL    = 00000244            

SS$_VECINUSE   = 0000024C            

SS$_VOLINV     = 00000254            

SS$_WAITUSRLBL = 00000950            

SS$_WASCLR     = 00000001            

SS$_WASECC     = 00000639            

SS$_WASSET     = 00000009            

SS$_WRITLCK    = 0000025C            

SUSPND           00000031 R     03   

VALPID           00000122 R     03   

WORLDCK          00000143 R     03   





PROGRAM SECTION SYNOPSIS



.  ABS  .        00000000      00     NOPIC   USR   CON   ABS   LCL NOSHR NOEXE NORD  NOWRT BYTE  

. BLANK .        00000000      01     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

SYSPCNTRL       PROCESS CONTROL SERVICES ;                       21-AUG-1978 23:44:53   VAX-11 MACRO X0.3-11               Page  18

PROGRAM SECTION SYNOPSIS                                                                                                         (1)



$ABS$            0000007C      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

AEXENOPAGED      000001BA      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

14268. BYTES LEFT IN FREE MEMORY POOL.

2720. BYTES OF RECLAIMED MEMORY.

OBJ$:SYSPCNTRL,LIS$:SYSPCNTRL/-SP=LIB$:LIB/ML,SRC$:SYSPCNTRL

5 MLB DIR RDS - 641 GETS TO DEFINE 24 MACROS. 49 INTER. FILE WRITES. 

