SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (2)      42  DECLARATIONS

   (4)     270  SYSGETJPI - GETJPI main program

   (5)     402  CHECKITEM - Validate item identifier

   (6)     484  MOVEIT - Move data to user's buffer

   (7)     560  SPECIAL - Handle special conditions

SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page   1

01                                                                                                                               (1)



                                     0000     1 

                                     0000     2 	.TITLE	SYSGETJPI - GET JOB PROCESS INFORMATION SYSTEM SERVICE

                                     0000     3 	.IDENT	/01/

                                     0000     4 

                                     0000     5 ;

                                     0000     6 ; COPYRIGHT (C) 1977

                                     0000     7 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000     8 ;

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

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

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

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

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

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

                                     0000    15 ; REMAIN IN DEC.

                                     0000    16 ;

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

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

                                     0000    19 ; CORPORATION.

                                     0000    20 ;

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

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

                                     0000    23 

                                     0000    24 ;++

                                     0000    25 ; FACILITY: 

                                     0000    26 ;

                                     0000    27 ; ABSTRACT:

                                     0000    28 ;

                                     0000    29 ;	Return accounting, quota, and informational data about the current

                                     0000    30 ;	process, or PCB information about any other process.

                                     0000    31 ;

                                     0000    32 ; ENVIRONMENT: Kernel Mode

                                     0000    33 ;

                                     0000    34 ; AUTHOR: Henry M. Levy	, CREATION DATE: 20-October-1977

                                     0000    35 ;

                                     0000    36 ; MODIFIED BY:

                                     0000    37 ;

                                     0000    38 ;	, : VERSION

                                     0000    39 ; 01	- 

                                     0000    40 ;--

SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page   2

01              DECLARATIONS                                                                                                     (2)



                                     0000    42 	.SBTTL	DECLARATIONS

                                     0000    43 ;

                                     0000    44 ; INCLUDE FILES:

                                     0000    45 ;

                                     0000    46 

                                     0000    47 	$JPIDEF				; define GETJPI item identifiers

                                     0000    48 	$PCBDEF				; define process control block

                                     0000    49 	$PHDDEF				; define process header

                                     0000    50 	$PRDEF				; define processor registers

                                     0000    51 	$SSDEF				; define status codes

                                     0000    52 

                                     0000    53 ;

                                     0000    54 ; MACROS:

                                     0000    55 ;

                                     0000    56 

                                     0000    57 ;

                                     0000    58 ; Macros to define entries in the four item information tables.

                                     0000    59 ; There is a table for each data structure from which the user may

                                     0000    60 ; request information, and one table for information returned as an

                                     0000    61 ; address.  Tables are indexed by low byte of item identifier.

                                     0000    62 ;

                                     0000    63 

                                     0000    64 	.MACRO	PCBITM NAME,OFFSET,TYPE,LENGTH

                                     0000    65 	.=PCBTBL+<<JPI$_'NAME&^XFF>*3>

                                     0000    66 	.WORD	PCB$'OFFSET

                                     0000    67 	.BYTE	<<TYPE@5>!LENGTH>

                                     0000    68 	.ENDM	PCBITM

                                     0000    69 

                                     0000    70 	.MACRO	PHDITM NAME,OFFSET,TYPE,LENGTH

                                     0000    71 	.=PHDTBL+<<JPI$_'NAME&^XFF>*3>

                                     0000    72 	.WORD	PHD$'OFFSET

                                     0000    73 	.BYTE	<<TYPE@5>!LENGTH>

                                     0000    74 	.ENDM	PHDITM

                                     0000    75 

                                     0000    76 	.MACRO	CTLITM NAME,ADDRESS,TYPE,LENGTH

                                     0000    77 	.=CTLTBL+<<JPI$_'NAME&^XFF>*5>

                                     0000    78 	.LONG	ADDRESS

                                     0000    79 	.BYTE	<<TYPE@5>!LENGTH>

                                     0000    80 	.ENDM	CTLITM

                                     0000    81 

                                     0000    82 	.MACRO	ADRITM NAME,ADDRESS

                                     0000    83 	.=ADRTBL+<<JPI$_'NAME&^XFF>*4>

                                     0000    84 	.LONG	ADDRESS

                                     0000    85 	.ENDM	ADRITM

                                     0000    86 

                                     0000    87 ;

                                     0000    88 ; This macro defines the entries to the table of special items.

                                     0000    89 ; The items in this table must be handled by action routines 

                                     0000    90 ; before being returned.  Each entry has a word item identifier

                                     0000    91 ; followed by the address of an action routine.

                                     0000    92 ;

                                     0000    93 

                                     0000    94 	.MACRO	SPECIAL_ITEM NAME,ROUTINE

                                     0000    95 	.WORD	JPI$_'NAME

                                     0000    96 	.ADDRESS ROUTINE

                                     0000    97 	.ENDM	SPECIAL_ITEM

                                     0000    98 

SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page   3

01              DECLARATIONS                                                                                                     (2)



                                     0000    99 ;

                                     0000   100 ; EQUATED SYMBOLS:

                                     0000   101 ;

                                     0000   102 

                           00000004  0000   103 	EFN = 4				; event flag number argument

                           00000008  0000   104 	PIDADR = 8			; address of PID

                           0000000C  0000   105 	PRCNAM = 12			; address of name descriptor

                           00000010  0000   106 	ITMLST = 16			; address of item identifiers

                           00000014  0000   107 	IOSB = 20			; I/O status block address

                           00000018  0000   108 	ASTADR = 24			; ast routine address

                           0000001C  0000   109 	ASTPRM = 28			; ast parameter

                                     0000   110 

                                     0000   111 ;

                                     0000   112 ; One quadword local is left on stack for routines which may 

                                     0000   113 ; manipulate values before returning them.

                                     0000   114 ;

                                     0000   115 

                           FFFFFFF8  0000   116 	LOCAL_SPACE = -8

                                     0000   117 

                                     0000   118 

                           00000001  0000   119 	MAX_ADR_ITEM = <JPI$_LASTADR&^XFF>-1 ; maximum ADRTBL item number

                           00000006  0000   120 	MAX_CTL_ITEM = <JPI$_LASTCTL&^XFF>-1 ; maximum CTLTBL item number

                           0000001C  0000   121 	MAX_PCB_ITEM = <JPI$_LASTPCB&^XFF>-1 ; maximum PCBTBL item number

                           00000011  0000   122 	MAX_PHD_ITEM = <JPI$_LASTPHD&^XFF>-1 ; maximum PHDTBL item number

                           00000004  0000   123 	MAXSTRUC = 4			; maximum structure code

                                     0000   124 

                                     0000   125 ;

                                     0000   126 ; Data type codes (all numeric types have same code)

                                     0000   127 ;

                                     0000   128 

                           00000000  0000   129 	VALUE = 0			; numeric value

                           00000001  0000   130 	BSTRING = 1			; blank filled string

                           00000002  0000   131 	CSTRING = 2			; counted ascii string

SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page   4

