IOLOCK          - LOCK AND UNLOCK PAGES FOR I/O                  22-AUG-1978 00:13:12   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      32  HISTORY			; DETAILED

   (1)      41  DECLARATIONS

   (4)     220  IOLOCKPAG - LOCK INDIVIDUAL PAGE FOR I/O

   (5)     292  UNLOCK PAGES AT COMPLETION OF I/O

IOLOCK          - LOCK AND UNLOCK PAGES FOR I/O                  22-AUG-1978 00:13:12   VAX-11 MACRO X0.3-11               Page   1

00                                                                                                                               (1)



                                     0000     1 	.TITLE	IOLOCK - LOCK AND UNLOCK PAGES FOR I/O

                                     0000     2 	.IDENT	/00/

                                     0000     3 ;

                                     0000     4 ; COPYRIGHT (C) 1977

                                     0000     5 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000     6 ;

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

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

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

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

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

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

                                     0000    13 ; REMAIN IN DEC.

                                     0000    14 ;

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

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

                                     0000    17 ; CORPORATION.

                                     0000    18 ;

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

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

                                     0000    21 

                                     0000    22 ;++

                                     0000    23 ; FACILITY:	EXECUTIVE, MEMORY MANAGEMENT SUBROUTINES

                                     0000    24 ;

                                     0000    25 ; ABSTRACT: THIS SUBSTITUTE ROUTINE IS PRESENT IN THE CORE-ONLY SYSTEM

                                     0000    26 ; TO SATISFY THE CALLS TO LOCK AND UNLOCK PAGES FOR I/O

                                     0000    27 ;

                                     0000    28 ; ENVIRONMENT:	KERNEL MODE

                                     0000    29 ;

                                     0000    30 ;--

                                     0000    31 ;

                                     0000    32 	.SBTTL	HISTORY			; DETAILED

                                     0000    33 ;

                                     0000    34 ; AUTHOR: PETER H. LIPMAN	, CREATION DATE: 17-SEP-76

                                     0000    35 ;

                                     0000    36 ; MODIFIED BY:

                                     0000    37 ;	C. A. MONIA, 7-DEC-1977 : VERSION 00

                                     0000    38 ; 01	- EDITED FOR STAND-ALONE DSC SYSTEM SYSTEM

                                     0000    39 

IOLOCK          - LOCK AND UNLOCK PAGES FOR I/O                  22-AUG-1978 00:13:12   VAX-11 MACRO X0.3-11               Page   2

00              DECLARATIONS                                                                                                     (1)



                                     0000    41 	.SBTTL	DECLARATIONS

                                     0000    42 

                                     0000    43 ;

                                     0000    44 ; INCLUDE FILES:

                                     0000    45 ;

                                     0000    46 	$IPLDEF				;PRIORITY LEVEL DEFINITIONS

                                     0000    47 	$PCBDEF				;PROCESS CONTROL BLOCK DEFINITIONS

                                     0000    48 	$PFNDEF				;PFN DATA BASE DEFINITIONS

                                     0000    49 	$PHDDEF				;PROCESS HEADER DEFINITIONS

                                     0000    50 	$PRDEF				;PROCESSOR REGISTER DEFINITIONS

                                     0000    51 	$PTEDEF				;PAGE TABLE ENTRY DEFINTIONS

                                     0000    52 	$SSDEF				;SYSTEM STATUS DEFINITIONS

                                     0000    53 	$VADEF				;VIRTUAL ADDRESS VIELDS

                                     0000    54 	$WSLDEF				;WORKING SET LIST DEFINITIONS

                                     0000    55 ;

                                     0000    56 ; EXTERNAL SYMBOLS:

                                     0000    57 ;

                                     0000    58 

                                     0000    59 ;

                                     0000    60 ; MACROS:

                                     0000    61 ;

                                     0000    62 

                                     0000    63 ;

                                     0000    64 ; EQUATED SYMBOLS:

                                     0000    65 ;

                                     0000    66 

                                     0000    67 ;

                                     0000    68 ; OWN STORAGE:

                                     0000    69 ;

                                     0000    70 ;

                                     0000    71 ; **********************************************************************

                                     0000    72 ;

                                     0000    73 ; **************** THIS ENTIRE MODULE MUST BE RESIDENT *****************

                                     0000    74 ;

                                 00000000    75 	.PSECT	$MMGCOD

                                     0000    76 ;

                                     0000    77 ; **********************************************************************

                                     0000    78 ;

IOLOCK          - LOCK AND UNLOCK PAGES FOR I/O                  22-AUG-1978 00:13:12   VAX-11 MACRO X0.3-11               Page   3

00              DECLARATIONS                                                                                                     (2)



                                     0000    80 ;++

                                     0000    81 ; FUNCTIONAL DESCRIPTION:

                                     0000    82 ;

                                     0000    83 ;	IOLOCK ACCEPTS A VIRTUAL ADDRESS AND BYTE COUNT OF AN I/O BUFFER

                                     0000    84 ;	AND A DIRECTION OF TRANSFER INDICATOR.  THE SPECIFIED PAGES

                                     0000    85 ;	ARE MADE RESIDENT AND MARKED MODIFIED IF APPROPRIATE, AND THEN

                                     0000    86 ;	THEY ARE LOCKED INTO MEMORY BY INCREMENTING THEIR REFERENCE COUNTS.

                                     0000    87 ;

                                     0000    88 ; CALLING SEQUENCE:

                                     0000    89 ;

                                     0000    90 ;	BSBW	MMG$IOLOCK

                                     0000    91 ;

                                     0000    92 ;

                                     0000    93 ; INPUT PARAMETERS:

                                     0000    94 ;

                                     0000    95 ;	R0 = VIRTUAL ADDRESS OF BEGINNING OF BUFFER

                                     0000    96 ;	R1 = SIZE OF BUFFER IN BYTES

                                     0000    97 ;	R2 = TRANSFER DIRECTION INDICATOR

                                     0000    98 ;		0 = WRITE OUT OF MEMORY TO I/O DEVICE

                                     0000    99 ;		1 = READ INTO MEMORY FROM I/O DEVICE

                                     0000   100 ;	R4 = CURRENT PROCESS PCB ADDRESS

                                     0000   101 ;

                                     0000   102 ;	IPL MUST BE AT ASTDEL

                                     0000   103 ;

                                     0000   104 ; IMPLICIT INPUTS:

                                     0000   105 ;

                                     0000   106 ;	NONE

                                     0000   107 ;

                                     0000   108 ; OUTPUT PARAMETERS:

                                     0000   109 ;

                                     0000   110 ;	IF SUCCESSFUL

                                     0000   111 ;		R0 = #SS$_NORMAL (LOW BIT SET)

                                     0000   112 ;		R1 = SYSTEM VIRTUAL ADDRESS OF FIRST PAGE TABLE ENTRY

                                     0000   113 ;

                                     0000   114 ;	IF NOT SUCCESSFUL

                                     0000   115 ;		R0 = 0

                                     0000   116 ;		R1 = VIRTUAL ADDRESS TO FAULT AND TRY AGAIN

                                     0000   117 ;	   OR

                                     0000   118 ;		R0 = SYSTEM STATUS CODE (LOW BIT CLEAR)

                                     0000   119 ;

                                     0000   120 ; IMPLICIT OUTPUTS:

                                     0000   121 ;

                                     0000   122 ;	NONE

                                     0000   123 ;

                                     0000   124 ; COMPLETION CODES:

                                     0000   125 ;

                                     0000   126 ;	SS$_INSFWSL			;INSUFICIENT WORKING SET LIMIT

                                     0000   127 ;

                                     0000   128 ; SIDE EFFECTS:

                                     0000   129 ;

                                     0000   130 ;	NONE

                                     0000   131 ;

                                     0000   132 ;--

IOLOCK          - LOCK AND UNLOCK PAGES FOR I/O                  22-AUG-1978 00:13:12   VAX-11 MACRO X0.3-11               Page   4

00              DECLARATIONS                                                                                                     (3)



                                     0000   134 ;

                                     0000   135 ; ACCESS VIOLATION - ATTEMPTED I/O REQUEST TO BALANCE SET SLOTS

                                     0000   136 ;

                                     0000   137 	.ENABL	LSB

                                     0000   138 IOLOCKACCVIO:

            50            0C     3C  0000   139 	MOVZWL	#SS$_ACCVIO,R0		;STATUS CODE FOR ACCESS VIOLATION

                          05     11  0003   140 	BRB	10$			;

                                     0005   141 ;

                                     0005   142 ; NUMBER OF PAGES REQUIRED EXCEEDS THE DYNAMIC SIZE OF THE WORKING SET

                                     0005   143 ;

                                     0005   144 TOOMANYPAGES:

            50       011C 8F     3C  0005   145 	MOVZWL	#SS$_INSFWSL,R0		;INSUFFICIENT WORKING SET LIMIT

                          50     DD  000A   146 10$:	PUSHL	R0			;SO THAT THE POPR WILL BE RIGHT

                          007E   31  000C   147 	BRW	IOLOCKEXIT

                                     000F   148 

                                     000F   149 	.DSABL	LSB

                                     000F   150 

                                     000F   151 MMG$IOLOCK::

                     00F0 8F     BB  000F   152 	PUSHR	#^M<R4,R5,R6,R7>

            57            52     D0  0013   153 	MOVL	R2,R7			;DIRECTION INDICATOR

            09            00     EF  0016   154 	EXTZV	#VA$V_BYTE,#VA$S_BYTE,R0,R6 ;STARTING BYTE IN PAGE

            56            50         0019       

                          03     12  001B   155 	BNEQ	10$			;BRANCH IF PARTIAL PAGE

            57            02     C8  001D   156 	BISL	#2,R7			;FIRST PAGE IS FULL PAGE

                                     0020   157 					;UNLESS IT IS ALSO THE LAST

            55   00000000'9F     D0  0020   158 10$:	MOVL	@#CTL$GL_PHD,R5		;P1 SPACE ADDRESS OF PROCESS HEADER

            50            56     C3  0027   159 	SUBL3	R6,R0,R3		;R3 = PAGE ALLIGNED VA

                          53         002A       

            52            7041   9E  002B   160 	MOVAB	-(R0)[R1],R2		;R2=LAST BYTE INCLUSIVE

                          CF     19  002F   161 	BLSS	IOLOCKACCVIO		;SYSTEM SPACE I/O NOT ALLOWED

            51            56     C0  0031   162 20$:	ADDL	R6,R1			;BYTE COUNT + OFFSET

            51         F7 8F     78  0034   163 	ASHL	#-9,R1,R6		;PAGE COUNT NOT INCLUDING LAST

                          56         0038       

                                     0039   164 					;PARTIAL PAGE IF ANY

            51       01FF 8F     B3  0039   165 	BITW	#VA$M_BYTE,R1		;IS LAST PAGE A PARTIAL PAGE?

                          06     13  003E   166 	BEQL	30$			;BRANCH IF NOT

                          56     D6  0040   167 	INCL	R6			;COUNT ONE MORE PAGE

            57            1F     E2  0042   168 	BBSS	#31,R7,30$		;SET 'LAST PARTIAL PAGE' INDICATOR

                          00         0045       

                                     0046   169 30$:					;

            53            52     CD  0046   170 	XORL3	R2,R3,R0		;ARE FIRST AND LAST ADDRESSES

                          50         0049       

            50         F0 8F     78  004A   171 	ASHL	#-16,R0,R0		;IN THE SAME PAGE TABLE?

                          50         004E       

                          0F     13  004F   172 	BEQL	40$			;BRANCH IF YES

            57            1E     E2  0051   173 	BBSS	#30,R7,35$		;NOTE TWO PAGE TABLES

                          00         0054       

                          53     DD  0055   174 35$:	PUSHL	R3			;SAVE START VA

                          FFA6'  30  0057   175 	BSBW	MMG$LOCKPGTB		;REFERENCE AND LOCK 2ND PAGE TABLE

                                     005A   176 					;RETURNS SVAPTE AND RAISES TO SYNCH

                                     005A   177 	SETIPL	#IPL$_ASTDEL		;BACK TO ASTDEL IN ORDER TO FAULT 1ST PT

            53            8E     D0  005D   178 	MOVL	(SP)+,R3		;RESTORE STARTING VIRTUAL ADDRESS

            52            53     D0  0060   179 40$:	MOVL	R3,R2			;STARTING VIRTUAL ADDRESS

                          FF9A'  30  0063   180 	BSBW	MMG$LOCKPGTB		;REFERENCE AND LOCK 1ST PAGE TABLE

                                     0066   181 					;RETURNS SVAPTE IN R3, IPL=SYNCH

            55         64 A4     D0  0066   182 	MOVL	PCB$L_PHD(R4),R5	;NO LONGER SWAPPABLE, USE SYSTEM ADR OF PHD

                          53     DD  006A   183 	PUSHL	R3			;AND SAVE IT FOR RETURN TO CALLER