01              DECLARATIONS                                                                                                     (3)



                                     0000   133 ;

                                     0000   134 ; OWN STORAGE:

                                     0000   135 ;

                                     0000   136 

                                 00000000   137 	.PSECT	YEXEPAGED

                                     0000   138 

                                     0000   139 ;

                                     0000   140 ; This array contains the maximum item number for each of the

                                     0000   141 ; four item data structures, indexed by structure number.

                                     0000   142 ;

                                     0000   143 

                                     0000   144 MAXCOUNT:

                                 01  0000   145 	.BYTE	MAX_ADR_ITEM

                                 06  0001   146 	.BYTE	MAX_CTL_ITEM

                                 1C  0002   147 	.BYTE	MAX_PCB_ITEM

                                 11  0003   148 	.BYTE	MAX_PHD_ITEM

                                     0004   149 

                                     0004   150 

                                     0004   151 ;

                                     0004   152 ; Define the four item data structures.  Each data structure is indexed

                                     0004   153 ; by item identifier.  The PCB and PHD tables contain a word offset

                                     0004   154 ; followed by a byte code for each item.  The CTL table contains a longword

                                     0004   155 ; address followed by a byte code and the ADR table contains a longword address.

                                     0004   156 ; The code contains the length of the item in the low five bits, and the

                                     0004   157 ; item type in the high three bits.  The types are value, counted string,

                                     0004   158 ; and blank filled string.

                                     0004   159 ;

                                     0004   160 

                                     0004   161 

                                     0004   162 ADRTBL:

                           0000000C  0004   163 	.BLKB	4*<MAX_ADR_ITEM+1>		; define adr table

                                     000C   164 CTLTBL:

                           0000002F  000C   165 	.BLKB	5*<MAX_CTL_ITEM+1>		; define ctl table

                                     002F   166 PCBTBL:

                           00000086  002F   167 	.BLKB	3*<MAX_PCB_ITEM+1>		; define pcb table

                                     0086   168 PHDTBL:

                           000000BC  0086   169 	.BLKB	3*<MAX_PHD_ITEM+1>		; define phd table

                                     00BC   170 

                                     00BC   171 	.SAVE					; save current location

                                     00BC   172 

                                     00BC   173 

                                     00BC   174 ;

                                     00BC   175 ; Define Entries to ADRTBL

                                     00BC   176 ;

                                     00BC   177 

                                     00BC   178 	ADRITM	EXCVEC,CTL$AQ_EXCVEC		; address of exception vectors

                                     0008   179 	ADRITM	FINALEXC,CTL$AL_FINALEXC	; address of final exception vectors

                                     000C   180 

                                     000C   181 ;

                                     000C   182 ; Define Entries to CTLTBL

                                     000C   183 ;

                                     000C   184 

                                     000C   185 	CTLITM	VIRTPEAK,CTL$GL_VIRTPEAK,VALUE,4 ; peak virtual size

                                     0011   186 	CTLITM	WSPEAK,CTL$GL_WSPEAK,VALUE,4	; peak working set size

                                     0016   187 	CTLITM	USERNAME,CTL$T_USERNAME,BSTRING,12 ; username string

                                     001B   188 	CTLITM	ACCOUNT,CTL$T_ACCOUNT,BSTRING,8 ; account name string

                                     0020   189 	CTLITM	PROCPRIV,CTL$GQ_PROCPRIV,BSTRING,8 ; quadword process privileges

SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page   5

01              DECLARATIONS                                                                                                     (3)



                                     0025   190 	CTLITM	VOLUMES,CTL$GL_VOLUMES,VALUE,4	;  number of volumes mounted

                                     002A   191 	CTLITM	LOGINTIM,CTL$GQ_LOGIN,BSTRING,8	; process creation time

                                     002F   192 

                                     002F   193 

                                     002F   194 ;

                                     002F   195 ; Define Entries to PCBTBL

                                     002F   196 ;

                                     002F   197 

                                     002F   198 

                                     002F   199 	PCBITM	ASTACT,B_ASTACT,VALUE,1		; access modes with active ASTs

                                     0032   200 	PCBITM	ASTEN,B_ASTEN,VALUE,1		; access modes with ASTs enabled

                                     0035   201 	PCBITM	PRI,B_PRI,VALUE,1		; current process priority

                                     0038   202 	PCBITM	OWNER,L_OWNER,VALUE,4		; PID of creator

                                     003B   203 	PCBITM	UIC,L_UIC,VALUE,4		; UIC of process

                                     003E   204 	PCBITM	GRP,W_GRP,VALUE,2		; group field of UIC

                                     004A   205 	PCBITM	MEM,W_MEM,VALUE,2		; member field of UIC

                                     0047   206 	PCBITM	STS,L_STS,VALUE,4		; process status

                                     0041   207 	PCBITM	STATE,W_STATE,VALUE,2		; process state

                                     0044   208 	PCBITM	PRIB,B_PRIB,VALUE,1		; process base priority

                                     004D   209 	PCBITM	APTCNT,W_APTCNT,VALUE,2		; active page table count

                                     0050   210 	PCBITM	TMBU,W_TMBU,VALUE,2		; termination mailbox unit

                                     0053   211 	PCBITM	GPGCNT,W_GPGCNT,VALUE,2		; global page count in ws

                                     0056   212 	PCBITM	PPGCNT,W_PPGCNT,VALUE,2		; process page count in ws

                                     0059   213 	PCBITM	ASTCNT,W_ASTCNT,VALUE,2		; ast count remaining

                                     005C   214 	PCBITM	BIOCNT,W_BIOCNT,VALUE,2		; buffered I/O count remaining

                                     005F   215 	PCBITM	BIOLM,W_BIOLM,VALUE,2		; buffered I/O limit

                                     0062   216 	PCBITM	BYTCNT,W_BYTCNT,VALUE,2		; buffered I/O byte count remaining

                                     0065   217 	PCBITM	DIOCNT,W_DIOCNT,VALUE,2		; direct I/O count remaining

                                     0068   218 	PCBITM	DIOLM,W_DIOLM,VALUE,2		; direct I/O count limit

                                     006B   219 	PCBITM	FILCNT,W_FILCNT,VALUE,2		; open file count remaining

                                     006E   220 	PCBITM	TQCNT,W_TQCNT,VALUE,2		; count remaining of time queue entries

                                     0071   221 	PCBITM	EFWM,L_EFWM,VALUE,4		; event flag wait mask

                                     0074   222 	PCBITM	EFCS,L_EFCS,VALUE,4		; local event flags 0-31

                                     0077   223 	PCBITM	EFCU,L_EFCU,VALUE,4		; local event flags 32-64

                                     007A   224 	PCBITM	PID,L_PID,VALUE,4		; process identification

                                     007D   225 	PCBITM	BYTLM,W_BYTLM,VALUE,2		; buffered I/O byte count limit

                                     0080   226 	PCBITM	PRCCNT,W_PRCCNT,VALUE,2		; subprocess count

                                     0083   227 	PCBITM	PRCNAM,T_LNAME,CSTRING,16	; process name string

                                     0086   228 

                                     0086   229 ;

                                     0086   230 ; Define entries to PHDTBL

                                     0086   231 ;

                                     0086   232 

                                     0086   233 	PHDITM	CURPRIV,Q_PRIVMSK,BSTRING,8	; quadword current privilege mask

                                     0089   234 	PHDITM	WSSIZE,W_WSLAST,VALUE,2		; current working set size

                                     00BC   235 	PHDITM	WSAUTH,W_WSAUTH,VALUE,2		; authorized working set size

                                     008C   236 	PHDITM	WSQUOTA,W_WSQUOTA,VALUE,2	; quota on working set size

                                     008F   237 	PHDITM	DFWSCNT,W_DFWSCNT,VALUE,2	; default working set size

                                     0092   238 	PHDITM	FREP0VA,L_FREP0VA,VALUE,4	; first free addr. at end of P0 space

                                     0095   239 	PHDITM	FREP1VA,L_FREP1VA,VALUE,4	; first free addr. at end of P1 space

                                     0098   240 	PHDITM	DFPFC,B_DFPFC,VALUE,1		; default page fault cluster

                                     009B   241 	PHDITM	CPUTIM,L_CPUTIM,VALUE,4		; process cputime accumulated

                                     009E   242 	PHDITM	PRCLM,W_PRCLM,VALUE,2		; subprocess quota

                                     00A1   243 	PHDITM	ASTLM,W_ASTLM,VALUE,2		; ast limit

                                     00A4   244 	PHDITM	PAGEFLTS,L_PAGEFLTS,VALUE,4	; process accumulated faults

                                     00A7   245 	PHDITM	DIRIO,L_DIOCNT,VALUE,4		; accumulated direct I/Os

                                     00AA   246 	PHDITM	BUFIO,L_BIOCNT,VALUE,4		; accumulated buffered I/Os

SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page   6

01              DECLARATIONS                                                                                                     (3)



                                     00AD   247 	PHDITM	CPULIM,L_CPULIM,VALUE,4		; limit on cputime

                                     00B0   248 	PHDITM	PGFLQUOTA,L_PGFLQUOTA,VALUE,4	; max. virtual page count

                                     00B3   249 	PHDITM	FILLM,W_FILLM,VALUE,2		; open file limit

                                     00B6   250 	PHDITM	TQLM,W_TQLM,VALUE,2		; limit on time queue entries

                                     00B9   251 

                                     00B9   252 

                                 000000BC   253 	.RESTORE				; restore location

                                     00BC   254 

                                     00BC   255 ;

                                     00BC   256 ; Table to define items which must be handled

                                     00BC   257 ; by action routines.

                                     00BC   258 ;

                                     00BC   259 

                                     00BC   260 SPECIAL:

                                     00BC   261 	SPECIAL_ITEM	PRI,SPC_PRI		; handle priority ...

                                     00C2   262 	SPECIAL_ITEM	PRIB,SPC_PRI		; ... evaluations

                                     00C8   263 	SPECIAL_ITEM	WSSIZE,SPC_WORKSET	; compute working set

                                     00CE   264 	SPECIAL_ITEM	WSAUTH,SPC_WORKSET	; ...parameters

                                     00D4   265 	SPECIAL_ITEM	WSQUOTA,SPC_WORKSET	;

                                     00DA   266 	SPECIAL_ITEM	DFWSCNT,SPC_WORKSET	;

                                     00E0   267 

                           00000006  00E0   268 SPECIAL_LEN = <.-SPECIAL>/6			; compute number of entries

SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page   7

01              SYSGETJPI - GETJPI main program                                                                                  (4)



                                     00E0   270 	.SBTTL	SYSGETJPI - GETJPI main program

                                     00E0   271 

                                     00E0   272 

                                     00E0   273 ;++

                                     00E0   274 ;

                                     00E0   275 ; FUNCTIONAL DESCRIPTION:

                                     00E0   276 ;

                                     00E0   277 ;	This service allows a process to receive information about itself, or

                                     00E0   278 ;	information contained in the PCB of any other process which it has

                                     00E0   279 ;	the UIC privilege to examine.  The EFN, IOSB, and AST arguments

                                     00E0   280 ;	are currently unused and have been reserved for future expansion

                                     00E0   281 ;	of the service for retrieval of header and control region information

                                     00E0   282 ;	from other processes.

                                     00E0   283 ;	

                                     00E0   284 ; CALLING SEQUENCE:

                                     00E0   285 ;

                                     00E0   286 ;	CALLS/CALLG

                                     00E0   287 ;

                                     00E0   288 ; INPUTS:

                                     00E0   289 ;

                                     00E0   290 ;	EFN(AP) = number of the event flag to set when all of the requested

                                     00E0   291 ;		  data is valid (currently unused)

                                     00E0   292 ;	PIDADR(AP) = address of a longword containing the process ID of the

                                     00E0   293 ;		     process for which the information is being requested

                                     00E0   294 ;	PRCNAM(AP) = address of a string descriptor for the process name

                                     00E0   295 ;		     of the process for which the information is requested

                                     00E0   296 ;	ITMLST(AP) = address of a list of item descriptors of the form:

                                     00E0   297 ;

                                     00E0   298 ;		+-----------------------------+

                                     00E0   299 ;		!  ITEM CODE   !  BUF. LENGTH !

                                     00E0   300 ;		+-----------------------------+

                                     00E0   301 ;		!      BUFFER ADDRESS         !

                                     00E0   302 ;		+-----------------------------+

                                     00E0   303 ;		!  ADDRESS TO RETURN LENGTH   !

                                     00E0   304 ;		+-----------------------------+

                                     00E0   305 ;

                                     00E0   306 ;	IOSB(AP) = address of a quadword I/O status block to receive final

                                     00E0   307 ;		status (currently unused)

                                     00E0   308 ;	ASTADR(AP) = address of an AST routine to be called when all of the

                                     00E0   309 ;		requested data has been supplied ( currently unused )

                                     00E0   310 ;	ASTPRM(AP) = 32 bit ast parameter ( currently unused )

                                     00E0   311 ;

                                     00E0   312 ; IMPLICIT INPUTS:

                                     00E0   313 ;

                                     00E0   314 ;	none

                                     00E0   315 ;

                                     00E0   316 ; OUTPUTS:

                                     00E0   317 ;

                                     00E0   318 ;	none

                                     00E0   319 ;

                                     00E0   320 ; IMPLICIT OUTPUTS:

                                     00E0   321 ;

                                     00E0   322 ;	none

                                     00E0   323 ;

                                     00E0   324 ; ROUTINE VALUE:

                                     00E0   325 ;

                                     00E0   326 ;	SS$_NORMAL -> normal completion

SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page   8

01              SYSGETJPI - GETJPI main program                                                                                  (4)



                                     00E0   327 ;	SS$_ACCVIO -> ITMLST can not be read by the calling access mode,

                                     00E0   328 ;			or the return buffer or return length word can not

                                     00E0   329 ;			be written by the calling access mode

                                     00E0   330 ;	SS$_BADPARAM -> an invalid item identifier was supplied, or information

                                     00E0   331 ;			not contained in the PCB was requested about another

                                     00E0   332 ;			process.

                                     00E0   333 ;	SS$_IVLOGNAM -> zero or greater than maximum length process name string

                                     00E0   334 ;	SS$_NONEXPR -> nonexistent process or invalid process ID specified

                                     00E0   335 ;	SS$_NOPRIV -> calling process does not have privilege to get information

                                     00E0   336 ;		      about the specified process.

                                     00E0   337 ;

                                     00E0   338 ; SIDE EFFECTS:

                                     00E0   339 ;

                                     00E0   340 ;	none

                                     00E0   341 ;--

                                     00E0   342 

                                 00000000   343 	.PSECT	AEXENONPAGED

                                     0000   344 

                               03FC' 0000   345 	.ENTRY	EXE$GETJPI,^M<R2,R3,R4,R5,R6,R7,R8,R9>

                                     0002   346 

                                     0002   347 ;

                                     0002   348 ; Temporarily change argument pointer so that NAMPID will find

                                     0002   349 ; needed parameters on argument list.  Code containing NAMPID call must be

                                     0002   350 ; in nonpaged psect.

                                     0002   351 ;

                                     0002   352 

                                     0002   353 

            5C            04     C0  0002   354 	ADDL	#4,AP			; make PIDADR top argument

                          FFF8'  30  0005   355 	BSBW	EXE$NAMPID		; get PCB of wanted process

                                     0008   356 	SETIPL	#0			; allow interrupts

            5C            04     C2  000B   357 	SUBL	#4,AP			; put stack back in shape

                 000000E0'EF     17  000E   358 	JMP	JPI$PAGED		; jump to paged code

                                     0014   359 

                                 000000E0   360 	.PSECT	YEXEPAGED

                                     00E0   361 

                                     00E0   362 JPI$PAGED:

            4F            50     E9  00E0   363 	BLBC	R0,60$			; exit if invalid process specified

            59            54     D0  00E3   364 	MOVL	R4,R9			; copy PCB address

                          7E     7C  00E6   365 	CLRQ	-(SP)			; save space on stack for LOCAL_SPACE

                                     00E8   366 

                                     00E8   367 ;

                                     00E8   368 ; Loop through the item descriptor blocks, validating the item

                                     00E8   369 ; identifiers and moving items.  A zero item identifier terminates the

                                     00E8   370 ; list.

                                     00E8   371 ;

                                     00E8   372 

            55         10 AC     D0  00E8   373 	MOVL	ITMLST(AP),R5		; get item descriptor list address

                                     00EC   374 	IFNORD	#4,(R5),30$		; check first longword readable

                                     00F2   375 10$:

            56            85     3C  00F2   376 	MOVZWL	(R5)+,R6		; get buffer size

            51            85     3C  00F5   377 	MOVZWL	(R5)+,R1		; get item identifier

                          35     13  00F8   378 	BEQL	50$			; done if zero, take normal exit

                                     00FA   379 	IFNORD	#12,(R5),30$		; check rest of this descriptor ...

                                     0100   380 					; ... plus first longword of next one

            57            85     7D  0100   381 	MOVQ	(R5)+,R7		; get buffer address and return address

                                     0103   382 	IFNOWRT	R6,(R7),30$		; check user's buffer for write

                          55     DD  0109   383 	PUSHL	R5			; save R5 from action routines

SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page   9

01              SYSGETJPI - GETJPI main program                                                                                  (4)



                          26     10  010B   384 	BSBB	CHECKITEM		; validate identifier and get item info.

            1B            50     E9  010D   385 	BLBC	R0,40$			; invalid item if error

   00000000'EF            59     D1  0110   386 	CMPL	R9,SCH$GL_CURPCB	; is this for current process?

                          05     13  0117   387 	BEQL	20$			; branch if yes

            52            03     91  0119   388 	CMPB	#JPI$C_PCBTYPE,R2	; is this from the PCB then?

                          0D     12  011C   389 	BNEQ	40$			; invalid request if not

                          0082   30  011E   390 20$:	BSBW	MOVEIT			; move the item to buffer

                          55   8ED0  0121   391 	POPL	R5			; restore R5

            CB            50     E8  0124   392 	BLBS	R0,10$			; back for next descriptor if ok

                                     0127   393 					; ...else return length not writable

                                     0127   394 

            50            0C     3C  0127   395 30$:	MOVZWL	#SS$_ACCVIO,R0		; access violation

                                 04  012A   396 	RET

            50            14     3C  012B   397 40$:	MOVZWL	#SS$_BADPARAM,R0	; illegal item or request

                                 04  012E   398 	RET

            50            01     3C  012F   399 50$:	MOVZWL	#SS$_NORMAL,R0		; normal return

                                 04  0132   400 60$:	RET				; return

SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page  10

01              CHECKITEM - Validate item identifier                                                                             (5)



                                     0133   402 	.SBTTL	CHECKITEM - Validate item identifier

                                     0133   403 

                                     0133   404 ;++

                                     0133   405 ;

                                     0133   406 ; FUNCTIONAL DESCRIPTION:

                                     0133   407 ;

                                     0133   408 ;	Routine to validate item identifier and return information

                                     0133   409 ;	about the item.

                                     0133   410 ;

                                     0133   411 ; CALLING SEQUENCE:

                                     0133   412 ;

                                     0133   413 ;	JSB/BSB

                                     0133   414 ;

                                     0133   415 ; INPUTS:

                                     0133   416 ;

                                     0133   417 ;	R1 = item identifier

                                     0133   418 ;

                                     0133   419 ; IMPLICIT INPUTS:

                                     0133   420 ;

                                     0133   421 ;	none

                                     0133   422 ;

                                     0133   423 ; OUTPUTS:

                                     0133   424 ;

                                     0133   425 ;	R1 = item identifier

                                     0133   426 ;	R2 = structure number

                                     0133   427 ;	R3 = item length

                                     0133   428 ;	R4 = item address (actual address for PCB data, assumes current process

                                     0133   429 ;		for other data)

                                     0133   430 ;	R5 = item type code

                                     0133   431 ;

                                     0133   432 ; IMPLICIT OUTPUTS:

                                     0133   433 ;

                                     0133   434 ;	none

                                     0133   435 ;

                                     0133   436 ; ROUTINE VALUE:

                                     0133   437 ;

                                     0133   438 ;	R0 low bit clear -> successful return

                                     0133   439 ;	R0 low bit set -> invalid item identifier

                                     0133   440 ;

                                     0133   441 ; SIDE EFFECTS:

                                     0133   442 ;

                                     0133   443 ;	none

                                     0133   444 ;--

                                     0133   445 

                                     0133   446 CHECKITEM:

                          50     D4  0133   447 	CLRL	R0			; assume error

            53            51     9A  0135   448 	MOVZBL	R1,R3			; get item number

            08            08     EF  0138   449 	EXTZV	#8,#8,R1,R2		; get structure number

            52            51         013B       

                          63     13  013D   450 	BEQL	80$			; error if structure number zero

            04            52     91  013F   451 	CMPB	R2,#MAXSTRUC		; structure number valid?

                          5E     1A  0142   452 	BGTRU	80$			; error if not

       FEB5 CF42          53     91  0144   453 	CMPB	R3,MAXCOUNT-1[R2]	; check max item values (1 origin)

                          56     1A  014A   454 	BGTRU	80$			; error if illegal item number

                                     014C   455 	CASE	R2,<10$,50$,20$,30$>B,#1 ; case on structure base

                                     0158   456 

                                     0158   457 10$:					; item is an address

SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page  11

01              CHECKITEM - Validate item identifier                                                                             (5)



            54       FEA7 CF43   DE  0158   458 	MOVAL	ADRTBL[R3],R4		; address is table address

            53            04     D0  015E   459 	MOVL	#4,R3			; size of data is four bytes

            55            00     9A  0161   460 	MOVZBL	#VALUE,R5		; item is a value

                          3A     11  0164   461 	BRB	70$			; all done

                                     0166   462 20$:					; item is from PCB

            54            59     D0  0166   463 	MOVL	R9,R4			; get back PCB address

            55       FEC2 CF     DE  0169   464 	MOVAL	PCBTBL,R5		; get address of PCB item table

                          0C     11  016E   465 	BRB	40$			; continue

                                     0170   466 30$:					; item is from process header

            54   00000000'9F     D0  0170   467 	MOVL	@#CTL$GL_PHD,R4		; get process header address

            55       FF0B CF     DE  0177   468 	MOVAL	PHDTBL,R5		; get address of PHD item table

                                     017C   469 40$:

            53            03     C4  017C   470 	MULL	#3,R3			; compute index into item table

            53            55     C0  017F   471 	ADDL	R5,R3			; point to item information

            55            83     3C  0182   472 	MOVZWL	(R3)+,R5		; get offset into data structure

            54            55     C0  0185   473 	ADDL	R5,R4			; add to get item address

                          0C     11  0188   474 	BRB	60$			; 

                                     018A   475 50$:					; item is in control region

            53            05     C4  018A   476 	MULL	#5,R3			; compute index into item table

            53       FE7A CF43   9E  018D   477 	MOVAB	CTLTBL[R3],R3		; get address of item information

            54            83     D0  0193   478 	MOVL	(R3)+,R4		; get item address

            03            05     EF  0196   479 60$:	EXTZV	#5,#3,(R3),R5		; get item type code

            55            63         0199       

            05            00     EF  019B   480 	EXTZV	#0,#5,(R3),R3		; get item length

            53            63         019E       

                          50     D6  01A0   481 70$:	INCL	R0			; set successful return

                                 05  01A2   482 80$:	RSB				; return to caller

SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page  12

01              MOVEIT - Move data to user's buffer                                                                              (6)



                                     01A3   484 	.SBTTL	MOVEIT - Move data to user's buffer

                                     01A3   485 

                                     01A3   486 ;++

                                     01A3   487 ;

                                     01A3   488 ; FUNCTIONAL DESCRIPTION:

                                     01A3   489 ;

                                     01A3   490 ;	Move the requested data to user buffer. Zero fill to end of buffer.

                                     01A3   491 ;	Return actual data length to user.  Assumes user's buffer has

                                     01A3   492 ;	been probed.

                                     01A3   493 ;

                                     01A3   494 ; CALLING SEQUENCE:

                                     01A3   495 ;

                                     01A3   496 ;	JSB/BSB

                                     01A3   497 ;

                                     01A3   498 ; INPUTS:

                                     01A3   499 ;

                                     01A3   500 ;	R1 = item identifier

                                     01A3   501 ;	R2 = data structure number

                                     01A3   502 ;	R3 = item length

                                     01A3   503 ;	R4 = item address

                                     01A3   504 ;	R5 = item type code

                                     01A3   505 ;	R6 = user buffer length

                                     01A3   506 ;	R7 = user buffer address

                                     01A3   507 ;	R8 = address to return length

                                     01A3   508 ;

                                     01A3   509 ; IMPLICIT INPUTS:

                                     01A3   510 ;

                                     01A3   511 ;	none

                                     01A3   512 ;

                                     01A3   513 ; OUTPUTS:

                                     01A3   514 ;

                                     01A3   515 ;	none

                                     01A3   516 ;

                                     01A3   517 ; IMPLICIT OUTPUTS:

                                     01A3   518 ;

                                     01A3   519 ;	none

                                     01A3   520 ;

                                     01A3   521 ; ROUTINE VALUE:

                                     01A3   522 ;

                                     01A3   523 ;	R0 low bit set -> success

                                     01A3   524 ;	R0 low bit clear -> access violation on write of length

                                     01A3   525 ;

                                     01A3   526 ; SIDE EFFECTS:

                                     01A3   527 ;

                                     01A3   528 ;	Registers R1-R4 destroyed

                                     01A3   529 ;--

                                     01A3   530 

                                     01A3   531 MOVEIT:

                                     01A3   532 

                                     01A3   533 ;

                                     01A3   534 ; Call routine to check for special conditions

                                     01A3   535 ;

                                     01A3   536 

                          2C     10  01A3   537 	BSBB	CHECK_SPC

                                     01A5   538 

                                     01A5   539 ;

                                     01A5   540 ; Check for counted string, and find actual length if so.

SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page  13

01              MOVEIT - Move data to user's buffer                                                                              (6)



                                     01A5   541 ;

                                     01A5   542 

            55            02     D1  01A5   543 	CMPL	#CSTRING,R5		; is this special string?

                          03     12  01A8   544 	BNEQ	10$			; branch if not

            53            84     9A  01AA   545 	MOVZBL	(R4)+,R3		; get length and skip length byte

                          28     BB  01AD   546 10$:	PUSHR	#^M<R3,R5>		; save needed registers from movc

            64            53     2C  01AF   547 	MOVC5	R3,(R4),#0,R6,(R7)	; move data to user's buffer, zero fill

            56            00         01B2       

                          67         01B4       

                          28     BA  01B5   548 	POPR	#^M<R3,R5>		; restore registers

                          50     D4  01B7   549 	CLRL	R0			; set error code return

                          58     D5  01B9   550 	TSTL	R8			; did caller want return length?

                          11     13  01BB   551 	BEQL	30$			; branch if not

                                     01BD   552 	IFNOWRT	#2,(R8),40$		; exit if word not writable

            56            53     D1  01C3   553 	CMPL	R3,R6			; see how much was moved

                          03     15  01C6   554 	BLEQ	20$			; use valid data length if it fit

            53            56     D0  01C8   555 	MOVL	R6,R3			; else give him "too short" buffer size

            68            53     B0  01CB   556 20$:	MOVW	R3,(R8)			; return length to user

                          50     D6  01CE   557 30$:	INCL	R0			; set success code

                                 05  01D0   558 40$:	RSB				; return

SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page  14

01              SPECIAL - Handle special conditions                                                                              (7)



                                     01D1   560 	.SBTTL	SPECIAL - Handle special conditions

                                     01D1   561 

                                     01D1   562 ;++

                                     01D1   563 ;

                                     01D1   564 ; FUNCTIONAL DESCRIPTION:

                                     01D1   565 ;

                                     01D1   566 ;	These routines handle data items which must be transformed

                                     01D1   567 ;	before they are returned to the user.  Generally, some

                                     01D1   568 ;	transformation is applied to the data item and the newly

                                     01D1   569 ;	computed item is stored in LOCAL_SPACE on the stack.

                                     01D1   570 ;	The handling routine then changes R4 to point to LOCAL_SPACE

                                     01D1   571 ;	so that MOVEIT will move the item from local storage.

                                     01D1   572 ;

                                     01D1   573 ; CALLING SEQUENCE:

                                     01D1   574 ;

                                     01D1   575 ;	JSB/BSB

                                     01D1   576 ;

                                     01D1   577 ; INPUTS:

                                     01D1   578 ;

                                     01D1   579 ;	R1 = item identifier

                                     01D1   580 ;	R3 = item length

                                     01D1   581 ;	R4 = item address

                                     01D1   582 ;

                                     01D1   583 ; IMPLICIT INPUTS:

                                     01D1   584 ;

                                     01D1   585 ;	none

                                     01D1   586 ;

                                     01D1   587 ; OUTPUTS:

                                     01D1   588 ;

                                     01D1   589 ;	none

                                     01D1   590 ;

                                     01D1   591 ; IMPLICIT OUTPUTS:

                                     01D1   592 ;

                                     01D1   593 ;	none

                                     01D1   594 ;

                                     01D1   595 ; ROUTINE VALUE:

                                     01D1   596 ;

                                     01D1   597 ;	none

                                     01D1   598 ;

                                     01D1   599 ; SIDE EFFECTS:

                                     01D1   600 ;

                                     01D1   601 ;	none

                                     01D1   602 ;--

                                     01D1   603 

                                     01D1   604 CHECK_SPC:

                                     01D1   605 

                                     01D1   606 ;

                                     01D1   607 ; Registers R5 and R6 are saved at this level and may be used by

                                     01D1   608 ; the action routines without being saved.  Action routines are JSB'ed

                                     01D1   609 ; to with R5 containing the address of LOCAL_SPACE on the stack.

                                     01D1   610 ;

                                     01D1   611 

            7E            55     7D  01D1   612 	MOVQ	R5,-(SP)		; save registers

            55            06     D0  01D4   613 	MOVL	#SPECIAL_LEN,R5		; get number of table entries

            56       FEE1 CF     DE  01D7   614 	MOVAL	SPECIAL,R6		; get address of table

                                     01DC   615 10$:

            86            51     B1  01DC   616 	CMPW	R1,(R6)+		; does entry match item?

SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page  15