IOLOCK          - LOCK AND UNLOCK PAGES FOR I/O                  22-AUG-1978 00:13:12   VAX-11 MACRO X0.3-11               Page   5

00              DECLARATIONS                                                                                                     (3)



                          03     11  006C   184 	BRB	55$			;START AFTER THE 'INC' SVAPTE

                                     006E   185 ;

                                     006E   186 ; 0(SP) = STARTING SYS VIRTUAL ADDRESS OF PAGE TABLE ENTRY

                                     006E   187 ; R6 = PAGE COUNT TO LOOP THROUGH

                                     006E   188 ; R7<0>  - SET IF READING INTO MEMORY

                                     006E   189 ; R7<1>  - SET IF TRANSFERRING THE ENTIRE PAGE

                                     006E   190 ; R7<30> - SET IF 2 PAGE TABLES WERE LOCKED

                                     006E   191 ; R7<31> - SET IF LAST PAGE IS PARTIAL PAGE

                                     006E   192 ;

            53            04     C0  006E   193 50$:	ADDL	#4,R3			;NEXT PAGE TABLE ENTRY ADDRESS

            57            1F     E1  0071   194 55$:	BBC	#31,R7,60$		;BRANCH IF LAST PAGE IS A FULL PAGE

                          08         0074       

            01            56     D1  0075   195 	CMPL	R6,#1			;IS THIS THE LAST PAGE?

                          03     14  0078   196 	BGTR	60$			;BRANCH IF NOT

            57            02     CA  007A   197 	BICL	#2,R7			;INDICATE PARTIAL PAGE

                          1A     10  007D   198 60$:	BSBB	MMG$IOLOCKPAG		;LOCK THIS PAGE FOR I/O

            13            50     E9  007F   199 	BLBC	R0,FAULTREQUIRED	;BRANCH IF MUST PAGE FAULT

            57            02     C8  0082   200 	BISL	#2,R7			;AFTER FIRST PAGE, FULL PAGES

            52       0200 C2     DE  0085   201 	MOVAL	^X200(R2),R2		;NEXT VIRTUAL PAGE

            E1            56     F5  008A   202 	SOBGTR	R6,50$			;ONCE FOR EACH PAGE

                                     008D   203 ;

                                     008D   204 ; R0 = STATUS CODE

                                     008D   205 ;

                                     008D   206 IOLOCKEXIT:

                     00F2 8F     BA  008D   207 	POPR	#^M<R1,R4,R5,R6,R7>	;RESTORE REGISTERS AND RETURN R1

                                     0091   208 					;WITH SVAPTE IF SUCCESSFUL

                                     0091   209 					;OR VA TO FAULT IF NOT

                                     0091   210 	SETIPL	#IPL$_ASTDEL		;RETURN WITH IPL AS CALLED

                                 05  0094   211 	RSB

                                     0095   212 ;

                                     0095   213 ; FAILED TO LOCK THE PAGE FOR I/O, IT MUST BE PAGE FAULTED FIRST

                                     0095   214 ; R3 = SVAPTE OF FIRST PAGE NOT LOCKED

                                     0095   215 ;

                                     0095   216 FAULTREQUIRED:

                                     0095   217 	BUG_CHECK	ILLPAGFLT,FATAL	;NO PAGE FAULT ALLOWED

                                     0099   218 

IOLOCK          - LOCK AND UNLOCK PAGES FOR I/O                  22-AUG-1978 00:13:12   VAX-11 MACRO X0.3-11               Page   6

00              IOLOCKPAG - LOCK INDIVIDUAL PAGE FOR I/O                                                                         (4)



                                     0099   220 	.SBTTL	IOLOCKPAG - LOCK INDIVIDUAL PAGE FOR I/O

                                     0099   221 ;++

                                     0099   222 ; FUNCTIONAL DESCRIPTION:

                                     0099   223 ;

                                     0099   224 ;	THIS ROUTINE LOCKS THE SPECIFIED PAGE FOR I/O.

                                     0099   225 ; TO ACCOMPLISH THIS IT MUST MAKE THE PAGE VALID, EFFECTIVELY BY

                                     0099   226 ; FAULTING THE PAGE.  BUT SINCE THIS ROUTINE DOES NOT WANT TO WAIT

                                     0099   227 ; FOR A PAGE TO FAULT, IT WILL ONLY MAKE THE PAGE VALID IF IT CAN

                                     0099   228 ; DO SO WITHOUT WAITING.  OTHERWISE IT PASSES BACK THE CONDITION

                                     0099   229 ; THAT A FULL FLEDGED PAGE FAULT IS REQUIRED TO GET THE PAGE.

                                     0099   230 ;

                                     0099   231 ;	IOLOCKPAG RECOGNIZES THE SPECIAL CASE OF A NON-RESIDENT

                                     0099   232 ; PAGE THAT IS GOING TO BE TOTALLY OVERWRITTEN BY THE I/O TRANSFER.

                                     0099   233 ; IN THIS CASE IT DEMAND ZEROES A PAGE INSTEAD OF READING IT IN.

                                     0099   234 ;

                                     0099   235 ; CALLING SEQUENCE:

                                     0099   236 ;

                                     0099   237 ;	BSBW	MMG$IOLOCKPAG

                                     0099   238 ;

                                     0099   239 ; INPUT PARAMETERS:

                                     0099   240 ;

                                     0099   241 ;	R2 = VIRTUAL ADDRESS (LOW 9 BITS = PAGTYP)

                                     0099   242 ;	     ONLY PROCESS OR SYSTEM PAGES, NO GLOBALS YET

                                     0099   243 ;	R3 = SYSTEM VIRTUAL ADDRESS OF PAGE TABLE ENTRY

                                     0099   244 ;	R4 = PROCESS CONTROL BLOCK ADDRESS

                                     0099   245 ;	R5 = PROCESS HEADER ADDRESS (SYSTEM SPACE)

                                     0099   246 ;	R7 = <0> - SET IF MODIFYING THE PAGE (READING INTO MEMORY)

                                     0099   247 ;	     <1> - SET IF TRANSFERRING THE ENTIRE PAGE

                                     0099   248 ;	     <2:7> = 0

                                     0099   249 ;	IPL = SYNCH

                                     0099   250 ;

                                     0099   251 ; IMPLICIT INPUTS:

                                     0099   252 ;

                                     0099   253 ;	NONE

                                     0099   254 ;

                                     0099   255 ; OUTPUT PARAMETERS:

                                     0099   256 ;

                                     0099   257 ;	R0 = #SS$_NORMAL IF LOCKED OK

                                     0099   258 ;	   = 0 IF PAGE FAULT REQUIRED

                                     0099   259 ;	R2,R3 PRESERVED

                                     0099   260 ;

                                     0099   261 ; IMPLICIT OUTPUTS:

                                     0099   262 ;

                                     0099   263 ;	NONE

                                     0099   264 ;

                                     0099   265 ; COMPLETION CODES:

                                     0099   266 ;

                                     0099   267 ;	NONE

                                     0099   268 ;

                                     0099   269 ; SIDE EFFECTS:

                                     0099   270 ;

                                     0099   271 ;	NONE

                                     0099   272 ;

                                     0099   273 ;--

IOLOCK          - LOCK AND UNLOCK PAGES FOR I/O                  22-AUG-1978 00:13:12   VAX-11 MACRO X0.3-11               Page   7

00              IOLOCKPAG - LOCK INDIVIDUAL PAGE FOR I/O                                                                         (5)



                                     0099   275 MMG$IOLOCKPAG::

            63   7B800000 8F     CB  0099   276 	BICL3	#^C<PTE$M_VALID		-;CHECK VALID BIT

                          50         00A0       

                                     00A1   277 		! PTE$M_TYP1 ! PTE$M_TYP0 -;GET PTE TYPE BITS

                                     00A1   278 		! PTE$M_PGFLVB>,(R3),R0	;AND PFN/PAGE FILE VBN BITS TO R0

                          09     18  00A1   279 	BGEQ	NOTVALID		;BRANCH IF PAGE NOT VALID

                                     00A3   280 ;

                                     00A3   281 ; PAGE IS VALID, LOCK IT FOR I/O

                                     00A3   282 ;

            15            00     EF  00A3   283 	EXTZV	#PTE$V_PFN,#PTE$S_PFN,R0,R0 ;R0=PFN

            50            50         00A6       

                                     00A8   284 LOCKPAGE:

            50            01     3C  00A8   285 10$:	MOVZWL	#SS$_NORMAL,R0		;RETURN SUCCESS INDICATION

                                 05  00AB   286 	RSB

                                     00AC   287 ;

                                     00AC   288 ; PAGE NOT VALID

                                     00AC   289 ;

                                     00AC   290 NOTVALID:

                                     00AC   291 	BUG_CHECK PAGNOTVAL,FATAL	;FATAL ERROR IF PAGE NOT VALID

                                     00B0   292 	.SBTTL	UNLOCK PAGES AT COMPLETION OF I/O

                                     00B0   293 ;++

                                     00B0   294 ; FUNCTIONAL DESCRIPTION:

                                     00B0   295 ;

                                     00B0   296 ;	THESE DUMMY ROUTINES SATISFY THE CALLS TO UNLOCK PAGES UPON COMPLETION

                                     00B0   297 ;	OF I/O IN THE CORE ONLY SYSTEM

                                     00B0   298 ;

                                     00B0   299 ; CALLING SEQUENCE:

                                     00B0   300 ;

                                     00B0   301 ;	BSBW	MMG$UNLOCK

                                     00B0   302 ;

                                     00B0   303 ;

                                     00B0   304 ; INPUT PARAMETERS:

                                     00B0   305 ;

                                     00B0   306 ;		NONE

                                     00B0   307 ; IMPLICIT INPUTS:

                                     00B0   308 ;	NONE

                                     00B0   309 ;

                                     00B0   310 ; OUTPUT PARAMETERS:

                                     00B0   311 ;	NONE

                                     00B0   312 ;

                                     00B0   313 ; IMPLICIT OUTPUTS:

                                     00B0   314 ;	NONE

                                     00B0   315 ;

                                     00B0   316 ; COMPLETION CODES:

                                     00B0   317 ;	NONE

                                     00B0   318 ;

                                     00B0   319 ; SIDE EFFECTS:

                                     00B0   320 ;	NONE

                                     00B0   321 ;

                                     00B0   322 ;--

                                     00B0   323 	.ENABL	LSB

                                     00B0   324 

                                     00B0   325 MMG$UNLOCK1:

                                     00B0   326 MMG$UNLOCK::

                                 05  00B0   327 	RSB				; DUMMY CALLS

                                     00B1   328  

                                     00B1   329 	.END