01              SPECIAL - Handle special conditions                                                                              (7)



                          08     13  01DF   617 	BEQL	20$			; yes, go handle it

            56            04     C0  01E1   618 	ADDL	#4,R6			; skip handler address

            F5            55     F5  01E4   619 	SOBGTR	R5,10$			; scan rest of table

                          06     11  01E7   620 	BRB	30$			; nothing to do, exit

                                     01E9   621 20$:

            55         F8 AD     DE  01E9   622 	MOVAL	LOCAL_SPACE(FP),R5	; load local address for action routine

                          96     16  01ED   623 	JSB	@(R6)+			; call action routine

                                     01EF   624 30$:

            55            8E     7D  01EF   625 	MOVQ	(SP)+,R5		; restore registers

                                 05  01F2   626 	RSB

                                     01F3   627 ;

                                     01F3   628 ; Data handling routines

                                     01F3   629 ;

                                     01F3   630 

                                     01F3   631 ;

                                     01F3   632 ; Internal priority must be subtracted from 31 before being returned.

                                     01F3   633 ;

                                     01F3   634 

                                     01F3   635 SPC_PRI:

            1F            64     83  01F3   636 	SUBB3	(R4),#31,(R5)		; compute external priority

                          65         01F6       

            54            55     D0  01F7   637 	MOVL	R5,R4			; change address for move routine

                                 05  01FA   638 	RSB

                                     01FB   639 

                                     01FB   640 ;

                                     01FB   641 ; Working set pointers are indices into working set list

                                     01FB   642 ; and must be subtracted from first list element.

                                     01FB   643 ;

                                     01FB   644 

                                     01FB   645 SPC_WORKSET:

            56   00000000'9F     D0  01FB   646 	MOVL	@#CTL$GL_PHD,R6		; get process header address

            64         08 A6     A3  0202   647 	SUBW3	PHD$W_WSLIST(R6),(R4),(R5) ; compute argument size

                          65         0206       

            54            55     D0  0207   648 	MOVL	R5,R4			; change item address

                          64     B6  020A   649 	INCW	(R4)			; must add one to index

                                 05  020C   650 	RSB

                                     020D   651 

                                     020D   652 	.END

SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page  16

SYMBOL TABLE                                                                                                                     (7)



ADRTBL           00000004 R     03   JPI$_FREP0VA   = 00000404            PCB$L_OWNER      0000001C            

ASTADR         = 00000018            JPI$_FREP1VA   = 00000405            PCB$L_PHD        00000064            

ASTPRM         = 0000001C            JPI$_GPGCNT    = 0000030C            PCB$L_PHYPCB     00000018            

BIT...         = 00000000            JPI$_GRP       = 00000308            PCB$L_PID        00000060            

BSTRING        = 00000001            JPI$_LASTADR   = 00000102            PCB$L_PQB        0000004C            

CHECKITEM        00000133 R     03   JPI$_LASTCTL   = 00000207            PCB$L_SQBL       00000004            

CHECK_SPC        000001D1 R     03   JPI$_LASTPCB   = 0000031D            PCB$L_SQFL       00000000            

CSTRING        = 00000002            JPI$_LASTPHD   = 00000412            PCB$L_STS        00000028            

CTL$AL_FINALEXC  ********   X   03   JPI$_LOGINTIM  = 00000206            PCB$L_UIC        00000020            

CTL$AQ_EXCVEC    ********   X   03   JPI$_MEM       = 00000307            PCB$L_WSSWP      00000024            

CTL$GL_PHD       ********   X   03   JPI$_OWNER     = 00000303            PCB$L_WTIME      0000002C            

CTL$GL_VIRTPEAK  ********   X   03   JPI$_PAGEFLTS  = 0000040A            PCB$T_LNAME      0000006C            

CTL$GL_VOLUMES   ********   X   03   JPI$_PGFLQUOTA = 0000040E            PCB$V_ASTPEN   = 00000011            

CTL$GL_WSPEAK    ********   X   03   JPI$_PID       = 00000319            PCB$V_BATCH    = 0000000E            

CTL$GQ_LOGIN     ********   X   03   JPI$_PPGCNT    = 0000030D            PCB$V_DELPEN   = 00000001            

CTL$GQ_PROCPRIV  ********   X   03   JPI$_PRCCNT    = 0000031B            PCB$V_FORCPEN  = 00000002            

CTL$T_ACCOUNT    ********   X   03   JPI$_PRCLM     = 00000408            PCB$V_HIBER    = 00000013            

CTL$T_USERNAME   ********   X   03   JPI$_PRCNAM    = 0000031C            PCB$V_INQUAN   = 00000003            

CTLTBL           0000000C R     03   JPI$_PRI       = 00000302            PCB$V_LOGIN    = 00000014            

EFN            = 00000004            JPI$_PRIB      = 00000309            PCB$V_NOACNT   = 0000000F            

EXE$GETJPI       00000000 RG    04   JPI$_PROCPRIV  = 00000204            PCB$V_PHDRES   = 00000012            

EXE$NAMPID       ********   X   04   JPI$_STATE     = 00000306            PCB$V_PSWAPM   = 00000004            

GBL...         = 00000000            JPI$_STS       = 00000305            PCB$V_RES      = 00000000            

IOSB           = 00000014            JPI$_TMBU      = 0000030B            PCB$V_RESPEN   = 00000005            

ITMLST         = 00000010            JPI$_TQCNT     = 00000315            PCB$V_SSFEXC   = 00000006            

JPI$C_ADRTYPE  = 00000001            JPI$_TQLM      = 00000410            PCB$V_SSFEXCE  = 00000007            

JPI$C_CTLTYPE  = 00000002            JPI$_UIC       = 00000304            PCB$V_SSFEXCS  = 00000008            

JPI$C_LISTEND  = 00000000            JPI$_USERNAME  = 00000202            PCB$V_SSFEXCU  = 00000009            

JPI$C_PCBTYPE  = 00000003            JPI$_VIRTPEAK  = 00000200            PCB$V_SSRWAIT  = 0000000A            

JPI$C_PHDTYPE  = 00000004            JPI$_VOLUMES   = 00000205            PCB$V_SUSPEN   = 0000000B            

JPI$PAGED        000000E0 R     03   JPI$_WSAUTH    = 00000401            PCB$V_SWPVBN   = 00000010            

JPI$_ACCOUNT   = 00000203            JPI$_WSPEAK    = 00000201            PCB$V_WAKEPEN  = 0000000C            

JPI$_APTCNT    = 0000030A            JPI$_WSQUOTA   = 00000402            PCB$V_WALL     = 0000000D            

JPI$_ASTACT    = 00000300            JPI$_WSSIZE    = 00000411            PCB$W_APTCNT     00000034            

JPI$_ASTCNT    = 0000030E            LOCAL_SPACE    = FFFFFFF8            PCB$W_ASTCNT     0000003C            

JPI$_ASTEN     = 00000301            MAXCOUNT         00000000 R     03   PCB$W_BIOCNT     0000003E            

JPI$_ASTLM     = 00000409            MAXSTRUC       = 00000004            PCB$W_BIOLM      00000040            

JPI$_BIOCNT    = 0000030F            MAX_ADR_ITEM   = 00000001            PCB$W_BYTCNT     00000042            

JPI$_BIOLM     = 00000310            MAX_CTL_ITEM   = 00000006            PCB$W_BYTLM      00000068            

JPI$_BUFIO     = 0000040C            MAX_PCB_ITEM   = 0000001C            PCB$W_DIOCNT     00000044            

JPI$_BYTCNT    = 00000311            MAX_PHD_ITEM   = 00000011            PCB$W_DIOLM      00000046            

JPI$_BYTLM     = 0000031A            MOVEIT           000001A3 R     03   PCB$W_FILCNT     00000048            

JPI$_CPULIM    = 0000040D            PCB$B_ASTACT     0000000C            PCB$W_GPGCNT     00000038            

JPI$_CPUTIM    = 00000407            PCB$B_ASTEN      0000000D            PCB$W_GRP        00000022            

JPI$_CURPRIV   = 00000400            PCB$B_PRI        0000000B            PCB$W_MEM        00000020            

JPI$_DFPFC     = 00000406            PCB$B_PRIB       00000033            PCB$W_MTXCNT     0000000E            

JPI$_DFWSCNT   = 00000403            PCB$B_TYPE       0000000A            PCB$W_PPGCNT     0000003A            

JPI$_DIOCNT    = 00000312            PCB$B_WEFC       00000032            PCB$W_PRCCNT     0000006A            

JPI$_DIOLM     = 00000313            PCB$C_LENGTH     0000007C            PCB$W_SIZE       00000008            

JPI$_DIRIO     = 0000040B            PCB$K_LENGTH     0000007C            PCB$W_STATE      00000030            

JPI$_EFCS      = 00000317            PCB$L_ASTQBL     00000014            PCB$W_TMBU       00000036            

JPI$_EFCU      = 00000318            PCB$L_ASTQFL     00000010            PCB$W_TQCNT      0000004A            

JPI$_EFWM      = 00000316            PCB$L_EFC2P      00000058            PCBTBL           0000002F R     03   

JPI$_EXCVEC    = 00000100            PCB$L_EFC3P      0000005C            PHD$B_ASTLVL     000000CF            

JPI$_FILCNT    = 00000314            PCB$L_EFCS       00000050            PHD$B_DFPFC      00000038            

JPI$_FILLM     = 0000040F            PCB$L_EFCU       00000054            PHD$B_PAGFIL     0000001F            

JPI$_FINALEXC  = 00000101            PCB$L_EFWM       0000004C            PHD$C_LENGTH     000000D8            

SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page  17

SYMBOL TABLE                                                                                                                     (7)



PHD$K_LENGTH     000000D8            PHD$W_PHVINDEX   00000046            PR$_TXCS       = 00000022            

PHD$L_BIOCNT     00000054            PHD$W_PRCLM      00000042            PR$_TXDB       = 00000023            

PHD$L_CPULIM     00000058            PHD$W_PST        00000020            PR$_USP        = 00000003            

PHD$L_CPUTIM     0000003C            PHD$W_PSTFREE    00000026            PR$_WCSA       = 0000002C            

PHD$L_DIOCNT     00000050            PHD$W_PSTLAST    00000024            PR$_WCSD       = 0000002D            

PHD$L_ESP        0000007C            PHD$W_PTCNTACT   00000070            PRCNAM         = 0000000C            

PHD$L_FREP0VA    00000028            PHD$W_PTCNTLCK   0000006C            SCH$GL_CURPCB    ********   X   03   

PHD$L_FREP1VA    00000030            PHD$W_PTCNTMAX   00000072            SPC_PRI          000001F3 R     03   

PHD$L_FREPTECNT  0000002C            PHD$W_PTCNTVAL   0000006E            SPC_WORKSET      000001FB R     03   

PHD$L_KSP        00000078            PHD$W_QUANT      00000040            SPECIAL          000000BC R     03   

PHD$L_P0BR       000000C8            PHD$W_TQLM       00000062            SPECIAL_LEN    = 00000006            

PHD$L_P0LRASTL   000000CC            PHD$W_WSAUTH     0000000A            SS$_ABORT      = 0000002C            

PHD$L_P1BR       000000D0            PHD$W_WSDYN      0000000E            SS$_ACCONFLICT = 00000800            

PHD$L_P1LR       000000D4            PHD$W_WSFLUID    00000074            SS$_ACCVIO     = 0000000C            

PHD$L_PAGEFLTS   0000004C            PHD$W_WSLAST     00000012            SS$_ARITH      = 00000404            

PHD$L_PAGFIL     0000001C            PHD$W_WSLIST     00000008            SS$_ASTFLT     = 0000040C            

PHD$L_PC         000000C0            PHD$W_WSLOCK     0000000C            SS$_BADATTRIB  = 00000034            

PHD$L_PCB        00000078            PHD$W_WSLX       0000004A            SS$_BADCHKSUM  = 00000808            

PHD$L_PGFLCNT    00000034            PHD$W_WSNEXT     00000010            SS$_BADESCAPE  = 0000003C            

PHD$L_PGFLQUOTA  0000005C            PHD$W_WSQUOTA    00000018            SS$_BADFILEHDR = 00000810            

PHD$L_PSL        000000C4            PHDTBL           00000086 R     03   SS$_BADFILENAME= 00000818            

PHD$L_PSTBASOFF  00000020            PIDADR         = 00000008            SS$_BADFILEVER = 00000820            

PHD$L_PTWSLELCK  00000064            PR$_ACCR       = 00000029            SS$_BADIMGHDR  = 00000044            

PHD$L_PTWSLEVAL  00000068            PR$_ACCS       = 00000028            SS$_BADIRECTORY= 00000828            

PHD$L_R0         00000088            PR$_ASTLVL     = 00000013            SS$_BADPARAM   = 00000014            

PHD$L_R1         0000008C            PR$_ESP        = 00000001            SS$_BADSTACK   = 000002B4            

PHD$L_R10        000000B0            PR$_ICCS       = 00000018            SS$_BEGOFFILE  = 00000938            

PHD$L_R11        000000B4            PR$_ICR        = 0000001A            SS$_BLOCKCNTERR= 00000940            

PHD$L_R12        000000B8            PR$_IPL        = 00000012            SS$_BREAK      = 00000414            

PHD$L_R13        000000BC            PR$_ISP        = 00000004            SS$_BUFFEROVF  = 00000601            

PHD$L_R2         00000090            PR$_KSP        = 00000000            SS$_BUGCHECK   = 000002A4            

PHD$L_R3         00000094            PR$_MAPEN      = 00000038            SS$_CANCEL     = 00000830            

PHD$L_R4         00000098            PR$_NICR       = 00000019            SS$_CHANINTLK  = 0000004C            

PHD$L_R5         0000009C            PR$_P0BR       = 00000008            SS$_CLIFRCEXT  = 00000980            

PHD$L_R6         000000A0            PR$_P0LR       = 00000009            SS$_CMODSUPR   = 0000041C            

PHD$L_R7         000000A4            PR$_P1BR       = 0000000A            SS$_CMODUSER   = 00000424            

PHD$L_R8         000000A8            PR$_P1LR       = 0000000B            SS$_COMPAT     = 0000042C            

PHD$L_R9         000000AC            PR$_PCBB       = 00000010            SS$_CONTINUE   = 00000001            

PHD$L_SSP        00000080            PR$_RXCS       = 00000020            SS$_CONTROLC   = 00000651            

PHD$L_USP        00000084            PR$_RXDB       = 00000021            SS$_CONTROLO   = 00000609            

PHD$L_WSL        000000D8            PR$_SBIER      = 00000034            SS$_CONTROLY   = 00000611            

PHD$M_DALCSTX  = 00000002            PR$_SBIFS      = 00000030            SS$_CREATED    = 00000619            

PHD$M_PFMFLG   = 00000001            PR$_SBIMT      = 00000033            SS$_CTRLERR    = 00000054            

PHD$Q_PRIVMSK    00000000            PR$_SBIQC      = 00000036            SS$_DATACHECK  = 0000005C            

PHD$S_ASTLVL   = 00000008            PR$_SBIS       = 00000031            SS$_DATAOVERUN = 00000838            

PHD$S_P0LR     = 00000018            PR$_SBISC      = 00000032            SS$_DEBUG      = 0000046C            

PHD$V_ASTLVL   = 00000018            PR$_SBITA      = 00000035            SS$_DEVACTIVE  = 000002C4            

PHD$V_DALCSTX  = 00000001            PR$_SBR        = 0000000C            SS$_DEVALLOC   = 00000840            

PHD$V_P0LR     = 00000000            PR$_SCBB       = 00000011            SS$_DEVALRALLOC= 00000641            