IOLOCK          - LOCK AND UNLOCK PAGES FOR I/O                  22-AUG-1978 00:13:12   VAX-11 MACRO X0.3-11               Page   8

SYMBOL TABLE                                                                                                                     (5)



BIT...         = 00000000            PCB$V_LOGIN    = 00000014            PFN$M_RPTEVT   = 00000040            

BUG$_ILLPAGFLT   ********   X   03   PCB$V_NOACNT   = 0000000F            PFN$S_BAK      = 00000017            

BUG$_PAGNOTVAL   ********   X   03   PCB$V_PHDRES   = 00000012            PFN$S_GBLBAK   = 00000001            

CTL$GL_PHD       ********   X   03   PCB$V_PSWAPM   = 00000004            PFN$S_LOC      = 00000003            

FAULTREQUIRED    00000095 R     03   PCB$V_RES      = 00000000            PFN$S_PAGTYP   = 00000003            

GBL...         = 00000000            PCB$V_RESPEN   = 00000005            PFN$S_PGFLX    = 00000008            

IOLOCKACCVIO     00000000 R     03   PCB$V_SSFEXC   = 00000006            PFN$V_BADPAG   = 00000005            

IOLOCKEXIT       0000008D R     03   PCB$V_SSFEXCE  = 00000007            PFN$V_BAK      = 00000000            

IPL$_ASTDEL    = 00000002            PCB$V_SSFEXCS  = 00000008            PFN$V_COLLISION= 00000004            

IPL$_HWCLK     = 00000018            PCB$V_SSFEXCU  = 00000009            PFN$V_DELCON   = 00000004            

IPL$_IOPOST    = 00000004            PCB$V_SSRWAIT  = 0000000A            PFN$V_GBLBAK   = 00000017            

IPL$_MAILBOX   = 0000000B            PCB$V_SUSPEN   = 0000000B            PFN$V_LOC      = 00000000            

IPL$_POWER     = 0000001F            PCB$V_SWPVBN   = 00000010            PFN$V_MODIFY   = 00000007            

IPL$_QUEUEAST  = 00000006            PCB$V_WAKEPEN  = 0000000C            PFN$V_PAGTYP   = 00000000            

IPL$_SCHED     = 00000003            PCB$V_WALL     = 0000000D            PFN$V_PGFLX    = 00000018            

IPL$_SYNCH     = 00000007            PCB$W_APTCNT     00000034            PFN$V_RPTEVT   = 00000006            

IPL$_TIMER     = 00000007            PCB$W_ASTCNT     0000003C            PHD$B_ASTLVL     000000CF            

LOCKPAGE         000000A8 R     03   PCB$W_BIOCNT     0000003E            PHD$B_DFPFC      00000038            

MMG$IOLOCK       0000000F RG    03   PCB$W_BIOLM      00000040            PHD$B_PAGFIL     0000001F            

MMG$IOLOCKPAG    00000099 RG    03   PCB$W_BYTCNT     00000042            PHD$C_LENGTH     000000D8            

MMG$LOCKPGTB     ********   X   03   PCB$W_BYTLM      00000068            PHD$K_LENGTH     000000D8            

MMG$UNLOCK       000000B0 RG    03   PCB$W_DIOCNT     00000044            PHD$L_BIOCNT     00000054            

MMG$UNLOCK1      000000B0 R     03   PCB$W_DIOLM      00000046            PHD$L_CPULIM     00000058            

NOTVALID         000000AC R     03   PCB$W_FILCNT     00000048            PHD$L_CPUTIM     0000003C            

PCB$B_ASTACT     0000000C            PCB$W_GPGCNT     00000038            PHD$L_DIOCNT     00000050            

PCB$B_ASTEN      0000000D            PCB$W_GRP        00000022            PHD$L_ESP        0000007C            

PCB$B_PRI        0000000B            PCB$W_MEM        00000020            PHD$L_FREP0VA    00000028            

PCB$B_PRIB       00000033            PCB$W_MTXCNT     0000000E            PHD$L_FREP1VA    00000030            

PCB$B_TYPE       0000000A            PCB$W_PPGCNT     0000003A            PHD$L_FREPTECNT  0000002C            

PCB$B_WEFC       00000032            PCB$W_PRCCNT     0000006A            PHD$L_KSP        00000078            

PCB$C_LENGTH     0000007C            PCB$W_SIZE       00000008            PHD$L_P0BR       000000C8            

PCB$K_LENGTH     0000007C            PCB$W_STATE      00000030            PHD$L_P0LRASTL   000000CC            

PCB$L_ASTQBL     00000014            PCB$W_TMBU       00000036            PHD$L_P1BR       000000D0            

PCB$L_ASTQFL     00000010            PCB$W_TQCNT      0000004A            PHD$L_P1LR       000000D4            

PCB$L_EFC2P      00000058            PFN$C_ACTIVE   = 00000007            PHD$L_PAGEFLTS   0000004C            

PCB$L_EFC3P      0000005C            PFN$C_BADPAGLST= 00000002            PHD$L_PAGFIL     0000001C            

PCB$L_EFCS       00000050            PFN$C_FREPAGLST= 00000000            PHD$L_PC         000000C0            

PCB$L_EFCU       00000054            PFN$C_GBLWRT   = 00000003            PHD$L_PCB        00000078            

PCB$L_EFWM       0000004C            PFN$C_GLOBAL   = 00000002            PHD$L_PGFLCNT    00000034            

PCB$L_OWNER      0000001C            PFN$C_GPGTBL   = 00000005            PHD$L_PGFLQUOTA  0000005C            

PCB$L_PHD        00000064            PFN$C_MFYPAGLST= 00000001            PHD$L_PSL        000000C4            

PCB$L_PHYPCB     00000018            PFN$C_PPGTBL   = 00000004            PHD$L_PSTBASOFF  00000020            

PCB$L_PID        00000060            PFN$C_PROCESS  = 00000000            PHD$L_PTWSLELCK  00000064            

PCB$L_PQB        0000004C            PFN$C_RDERR    = 00000004            PHD$L_PTWSLEVAL  00000068            

PCB$L_SQBL       00000004            PFN$C_RDINPROG = 00000006            PHD$L_R0         00000088            

PCB$L_SQFL       00000000            PFN$C_RELPEND  = 00000003            PHD$L_R1         0000008C            

PCB$L_STS        00000028            PFN$C_SYSTEM   = 00000001            PHD$L_R10        000000B0            

PCB$L_UIC        00000020            PFN$C_WRTINPROG= 00000005            PHD$L_R11        000000B4            

PCB$L_WSSWP      00000024            PFN$M_BADPAG   = 00000020            PHD$L_R12        000000B8            

PCB$L_WTIME      0000002C            PFN$M_BAK      = 007FFFFF            PHD$L_R13        000000BC            

PCB$T_LNAME      0000006C            PFN$M_COLLISION= 00000010            PHD$L_R2         00000090            

PCB$V_ASTPEN   = 00000011            PFN$M_DELCON   = 00000010            PHD$L_R3         00000094            

PCB$V_BATCH    = 0000000E            PFN$M_GBLBAK   = 00800000            PHD$L_R4         00000098            

PCB$V_DELPEN   = 00000001            PFN$M_LOC      = 00000007            PHD$L_R5         0000009C            

PCB$V_FORCPEN  = 00000002            PFN$M_MODIFY   = 00000080            PHD$L_R6         000000A0            

PCB$V_HIBER    = 00000013            PFN$M_PAGTYP   = 00000007            PHD$L_R7         000000A4            

PCB$V_INQUAN   = 00000003            PFN$M_PGFLX    = FF000000            PHD$L_R8         000000A8            

IOLOCK          - LOCK AND UNLOCK PAGES FOR I/O                  22-AUG-1978 00:13:12   VAX-11 MACRO X0.3-11               Page   9

SYMBOL TABLE                                                                                                                     (5)



PHD$L_R9         000000AC            PR$_RXDB       = 00000021            PTE$S_PGFLVB   = 00000016            

PHD$L_SSP        00000080            PR$_SBIER      = 00000034            PTE$S_PROT     = 00000004            

PHD$L_USP        00000084            PR$_SBIFS      = 00000030            PTE$S_STX      = 00000010            

PHD$L_WSL        000000D8            PR$_SBIMT      = 00000033            PTE$V_CRF      = 00000010            

PHD$M_DALCSTX  = 00000002            PR$_SBIQC      = 00000036            PTE$V_DZRO     = 00000011            

PHD$M_PFMFLG   = 00000001            PR$_SBIS       = 00000031            PTE$V_GPTX     = 00000000            

PHD$Q_PRIVMSK    00000000            PR$_SBISC      = 00000032            PTE$V_MODIFY   = 0000001A            

PHD$S_ASTLVL   = 00000008            PR$_SBITA      = 00000035            PTE$V_OWN      = 00000017            

PHD$S_P0LR     = 00000018            PR$_SBR        = 0000000C            PTE$V_PFN      = 00000000            

PHD$V_ASTLVL   = 00000018            PR$_SCBB       = 00000011            PTE$V_PGFLVB   = 00000000            

PHD$V_DALCSTX  = 00000001            PR$_SID        = 0000003E            PTE$V_PROT     = 0000001B            

PHD$V_P0LR     = 00000000            PR$_SIRR       = 00000014            PTE$V_STX      = 00000000            

PHD$V_PFMFLG   = 00000000            PR$_SISR       = 00000015            PTE$V_TYP0     = 00000016            

PHD$W_ASTLM      00000044            PR$_SLR        = 0000000D            PTE$V_TYP1     = 0000001A            