PHD$V_PFMFLG   = 00000000            PR$_SID        = 0000003E            SS$_DEVASSIGN  = 00000848            

PHD$W_ASTLM      00000044            PR$_SIRR       = 00000014            SS$_DEVFOREIGN = 00000064            

PHD$W_BAK        00000048            PR$_SISR       = 00000015            SS$_DEVICEFULL = 00000850            

PHD$W_DFWSCNT    0000001A            PR$_SLR        = 0000000D            SS$_DEVMOUNT   = 0000006C            

PHD$W_EXTDYNWS   00000076            PR$_SSP        = 00000002            SS$_DEVNOTALLOC= 00000858            

PHD$W_FILLM      00000060            PR$_TBIA       = 00000039            SS$_DEVNOTMBX  = 00000074            

PHD$W_FLAGS      0000003A            PR$_TBIS       = 0000003A            SS$_DEVNOTMOUNT= 0000007C            

PHD$W_PFMFLG     0000003A            PR$_TODR       = 0000001B            SS$_DEVOFFLINE = 00000084            

SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page  18

SYMBOL TABLE                                                                                                                     (7)



SS$_DIRFULL    = 00000860            SS$_IVSTSFLG   = 0000017C            SS$_TOOMANYVER = 00000990            

SS$_DRVERR     = 0000008C            SS$_IVTIME     = 00000184            SS$_TOOMUCHDATA= 0000029C            

SS$_DUPFILENAME= 00000868            SS$_LENVIO     = 0000018C            SS$_UNASEFC    = 00000234            

SS$_DUPLNAM    = 00000094            SS$_LKWSETFUL  = 00000194            SS$_UNSAFE     = 0000023C            

SS$_ENDOFFILE  = 00000870            SS$_MBFULL     = 000008D8            SS$_UNWIND     = 00000920            

SS$_ENDOFTAPE  = 00000878            SS$_MBTOOSML   = 0000019C            SS$_UNWINDING  = 00000928            

SS$_ENDOFUSRLBL= 00000970            SS$_MCHECK     = 000002BC            SS$_VASFULL    = 00000244            

SS$_EXQUOTA    = 0000001C            SS$_MEDOFL     = 000001A4            SS$_VECINUSE   = 0000024C            

SS$_EXTIDXFILE = 00000880            SS$_MSGNOTFND  = 00000621            SS$_VOLINV     = 00000254            

SS$_FCPREADERR = 00000888            SS$_MUSTCLOSEFL= 00000948            SS$_WAITUSRLBL = 00000950            

SS$_FCPREPSTN  = 00000988            SS$_NODATA     = 000001AC            SS$_WASCLR     = 00000001            

SS$_FCPREWNDERR= 00000890            SS$_NOHANDLER  = 000008F8            SS$_WASECC     = 00000639            

SS$_FCPSPACERR = 00000898            SS$_NOHOMEBLK  = 000008E0            SS$_WASSET     = 00000009            

SS$_FCPWRITERR = 000008A0            SS$_NOIOCHAN   = 000001B4            SS$_WRITLCK    = 0000025C            

SS$_FILACCERR  = 0000009C            SS$_NOLINKS    = 0000027C            VALUE          = 00000000            

SS$_FILALRACC  = 000000A4            SS$_NOLOGNAM   = 000001BC            

SS$_FILELOCKED = 000008A8            SS$_NOMBX      = 00000274            

SS$_FILENUMCHK = 000008B0            SS$_NOMOREFILES= 00000930            

SS$_FILESEQCHK = 000008B8            SS$_NONEXDRV   = 000001C4            

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

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

SS$_FILNOTCNTG = 000002AC            SS$_NOPRIV     = 00000024            

SS$_FILNOTEXP  = 000000B4            SS$_NORMAL     = 00000001            

SS$_FORMAT     = 000000BC            SS$_NOSIGNAL   = 00000900            

SS$_GPTFULL    = 000000C4            SS$_NOSOLICIT  = 00000284            

SS$_GSDFULL    = 000000CC            SS$_NOSUCHDEV  = 00000908            

SS$_GSDNOTXXX  = 000000D4            SS$_NOSUCHFILE = 00000910            

SS$_HANGUP     = 000002CC            SS$_NOSUCHNODE = 0000028C            

SS$_HEADERFULL = 000008C8            SS$_NOSUCHSEC  = 00000978            

SS$_IDXFILEFULL= 000008D0            SS$_NOTAPEOP   = 00000264            

SS$_ILLBLKNUM  = 000000DC            SS$_NOTFILEDEV = 000001CC            

SS$_ILLCNTRFUNC= 000000E4            SS$_NOTINTBLSZ = 000001D4            

SS$_ILLEFC     = 000000EC            SS$_NOTLABELMT = 000001DC            

SS$_ILLIOFUNC  = 000000F4            SS$_NOTNETDEV  = 000002EC            

SS$_ILLLBLAST  = 00000968            SS$_NOTRAN     = 00000629            

SS$_ILLPAGCNT  = 000000FC            SS$_NOTSQDEV   = 000001E4            

SS$_ILLSEQOP   = 000002DC            SS$_OPCCUS     = 00000434            

SS$_ILLSER     = 00000104            SS$_OPCDEC     = 0000043C            

SS$_ILLUSRLBLRD= 00000958            SS$_OPINCOMPL  = 000002D4            

SS$_ILLUSRLBLWT= 00000960            SS$_PAGOWNVIO  = 000001EC            

SS$_INCVOLLABEL= 0000010C            SS$_PAGRDERR   = 00000444            

SS$_INSFARG    = 00000114            SS$_PARITY     = 000001F4            

SS$_INSFMEM    = 00000124            SS$_PARTESCAPE = 000001FC            

SS$_INSFRAME   = 0000012C            SS$_PFMBSY     = 00000204            

SS$_INSFWSL    = 0000011C            SS$_PSTFULL    = 0000020C            

SS$_IVADDR     = 00000134            SS$_RADRMOD    = 0000044C            

SS$_IVCHAN     = 0000013C            SS$_REJECT     = 00000294            

SS$_IVCHNLSEC  = 0000026C            SS$_REMOTE     = 00000649            

SS$_IVDEVNAM   = 00000144            SS$_RESIGNAL   = 00000918            

SS$_IVGSDNAM   = 0000014C            SS$_RESULTOVF  = 00000214            

SS$_IVLOGNAM   = 00000154            SS$_ROPRAND    = 00000454            

SS$_IVLOGTAB   = 0000015C            SS$_SECTBLFUL  = 0000021C            

SS$_IVPROTECT  = 000002F4            SS$_SSFAIL     = 0000045C            

SS$_IVQUOTAL   = 00000164            SS$_SUPERSEDE  = 00000631            

SS$_IVSECFLG   = 0000016C            SS$_TAPEPOSLOST= 00000224            

SS$_IVSECIDCTL = 000002E4            SS$_TBIT       = 00000464            

SS$_IVSSRQ     = 00000174            SS$_TIMEOUT    = 0000022C            

SYSGETJPI       - GET JOB PROCESS INFORMATION SYSTEM SERVICE     21-AUG-1978 23:41:34   VAX-11 MACRO X0.3-11               Page  19

PROGRAM SECTION SYNOPSIS                                                                                                         (7)







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  

$ABS$            000000DC      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

YEXEPAGED        0000020D      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

AEXENONPAGED     00000014      04     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

12632. BYTES LEFT IN FREE MEMORY POOL.

2406. BYTES OF RECLAIMED MEMORY.

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

7 MLB DIR RDS - 746 GETS TO DEFINE 18 MACROS. 54 INTER. FILE WRITES. 