PHD$W_BAK        00000048            PR$_SSP        = 00000002            PTE$V_VALID    = 0000001F            

PHD$W_DFWSCNT    0000001A            PR$_TBIA       = 00000039            PTE$V_WRT      = 00000012            

PHD$W_EXTDYNWS   00000076            PR$_TBIS       = 0000003A            SS$_ABORT      = 0000002C            

PHD$W_FILLM      00000060            PR$_TODR       = 0000001B            SS$_ACCONFLICT = 00000800            

PHD$W_FLAGS      0000003A            PR$_TXCS       = 00000022            SS$_ACCVIO     = 0000000C            

PHD$W_PFMFLG     0000003A            PR$_TXDB       = 00000023            SS$_ARITH      = 00000404            

PHD$W_PHVINDEX   00000046            PR$_USP        = 00000003            SS$_ASTFLT     = 0000040C            

PHD$W_PRCLM      00000042            PR$_WCSA       = 0000002C            SS$_BADATTRIB  = 00000034            

PHD$W_PST        00000020            PR$_WCSD       = 0000002D            SS$_BADCHKSUM  = 00000808            

PHD$W_PSTFREE    00000026            PTE$C_EOWN     = 00800000            SS$_BADESCAPE  = 0000003C            

PHD$W_PSTLAST    00000024            PTE$C_ER       = 38000000            SS$_BADFILEHDR = 00000810            

PHD$W_PTCNTACT   00000070            PTE$C_ERKW     = 30000000            SS$_BADFILENAME= 00000818            

PHD$W_PTCNTLCK   0000006C            PTE$C_EW       = 28000000            SS$_BADFILEVER = 00000820            

PHD$W_PTCNTMAX   00000072            PTE$C_KOWN     = 00000000            SS$_BADIMGHDR  = 00000044            

PHD$W_PTCNTVAL   0000006E            PTE$C_KR       = 18000000            SS$_BADIRECTORY= 00000828            

PHD$W_QUANT      00000040            PTE$C_KW       = 10000000            SS$_BADPARAM   = 00000014            

PHD$W_TQLM       00000062            PTE$C_NA       = 00000000            SS$_BADSTACK   = 000002B4            

PHD$W_WSAUTH     0000000A            PTE$C_SOWN     = 01000000            SS$_BEGOFFILE  = 00000938            

PHD$W_WSDYN      0000000E            PTE$C_SR       = 58000000            SS$_BLOCKCNTERR= 00000940            

PHD$W_WSFLUID    00000074            PTE$C_SREW     = 48000000            SS$_BREAK      = 00000414            

PHD$W_WSLAST     00000012            PTE$C_SRKW     = 50000000            SS$_BUFFEROVF  = 00000601            

PHD$W_WSLIST     00000008            PTE$C_SW       = 40000000            SS$_BUGCHECK   = 000002A4            

PHD$W_WSLOCK     0000000C            PTE$C_UOWN     = 01800000            SS$_CANCEL     = 00000830            

PHD$W_WSLX       0000004A            PTE$C_UR       = 78000000            SS$_CHANINTLK  = 0000004C            

PHD$W_WSNEXT     00000010            PTE$C_UREW     = 68000000            SS$_CLIFRCEXT  = 00000980            

PHD$W_WSQUOTA    00000018            PTE$C_URKW     = 70000000            SS$_CMODSUPR   = 0000041C            

PR$_ACCR       = 00000029            PTE$C_URSW     = 60000000            SS$_CMODUSER   = 00000424            

PR$_ACCS       = 00000028            PTE$C_UW       = 20000000            SS$_COMPAT     = 0000042C            

PR$_ASTLVL     = 00000013            PTE$M_CRF      = 00010000            SS$_CONTINUE   = 00000001            

PR$_ESP        = 00000001            PTE$M_DZRO     = 00020000            SS$_CONTROLC   = 00000651            

PR$_ICCS       = 00000018            PTE$M_GPTX     = 003FFFFF            SS$_CONTROLO   = 00000609            

PR$_ICR        = 0000001A            PTE$M_MODIFY   = 04000000            SS$_CONTROLY   = 00000611            

PR$_IPL        = 00000012            PTE$M_OWN      = 01800000            SS$_CREATED    = 00000619            

PR$_ISP        = 00000004            PTE$M_PFN      = 001FFFFF            SS$_CTRLERR    = 00000054            

PR$_KSP        = 00000000            PTE$M_PGFLVB   = 003FFFFF            SS$_DATACHECK  = 0000005C            

PR$_MAPEN      = 00000038            PTE$M_PROT     = 78000000            SS$_DATAOVERUN = 00000838            

PR$_NICR       = 00000019            PTE$M_TYP0     = 00400000            SS$_DEBUG      = 0000046C            

PR$_P0BR       = 00000008            PTE$M_TYP1     = 04000000            SS$_DEVACTIVE  = 000002C4            

PR$_P0LR       = 00000009            PTE$M_VALID    = 80000000            SS$_DEVALLOC   = 00000840            

PR$_P1BR       = 0000000A            PTE$M_WRT      = 00040000            SS$_DEVALRALLOC= 00000641            

PR$_P1LR       = 0000000B            PTE$S_GPTX     = 00000016            SS$_DEVASSIGN  = 00000848            

PR$_PCBB       = 00000010            PTE$S_OWN      = 00000002            SS$_DEVFOREIGN = 00000064            

PR$_RXCS       = 00000020            PTE$S_PFN      = 00000015            SS$_DEVICEFULL = 00000850            

IOLOCK          - LOCK AND UNLOCK PAGES FOR I/O                  22-AUG-1978 00:13:12   VAX-11 MACRO X0.3-11               Page  10

SYMBOL TABLE                                                                                                                     (5)



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

SS$_DEVNOTALLOC= 00000858            SS$_IVQUOTAL   = 00000164            SS$_SUPERSEDE  = 00000631            

SS$_DEVNOTMBX  = 00000074            SS$_IVSECFLG   = 0000016C            SS$_TAPEPOSLOST= 00000224            

SS$_DEVNOTMOUNT= 0000007C            SS$_IVSECIDCTL = 000002E4            SS$_TBIT       = 00000464            

SS$_DEVOFFLINE = 00000084            SS$_IVSSRQ     = 00000174            SS$_TIMEOUT    = 0000022C            

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            TOOMANYPAGES     00000005 R     03   

SS$_FILALRACC  = 000000A4            SS$_NOLOGNAM   = 000001BC            VA$M_BYTE      = 000001FF            

SS$_FILELOCKED = 000008A8            SS$_NOMBX      = 00000274            VA$M_P1        = 40000000            

SS$_FILENUMCHK = 000008B0            SS$_NOMOREFILES= 00000930            VA$M_SYSTEM    = 80000000            

SS$_FILESEQCHK = 000008B8            SS$_NONEXDRV   = 000001C4            VA$M_VPN       = 3FFFFE00            

SS$_FILESTRUCT = 000008C0            SS$_NONEXPR    = 000008E8            VA$S_BYTE      = 00000009            

SS$_FILNOTACC  = 000000AC            SS$_NONLOCAL   = 000008F0            VA$S_VPN       = 00000015            

SS$_FILNOTCNTG = 000002AC            SS$_NOPRIV     = 00000024            VA$V_BYTE      = 00000000            

SS$_FILNOTEXP  = 000000B4            SS$_NORMAL     = 00000001            VA$V_P1        = 0000001E            

SS$_FORMAT     = 000000BC            SS$_NOSIGNAL   = 00000900            VA$V_SYSTEM    = 0000001F            

SS$_GPTFULL    = 000000C4            SS$_NOSOLICIT  = 00000284            VA$V_VPN       = 00000009            

SS$_GSDFULL    = 000000CC            SS$_NOSUCHDEV  = 00000908            WSL$C_GBLWRT   = 00000006            

SS$_GSDNOTXXX  = 000000D4            SS$_NOSUCHFILE = 00000910            WSL$C_GLOBAL   = 00000004            

SS$_HANGUP     = 000002CC            SS$_NOSUCHNODE = 0000028C            WSL$C_GPGTBL   = 0000000A            

SS$_HEADERFULL = 000008C8            SS$_NOSUCHSEC  = 00000978            WSL$C_LENGTH   = 00000004            

SS$_IDXFILEFULL= 000008D0            SS$_NOTAPEOP   = 00000264            WSL$C_PPGTBL   = 00000008            

SS$_ILLBLKNUM  = 000000DC            SS$_NOTFILEDEV = 000001CC            WSL$C_PROCESS  = 00000000            

SS$_ILLCNTRFUNC= 000000E4            SS$_NOTINTBLSZ = 000001D4            WSL$C_SYSTEM   = 00000002            

SS$_ILLEFC     = 000000EC            SS$_NOTLABELMT = 000001DC            WSL$M_GOODPAGE = 00000040            

SS$_ILLIOFUNC  = 000000F4            SS$_NOTNETDEV  = 000002EC            WSL$M_MODIFY   = 00000100            

SS$_ILLLBLAST  = 00000968            SS$_NOTRAN     = 00000629            WSL$M_PAGTYP   = 0000000E            

SS$_ILLPAGCNT  = 000000FC            SS$_NOTSQDEV   = 000001E4            WSL$M_PFNLOCK  = 00000010            

SS$_ILLSEQOP   = 000002DC            SS$_OPCCUS     = 00000434            WSL$M_VALID    = 00000001            

SS$_ILLSER     = 00000104            SS$_OPCDEC     = 0000043C            WSL$M_WSLOCK   = 00000020            

SS$_ILLUSRLBLRD= 00000958            SS$_OPINCOMPL  = 000002D4            WSL$S_PAGTYP   = 00000003            

SS$_ILLUSRLBLWT= 00000960            SS$_PAGOWNVIO  = 000001EC            WSL$V_GOODPAGE = 00000006            

SS$_INCVOLLABEL= 0000010C            SS$_PAGRDERR   = 00000444            WSL$V_MODIFY   = 00000008            

SS$_INSFARG    = 00000114            SS$_PARITY     = 000001F4            WSL$V_PAGTYP   = 00000001            

SS$_INSFMEM    = 00000124            SS$_PARTESCAPE = 000001FC            WSL$V_PFNLOCK  = 00000004            

SS$_INSFRAME   = 0000012C            SS$_PFMBSY     = 00000204            WSL$V_VALID    = 00000000            

SS$_INSFWSL    = 0000011C            SS$_PSTFULL    = 0000020C            WSL$V_WSLOCK   = 00000005            

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            

IOLOCK          - LOCK AND UNLOCK PAGES FOR I/O                  22-AUG-1978 00:13:12   VAX-11 MACRO X0.3-11               Page  11

PROGRAM SECTION SYNOPSIS                                                                                                         (5)







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  

$MMGCOD          000000B1      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

12160. BYTES LEFT IN FREE MEMORY POOL.

3088. BYTES OF RECLAIMED MEMORY.

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

7 MLB DIR RDS - 794 GETS TO DEFINE 20 MACROS. 58 INTER. FILE WRITES. 

