IOCIOPOST       - I/O COMPLETION POSTING                         22-AUG-1978 00:12:21   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      33  HISTORY			; DETAILED

   (1)      42  DECLARATIONS

   (1)      76  I/O COMPLETION POSTING

   (1)     185  BUFFERED READ COMPLETION AST ROUTINE

   (1)     262  DIRECT I/O COMPLETION AST ROUTINE

   (1)     318  MOVE DATA TO USER BUFFER

IOCIOPOST       - I/O COMPLETION POSTING                         22-AUG-1978 00:12:21   VAX-11 MACRO X0.3-11               Page   1

00                                                                                                                               (1)



                                     0000     1 	.TITLE	IOCIOPOST - I/O COMPLETION POSTING

                                     0000     2 	.IDENT	/00/

                                     0000     3 

                                     0000     4 ;

                                     0000     5 ; COPYRIGHT (C) 1977

                                     0000     6 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000     7 ;

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

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

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

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

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

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

                                     0000    14 ; REMAIN IN DEC.

                                     0000    15 ;

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

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

                                     0000    18 ; CORPORATION.

                                     0000    19 ;

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

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

                                     0000    22 

                                     0000    23 ;++

                                     0000    24 ; FACILITY: EXECUTIVE, I/O SYSTEM

                                     0000    25 ;

                                     0000    26 ; ABSTRACT:

                                     0000    27 ;	*** TBS ***

                                     0000    28 ;

                                     0000    29 ; ENVIRONMENT:

                                     0000    30 ;

                                     0000    31 ;--

                                     0000    32 ;	.PAGE

                                     0000    33 	.SBTTL	HISTORY			; DETAILED

                                     0000    34 ;

                                     0000    35 ; AUTHOR: R. HUSTVEDT, CREATION DATE: 26-AUG-76

                                     0000    36 ;

                                     0000    37 ; MODIFIED BY:

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

                                     0000    39 ; 01	- EDITED FOR CORE-ONLY SYSTEM

                                     0000    40 

IOCIOPOST       - I/O COMPLETION POSTING                         22-AUG-1978 00:12:21   VAX-11 MACRO X0.3-11               Page   2

00              DECLARATIONS                                                                                                     (1)



                                     0000    42 	.SBTTL	DECLARATIONS

                                     0000    43 ;

                                     0000    44 ; INCLUDE FILES:

                                     0000    45 ;

                                     0000    46 	$ACBDEF				; AST CONTROL BLOCK DEFINITIONS

                                     0000    47 	$AQBDEF				; DEFINE AQB OFFSETS

                                     0000    48 	$CADEF				; CONDITIONAL ASSEMBLY PARAMETERS

                                     0000    49 	$CCBDEF				; CCB DEFINITIONS

                                     0000    50 	$CXBDEF				; DEFINE CXB OFFSETS

                                     0000    51 	$IPLDEF				; IPL DEFINITIONS

                                     0000    52 	$IRPDEF				; IRP DEFINITIONS

                                     0000    53 	$PCBDEF				; PCB DEFINITIONS

                                     0000    54 	$PFNDEF				; PFN DATA BASE DEFINITIONS

                                     0000    55 	$PHDDEF				; PROCESS HEADER DEFINITIONS

                                     0000    56 	$PRDEF				; PROCESSOR REGISTER DEFINITIONS

                                     0000    57 	$PRIDEF				; PRIORITY INCREMENT DEFS

                                     0000    58 	$PTEDEF				; PAGE TABLE ENTRY DEFINITIONS

                                     0000    59 	$RSNDEF				; DEFINE RESOURCE WAIT NUMBERS

                                     0000    60 	$UCBDEF				; DEFINE UCB OFFSETS

                                     0000    61 	$VADEF				; DEFINE VIRTUAL ADDRESS FIELDS

                                     0000    62 	$VCBDEF				; DEFINE VCB OFFSETS

                                     0000    63 	$WCBDEF				; DEFINE WCB OFFSETS

                                     0000    64 	$WQHDEF				; WAIT QUEUE HEADER DEFINITIONS

                                     0000    65 

                                     0000    66 ;

                                     0000    67 ; OWN STORAGE:

                                     0000    68 ;

                                 00000000    69 	.PSECT	$AEXENONPAGED,LONG

                                     0000    70 PRITBL:					; TABLE OF PRIORITY INCR CLASSES

                                 01  0000    71 	.BYTE	PRI$_IOCOM		; 0 => DIRECT WRITE

                                 03  0001    72 	.BYTE	PRI$_TOCOM		; 1 => BUFFERED WRITE

                                 01  0002    73 	.BYTE	PRI$_IOCOM		; 2 => DIRECT READ

                                 04  0003    74 	.BYTE	PRI$_TICOM		; 3 => BUFFERED READ

IOCIOPOST       - I/O COMPLETION POSTING                         22-AUG-1978 00:12:21   VAX-11 MACRO X0.3-11               Page   3

00              I/O COMPLETION POSTING                                                                                           (1)



                                     0004    76 	.SBTTL	I/O COMPLETION POSTING

                                     0004    77 ;++

                                     0004    78 ; FUNCTIONAL DESCRIPTION:

                                     0004    79 ;

                                     0004    80 ;	IOC$IOPOST IS INITIATED BY TRIGGERING AN IPL$_IOPOST SOFTWARE

                                     0004    81 ;	INTERRUPT AFTER PLACING A COMPLETED I/O PACKET IN THE IOPOST

                                     0004    82 ;	QUEUE.  IOC$IOPOST PERFORMS ALL APPROPRIATE COMPLETION ACTIVITY

                                     0004    83 ;	REQUIRED FOR THE PACKET EITHER DIRECTLY OR BY QUEUEING KERNEL

                                     0004    84 ;	ASTS TO CONCLUDE PROCESSING IN THE CONTEXT OF THE PROCESS

                                     0004    85 ;	WHEN REQUIRED.

                                     0004    86 ;

                                     0004    87 ; CALLING SEQUENCE:

                                     0004    88 ;

                                     0004    89 ;	SOFTINT	#IPL$_IOPOST

                                     0004    90 ;

                                     0004    91 ; INPUT PARAMETERS:

                                     0004    92 ;

                                     0004    93 ;	NONE

                                     0004    94 ;

                                     0004    95 ; IMPLICIT INPUTS:

                                     0004    96 ;

                                     0004    97 ;	IOC$GL_PSFL - IOPOSTING QUEUE

                                     0004    98 ;

                                     0004    99 ; OUTPUT PARAMETERS:

                                     0004   100 ;

                                     0004   101 ;	NONE

                                     0004   102 ;

                                     0004   103 ; IMPLICIT OUTPUTS:

                                     0004   104 ;

                                     0004   105 ;	*** TBS ***

                                     0004   106 ;

                                     0004   107 ; SIDE EFFECTS:

                                     0004   108 ;

                                     0004   109 ;	*** TBS ***

                                     0004   110 ;--

                                     0004   111 

                                     0004   112 	.ENABL	LSB

                                     0004   113 IOC$IOPOST::				; I/O POSTING INTERRUPT

                          3F     BB  0004   114 	PUSHR	#^M<R0,R1,R2,R3,R4,R5>	; SAVE NORMAL REGISTERS

            55       0000'DF     0F  0006   115 IOPOST:	REMQUE	@W^IOC$GL_PSFL,R5	; GET HEAD OF POST QUEUE

                          03     1C  000B   116 	BVC	10$			; QUEUE NOT YET EMPTY

                          3F     BA  000D   117 	POPR	#^M<R0,R1,R2,R3,R4,R5>	; RESTORE REGISTERS AND EXIT

                                 02  000F   118 	REI				; IF QUEUE EMPTY

            51         0C A5     3C  0010   119 10$:	MOVZWL	IRP$L_PID(R5),R1	; GET PROCESS INDEX

            54       0000'CF41   D0  0014   120 	MOVL	W^SCH$AL_PCB[R1],R4	; AND TRANSLATE TO PCB ADDRESS

         2A A5            00     E0  001A   121 	BBS	#IRP$V_BUFIO,IRP$W_STS(R5),BUFIO ; IF SET, BUFFERED I/O

                          32         001E       

                       44 A4     B6  001F   122 	INCW	PCB$W_DIOCNT(R4)	; UPDATE DIRECT I/O COUNT

         2A A5            02     E0  0022   123 	BBS	#IRP$V_PAGIO,IRP$W_STS(R5),PAGIO ; IF SET, PAGE I/O

                          26         0026       

            53         2C A5     D0  0027   124 	MOVL	IRP$L_SVAPTE(R5),R3	; GET ADDRESS OF FIRST PTE

         2A A5            06     E0  002B   125 	BBS	#IRP$V_SWAPIO,IRP$W_STS(R5),SWAPIO ; IF SET, SWAP I/O

                          1D         002F       

                                     0030   126  

                                     0030   127 ;

                                     0030   128 ; DIRECT I/O COMPLETION

                                     0030   129 ;

IOCIOPOST       - I/O COMPLETION POSTING                         22-AUG-1978 00:12:21   VAX-11 MACRO X0.3-11               Page   4

00              I/O COMPLETION POSTING                                                                                           (1)



                                     0030   130  

                          16     13  0030   131 DIRIO:	BEQL	15$			; IF EQL NO PAGES TO UNLOCK

            51         32 A5     3C  0032   132 	MOVZWL	IRP$W_BCNT(R5),R1	; GET REQUESTED TRANSFER BYTE COUNT

            52         30 A5     3C  0036   133 	MOVZWL	IRP$W_BOFF(R5),R2	; GET BYTE OFFSET IN PAGE

            51       01FF C142   9E  003A   134 UNLOCK:	MOVAB	511(R1)[R2],R1		; COMBINE OFFSET AND COUNT AND ROUND

            51         F7 8F     78  0040   135 	ASHL	#-VA$S_BYTE,R1,R1	; CONVERT TO NUMBER OF PAGES

                          51         0044       

                          FFB8'  30  0045   136 	BSBW	MMG$UNLOCK		; UNLOCK PAGES

                                     0048   137 15$:					; REFERENCE LABEL

                                     0048   138  

                                     0048   139 	.IF DF	CA$_MEASURE_IOT

                                     0048   140  

                          FFB5'  30  0048   141 	BSBW	PMS$END_RQ		; INSERT END OF I/O REQUEST MESSAGE

                                     004B   142  

                                     004B   143 	.ENDC

                                     004B   144  

                          23     11  004B   145 	BRB	30$			;

                                     004D   146  

                                     004D   147 ;

                                     004D   148 ;	SWAPPING I/O COMPLETION

                                     004D   149 ;	PAGING I/O COMPLETION

                                     004D   150 ;

                                     004D   151 

                                     004D   152 PAGIO:					;

                                     004D   153 SWAPIO:					;

                                     004D   154 	BUG_CHECK ILLIO,FATAL		;NO SWAPPING OR PAGING I/O SUPPORTED

                                     0051   155  

                                     0051   156 ;

                                     0051   157 ; BUFFERED I/O COMPLETION

                                     0051   158 ;

                                     0051   159  

                       3E A4     B6  0051   160 BUFIO:	INCW	PCB$W_BIOCNT(R4)	; UPDATE BUFFERED I/O COUNT

                                     0054   161  

                                     0054   162 	.IF DF	CA$_MEASURE_IOT

                                     0054   163  

                          FFA9'  30  0054   164 	BSBW	PMS$END_RQ		; INSERT END OF I/O REQUEST MESSAGE

                                     0057   165  

                                     0057   166 	.ENDC

                                     0057   167  

         42 A4         30 A5     A0  0057   168 	ADDW	IRP$W_BOFF(R5),PCB$W_BYTCNT(R4) ; UPDATE BYTE COUNT QUOTA

            50         2C A5     D0  005C   169 	MOVL	IRP$L_SVAPTE(R5),R0	; ANY BUFFER SPECIFIED?

                          0E     13  0060   170 	BEQL	30$			; IF EQL NO

         18 A5       0098'CF     9E  0062   171 	MOVAB	W^BUFPOST,ACB$L_KAST(R5) ; ASSUME READ FUNCTION

         2A A5            01     E0  0068   172 	BBS	#IRP$V_FUNC,IRP$W_STS(R5),40$  ; IF SET, READ FUNCTION

                          09         006C       

                          FF90'  30  006D   173 	BSBW	EXE$DEANONPAGED		; DEALLOCATE WRITE BUFFER

         18 A5       0156'CF     9E  0070   174 30$:	MOVAB	W^DIRPOST,ACB$L_KAST(R5) ; SET SPECIAL KERNEL AST ADDRESS

            03            00     EF  0076   175 40$:	EXTZV	#IRP$V_BUFIO,#3,IRP$W_STS(R5),R0  ; GET PACKET TYPE

            50         2A A5         0079       

            51         0C A5     D0  007C   176 	MOVL	IRP$L_PID(R5),R1	; PROCESS IDENTIFICATION

            52       FF7B CF40   9A  0080   177 	MOVZBL	PRITBL[R0],R2		; SET PRIORITY INCREMENT CLASS

            53         22 A5     9A  0086   178 	MOVZBL	IRP$B_EFN(R5),R3	; GET EVENT FLAG NUMBER

                          FF73'  30  008A   179 	BSBW	SCH$POSTEF		; AND POST IT

         0B A5         80 8F     88  008D   180 	BISB	#^X80,ACB$B_RMOD(R5)	; SET INTERNAL AST FLAG

                          FF6B'  30  0092   181 	BSBW	SCH$QAST		; NOW QUEUE THE KERNEL AST

                          FF6E   31  0095   182 	BRW	IOPOST			; GET NEXT PACKET TO POST

                                     0098   183 	.DSABL	LSB

IOCIOPOST       - I/O COMPLETION POSTING                         22-AUG-1978 00:12:21   VAX-11 MACRO X0.3-11               Page   5

00              BUFFERED READ COMPLETION AST ROUTINE                                                                             (1)



                                     0098   185 	.SBTTL	BUFFERED READ COMPLETION AST ROUTINE

                                     0098   186 ;++

                                     0098   187 ; FUNCTIONAL DESCRIPTION:

                                     0098   188 ;

                                     0098   189 ;	BUFPOST PERFORMS ALL NECESSARY COMPLETION OPERATIONS REQUIRED

                                     0098   190 ;	FOR A BUFFERED READ OPERATION IN THE CONTEXT OF THE PROCESS

                                     0098   191 ;	ISSUING THE I/O REQUEST.

                                     0098   192 ;

                                     0098   193 ; CALLING SEQUENCE:

                                     0098   194 ;

                                     0098   195 ;	JSB	BUFPOST

                                     0098   196 ;

                                     0098   197 ; INPUT PARAMETERS:

                                     0098   198 ;

                                     0098   199 ;	R4 = CURRENT PROCESS PCB ADDRESS.

                                     0098   200 ;	R5 = IRP/AST CONTROL BLOCK.

                                     0098   201 ;

                                     0098   202 ; IMPLICIT INPUTS:

                                     0098   203 ;

                                     0098   204 ;	SCH$GL_CURPCB - POINTER TO PCB OF CURRENT PROCESS

                                     0098   205 ;--

                                     0098   206 

                                     0098   207 BUFPOST:				; BUFFERED READ COMPLETION

                     00E0 8F     BB  0098   208 	PUSHR	#^M<R5,R6,R7>		; SAVE REGISTERS

            56         2C A5     D0  009C   209 	MOVL	IRP$L_SVAPTE(R5),R6	; GET ADDRESS OF I/O BUFFER

            57         32 A5     3C  00A0   210 	MOVZWL	IRP$W_BCNT(R5),R7	; GET COUNT OF BYTES OR DESCRIPTORS

         2A A5            03     E1  00A4   211 	BBC	#IRP$V_COMPLX,IRP$W_STS(R5),40$ ;IF CLR, NOT COMPLEX BUFFER FORMAT

                          3D         00A8       

         2A A5            05     E0  00A9   212 	BBS	#IRP$V_CHAINED,IRP$W_STS(R5),50$ ;IF SET ,CHAINED BUFFERS

                          40         00AD       

            56            66     D0  00AE   213 	MOVL	(R6),R6			; GET ADDRESS OF FIRST BUFFER DESCRIPTOR

            50         02 A6     3C  00B1   214 10$:	MOVZWL	2(R6),R0		; GET COUNT OF BYTES TO TRANSFER

                          27     13  00B5   215 	BEQL	30$			; IF EQL NONE THIS DESCRIPTOR

            51         04 A6     D0  00B7   216 	MOVL	4(R6),R1		; GET ADDRESS OF USER BUFFER

            54            66     3C  00BB   217 	MOVZWL	(R6),R4			; GET OFFSET TO DATA AREA

            53       FE00 8F     32  00BE   218 	CVTWL	#-^X200,R3		; SET ADDITION CONSTANT

                                     00C3   219 20$:	IFNOWRT	R0,(R1),120$,(R6)[R4]	; CAN BUFFER BE WRITTEN?

            51            53     C2  00CA   220 	SUBL	R3,R1			; UPDATE ADDRESS OF BUFFER

            50            6043   3E  00CD   221 	MOVAW	(R0)[R3],R0		; UPDATE REMAINING LENGTH

                          F0     18  00D1   222 	BGEQ	20$			; IF GEQ MORE TO CHECK

         01 A644       02 A6     28  00D3   223 	MOVC	2(R6),1(R6)[R4],@4(R6)	; MOVE DATA TO USER BUFFER

                       04 B6         00D9       

            55            6E     D0  00DB   224 	MOVL	(SP),R5			; RESTORE ADDRESS OF I/O PACKET

            56            08     C0  00DE   225 30$:	ADDL	#8,R6			; ADVANCE TO NEXT BUFFER DESCRIPTOR

            CD            57     F5  00E1   226 	SOBGTR	R7,10$			; ANY MORE DESCRIPTORS TO PROCESS?

                          65     11  00E4   227 	BRB	130$			;

                          00DB   30  00E6   228 40$:	BSBW	MOVBUF			; MOVE BUFFER TO USER

            55            6E     D0  00E9   229 	MOVL	(SP),R5			; RETRIEVE ADDRESS OF I/O PACKET

                          5D     11  00EC   230 	BRB	130$			;

            50            57     D0  00EE   231 50$:	MOVL	R7,R0			; SET LENGTH OF USER BUFFER

            51         04 A6     D0  00F1   232 	MOVL	4(R6),R1		; SET ADDRESS OF USER BUFFER

            02            00     EF  00F5   233 	EXTZV	#0,#2,IRP$B_RMOD(R5),R2 ; GET REQUEST ACCESS MODE

            52         0B A5         00F8       

            53       FE00 8F     32  00FB   234 	CVTWL	#-^X200,R3		; SET ADDITION CONSTANT

                                     0100   235 60$:	IFNOWRT	R0,(R1),90$,R2		; CAN BUFFER BE WRITTEN?

            51            53     C2  0106   236 	SUBL	R3,R1			; UPDATE ADDRESS OF BUFFER

            50            6043   3E  0109   237 	MOVAW	(R0)[R3],R0		; CALCULATE NEW LENGTH

IOCIOPOST       - I/O COMPLETION POSTING                         22-AUG-1978 00:12:21   VAX-11 MACRO X0.3-11               Page   6

00              BUFFERED READ COMPLETION AST ROUTINE                                                                             (1)



                          F1     18  010D   238 	BGEQ	60$			; IF GEQ MORE TO PROBE

            53         04 A6     D0  010F   239 	MOVL	4(R6),R3		; GET STARTING ADDRESS OF USER BUFFER

         0C A6            57     B1  0113   240 70$:	CMPW	R7,CXB$W_LENGTH(R6)	; REMAINING LENGTH LARGER THAN DATA AREA?

                          04     1E  0117   241 	BGEQU	80$			; IF GEQU YES

         0C A6            57     B0  0119   242 	MOVW	R7,CXB$W_LENGTH(R6)	; TRUNCATE LENGTH OF DATA AREA

            96         0C A6     28  011D   243 80$:	MOVC	CXB$W_LENGTH(R6),@(R6)+,(R3) ; MOVE DATA TO USER BUFFER

                          63         0121       

            55            6E     D0  0122   244 	MOVL	(SP),R5			; RETRIEVE ADDRESS OF I/O PACKET

            57         08 A6     A2  0125   245 	SUBW	CXB$W_LENGTH-4(R6),R7	; REDUCE REMAINING BYTES TO TRANSFER

                          0B     13  0129   246 	BEQL	100$			; IF EQL DONE

            56         0C A6     D0  012B   247 	MOVL	CXB$L_LINK-4(R6),R6	; GET ADDRESS OF NEXT BUFFER IN CHAIN

                          E2     12  012F   248 	BNEQ	70$			; IF NEQ MORE TO GO

                          03     11  0131   249 	BRB	100$			;

                          00B4   30  0133   250 90$:	BSBW	ACCVIO			; SET ACCESS VIOLATION

            50         2C A5     D0  0136   251 100$:	MOVL	IRP$L_SVAPTE(R5),R0	; GET ADDRESS OF FIRST BUFFER

            56         10 A0     D0  013A   252 110$:	MOVL	CXB$L_LINK(R0),R6	; GET ADDRESS OF NEXT BUFFER

                          0F     13  013E   253 	BEQL	140$			; IF EQL NONE

                          FEBD'  30  0140   254 	BSBW	EXE$DEANONPAGED		; DEALLOCATE BUFFER

            50            56     D0  0143   255 	MOVL	R6,R0			; SET ADDRESS OF NEXT BUFFER

                          F2     11  0146   256 	BRB	110$			;

                          009F   30  0148   257 120$:	BSBW	ACCVIO			; SET ACCESS VIOLATION STATUS

            50         2C A5     D0  014B   258 130$:	MOVL	IRP$L_SVAPTE(R5),R0	; GET ADDRESS OF BUFFER TO RELEASE

                          FEAE'  30  014F   259 140$:	BSBW	EXE$DEANONPAGED		; DEALLOCATE BUFFER

                     00E0 8F     BA  0152   260 	POPR	#^M<R5,R6,R7>		; RESTORE REGISTERS

IOCIOPOST       - I/O COMPLETION POSTING                         22-AUG-1978 00:12:21   VAX-11 MACRO X0.3-11               Page   7

00              DIRECT I/O COMPLETION AST ROUTINE                                                                                (1)



                                     0156   262 	.SBTTL	DIRECT I/O COMPLETION AST ROUTINE

                                     0156   263 ;++

                                     0156   264 ; FUNCTIONAL DESCRIPTION:

                                     0156   265 ;

                                     0156   266 ;	DIRPOST PERFORMS ALL GENERAL I/O COMPLETION ACTIVITIES WHICH

                                     0156   267 ;	MUST BE DONE IN THE CONTEXT OF THE PROCESS. THESE INCLUDE

                                     0156   268 ;	I/O STATUS POSTING IF AN IOSB WAS SPECIFIED, CHANNEL CONTROL

                                     0156   269 ;	BLOCK ACTIVITY COUNT DECREMENTING, QUEUEING OF ANY REQUESTED

                                     0156   270 ;	AST OR RELEASE OF THE I/O REQUEST PACKET.

                                     0156   271 ;

                                     0156   272 ; CALLING SEQUENCE:

                                     0156   273 ;

                                     0156   274 ;	JSB	DIRPOST

                                     0156   275 ;

                                     0156   276 ; INPUT PARAMETERS:

                                     0156   277 ;

                                     0156   278 ;	R4 = CURRENT PROCESS PCB ADDRESS.

                                     0156   279 ;	R5 = IRP/AST CONTROL BLOCK ADDRESS.

                                     0156   280 ;

                                     0156   281 ; IMPLICIT INPUTS:

                                     0156   282 ;

                                     0156   283 ;	SCH$GL_CURPCB - POINTER TO CURRENT PCB

                                     0156   284 ;--

                                     0156   285 

                                     0156   286 DIRPOST:				; DIRECT I/O POSTING AST

            01            00     EF  0156   287 	EXTZV	#IRP$V_BUFIO,#1,IRP$W_STS(R5),R0 ; GET INDEX TO ACCOUNTING ENTRY

            50         2A A5         0159       

            51   00000000'9F     D0  015C   288 	MOVL	@#CTL$GL_PHD,R1		; GET PROCESS HEADER ADDRESS

                       50 A140   D6  0163   289 	INCL	PHD$L_DIOCNT(R1)[R0]	; ACCOUNT FOR BUFFERED OR DIRECT I/O

                                     0167   290 

                           00000002  0167   291 	.IF NE	CA$_MEASURE		; CHECK FOR MEASUREMENT ENABLED

                 00000000'EF40   D6  0167   292 	INCL	PMS$GL_DIRIO[R0]	; UPDATE MEASUREMENT I/O COUNTER

                                     016E   293 	.ENDC

                                     016E   294 

         2A A5            07     E1  016E   295 	BBC	#IRP$V_DIAGBUF,IRP$W_STS(R5),10$ ; IF CLR, NO DIAGNOSTIC BUFFER

                          1C         0172       

                     00E0 8F     BB  0173   296 	PUSHR	#^M<R5,R6,R7>		; SAVE REGISTERS

            56         44 A5     D0  0177   297 	MOVL	IRP$L_DIAGBUF(R5),R6	; GET ADDRESS OF DIAGNOSTIC BUFFER

            57         08 A6     3C  017B   298 	MOVZWL	IRP$W_SIZE(R6),R7	; GET SIZE OF DIAGNOSTIC BUFFER

            57            0C     C2  017F   299 	SUBL	#12,R7			; REDUCE BY SIZE OF BUFFER HEADER

                          40     10  0182   300 	BSBB	MOVBUF			; MOVE DIAGNOSTIC INFORMATION TO USER

                     00E0 8F     BA  0184   301 	POPR	#^M<R5,R6,R7>		; RESTORE REGISTERS

            50         44 A5     D0  0188   302 	MOVL	IRP$L_DIAGBUF(R5),R0	; RETRIEVE ADDRESS OF DIAGNOSTIC BUFFER

                          FE71'  30  018C   303 	BSBW	EXE$DEANONPAGED		; DEALLOCATE DIAGNOSTIC BUFFER

            50         24 A5     D0  018F   304 10$:	MOVL	IRP$L_IOSB(R5),R0	; GET IOSB ADDRESS

                          10     13  0193   305 	BEQL	20$			; IF EQL NONE SPECIFIED

            02            00     EF  0195   306 	EXTZV	#0,#2,IRP$B_RMOD(R5),R1	; GET REQUEST ACCESS MODE

            51         0B A5         0198       

                                     019B   307 	IFNOWRT	#8,(R0),20$,R1		; CAN I/O STATUS BE WRITTEN?

            60         34 A5     7D  01A1   308 	MOVQ	IRP$L_MEDIA(R5),(R0)	; MOVE STATUS INTO IOSB

            50         28 A5     32  01A5   309 20$:	CVTWL	IRP$W_CHAN(R5),R0	; GET CHANNEL NUMBER (NEGATED)

            51   00000000'FF40   9E  01A9   310 	MOVAB	@CTL$GL_CCBBASE[R0],R1	; SET CCB BASE ADDRESS

                       0A A1     B7  01B1   311 	DECW	CCB$W_IOC(R1)		; DECREMENT I/O COUNT FOR CHANNEL

         0B A5            06     E1  01B4   312 30$:	BBC	#ACB$V_QUOTA,IRP$B_RMOD(R5),40$ ; IF CLR, NO AST SPECIFIED

                          05         01B8       

                          52     D4  01B9   313 	CLRL	R2			; SET NULL PRIORITY INCREMENT

                          FE42'  31  01BB   314 	BRW	SCH$QAST		; QUEUE AST FOR REQUESTOR

IOCIOPOST       - I/O COMPLETION POSTING                         22-AUG-1978 00:12:21   VAX-11 MACRO X0.3-11               Page   8

00              DIRECT I/O COMPLETION AST ROUTINE                                                                                (1)



            50            55     D0  01BE   315 40$:	MOVL	R5,R0			; SETUP ADDRESS FOR DEALLOCATE

                          FE3C'  31  01C1   316 	BRW	EXE$DEANONPAGED		; AND RELEASE I/O PACKET

IOCIOPOST       - I/O COMPLETION POSTING                         22-AUG-1978 00:12:21   VAX-11 MACRO X0.3-11               Page   9

00              MOVE DATA TO USER BUFFER                                                                                         (1)



                                     01C4   318 	.SBTTL	MOVE DATA TO USER BUFFER

                                     01C4   319 ;

                                     01C4   320 ; SUBROUTINE TO MOVE DATA FROM A SIMPLE BUFFERED I/O BUFFER TO A USER BUFFER

                                     01C4   321 ;

                                     01C4   322  

                                     01C4   323 MOVBUF:					; MOVE BUFFER

            50            57     D0  01C4   324 	MOVL	R7,R0			; SET LENGTH OF USER BUFFER

            51         04 A6     D0  01C7   325 	MOVL	4(R6),R1		; GET ADDRESS OF USER BUFFER

            02            00     EF  01CB   326 	EXTZV	#0,#2,IRP$B_RMOD(R5),R2	; GET REQUEST ACCESS MODE

            52         0B A5         01CE       

            53       FE00 8F     32  01D1   327 	CVTWL	#-^X200,R3		; SET ADDITION CONSTANT

                                     01D6   328 10$:	IFNOWRT	R0,(R1),ACCVIO,R2	; CAN BUFFER BE WRITTEN?

            51            53     C2  01DC   329 	SUBL	R3,R1			; UPDATE BUFFER ADDRESS

            50            6043   3E  01DF   330 	MOVAW	(R0)[R3],R0		; UPDATE REMAINING LENGTH OF BUFFER

                          F1     18  01E3   331 	BGEQ	10$			; IF GEQ MORE TO CHECK

            96            57     28  01E5   332 	MOVC	R7,@(R6)+,@(R6)+	; MOVE DATA TO USER BUFFER

                          96         01E8       

                                 05  01E9   333 	RSB				;

         34 A5       0000'8F     B0  01EA   334 ACCVIO:	MOVW	#SS$_ACCVIO,IRP$L_MEDIA(R5) ; SET FINAL TRANSFER STATUS

                                 05  01F0   335 	RSB				;

                                     01F1   336  

                                     01F1   337 	.END

IOCIOPOST       - I/O COMPLETION POSTING                         22-AUG-1978 00:12:21   VAX-11 MACRO X0.3-11               Page  10

SYMBOL TABLE                                                                                                                     (1)



ACB$B_RMOD       0000000B            CXB$B_CODE       0000000B            IRP$M_BUFIO    = 00000001            

ACB$B_TYPE       0000000A            CXB$B_TYPE       0000000A            IRP$M_CHAINED  = 00000020            

ACB$L_AST        00000010            CXB$C_DDCCON   = 00000001            IRP$M_COMPLX   = 00000008            

ACB$L_ASTPRM     00000014            CXB$C_DDCDAT   = 00000002            IRP$M_DIAGBUF  = 00000080            

ACB$L_ASTQBL     00000004            CXB$C_DDCRCV   = 00000003            IRP$M_FUNC     = 00000002            

ACB$L_ASTQFL     00000000            CXB$C_LENGTH     00000018            IRP$M_PAGIO    = 00000004            

ACB$L_KAST       00000018            CXB$C_NSPSTART   0000001A            IRP$M_PHYSIO   = 00000100            

ACB$L_PID        0000000C            CXB$K_LENGTH     00000018            IRP$M_PRIVIO   = 00000200            

ACB$M_QUOTA    = 00000040            CXB$K_NSPSTART   0000001A            IRP$M_SWAPIO   = 00000040            

ACB$S_MODE     = 00000002            CXB$L_BL         00000004            IRP$M_VIRTUAL  = 00000010            

ACB$V_KAST     = 00000007            CXB$L_FL         00000000            IRP$S_FCODE    = 00000006            

ACB$V_MODE     = 00000000            CXB$L_IRP        00000010            IRP$S_FMOD     = 0000000A            

ACB$V_QUOTA    = 00000006            CXB$L_LINK       00000010            IRP$S_MODE     = 00000002            

ACB$W_SIZE       00000008            CXB$L_SSB        00000014            IRP$V_BUFIO    = 00000000            

ACCVIO           000001EA R     03   CXB$W_CHANNEL    00000010            IRP$V_CHAINED  = 00000005            

AQB$B_ACPTYPE    00000015            CXB$W_LENGTH     0000000C            IRP$V_COMPLX   = 00000003            

AQB$B_CLASS      00000016            CXB$W_OFFSET     0000000E            IRP$V_DIAGBUF  = 00000007            

AQB$B_MNTCNT     0000000B            CXB$W_SIZE       00000008            IRP$V_FCODE    = 00000000            

AQB$B_STATUS     00000014            DIRIO            00000030 R     03   IRP$V_FMOD     = 00000006            

AQB$B_TYPE       0000000A            DIRPOST          00000156 R     03   IRP$V_FUNC     = 00000001            

AQB$C_LENGTH     00000018            EXE$DEANONPAGED  ********   X   03   IRP$V_MODE     = 00000000            

AQB$K_F11V1    = 00000001            GBL...         = 00000000            IRP$V_PAGIO    = 00000002            

AQB$K_F11V2    = 00000002            IOC$GL_PSFL      ********   X   03   IRP$V_PHYSIO   = 00000008            

AQB$K_LENGTH     00000018            IOC$IOPOST       00000004 RG    03   IRP$V_PRIVIO   = 00000009            

AQB$K_MTA      = 00000003            IOPOST           00000006 R     03   IRP$V_SWAPIO   = 00000006            

AQB$K_NET      = 00000004            IPL$_ASTDEL    = 00000002            IRP$V_VIRTUAL  = 00000004            

AQB$K_UNDEFINED= 00000000            IPL$_HWCLK     = 00000018            IRP$W_ABCNT      0000003C            

AQB$L_ACPPID     0000000C            IPL$_IOPOST    = 00000004            IRP$W_BCNT       00000032            

AQB$L_ACPQBL     00000004            IPL$_MAILBOX   = 0000000B            IRP$W_BOFF       00000030            

AQB$L_ACPQFL     00000000            IPL$_POWER     = 0000001F            IRP$W_CHAN       00000028            

AQB$L_LINK       00000010            IPL$_QUEUEAST  = 00000006            IRP$W_FUNC       00000020            

AQB$M_CREATING = 00000008            IPL$_SCHED     = 00000003            IRP$W_OBCNT      0000003E            

AQB$M_DEFCLASS = 00000002            IPL$_SYNCH     = 00000007            IRP$W_SIZE       00000008            

AQB$M_DEFSYS   = 00000004            IPL$_TIMER     = 00000007            IRP$W_STS        0000002A            

AQB$M_UNIQUE   = 00000001            IRP$B_CARCON     00000038            IRP$W_TT_PRMPT   0000003C            

AQB$V_CREATING = 00000003            IRP$B_EFN        00000022            MMG$UNLOCK       ********   X   03   

AQB$V_DEFCLASS = 00000001            IRP$B_PRI        00000023            MOVBUF           000001C4 R     03   

AQB$V_DEFSYS   = 00000002            IRP$B_RMOD       0000000B            PAGIO            0000004D R     03   

AQB$V_UNIQUE   = 00000000            IRP$B_TYPE       0000000A            PCB$B_ASTACT     0000000C            

AQB$W_SIZE       00000008            IRP$C_LENGTH     0000004C            PCB$B_ASTEN      0000000D            

BIT...         = 0000000B            IRP$K_LENGTH     0000004C            PCB$B_PRI        0000000B            

BUFIO            00000051 R     03   IRP$L_AST        00000010            PCB$B_PRIB       00000033            

BUFPOST          00000098 R     03   IRP$L_ASTPRM     00000014            PCB$B_TYPE       0000000A            

BUG$_ILLIO       ********   X   03   IRP$L_DIAGBUF    00000044            PCB$B_WEFC       00000032            

CA$_MEASURE    = 00000002            IRP$L_IOQBL      00000004            PCB$C_LENGTH     0000007C            

CA$_MEASURE_IOT= 00000004            IRP$L_IOQFL      00000000            PCB$K_LENGTH     0000007C            

CA$_SIMULATOR  = 00000001            IRP$L_IOSB       00000024            PCB$L_ASTQBL     00000014            

CCB$B_AMOD       00000009            IRP$L_IOST1      00000034            PCB$L_ASTQFL     00000010            

CCB$B_STS        00000008            IRP$L_IOST2      00000038            PCB$L_EFC2P      00000058            

CCB$C_LENGTH     00000010            IRP$L_MEDIA      00000034            PCB$L_EFC3P      0000005C            

CCB$K_LENGTH     00000010            IRP$L_PID        0000000C            PCB$L_EFCS       00000050            

CCB$L_DIRP       0000000C            IRP$L_SEGVBN     00000040            PCB$L_EFCU       00000054            

CCB$L_UCB        00000000            IRP$L_SEQNUM     00000048            PCB$L_EFWM       0000004C            

CCB$L_WIND       00000004            IRP$L_SVAPTE     0000002C            PCB$L_OWNER      0000001C            

CCB$W_IOC        0000000A            IRP$L_TT_TERM    00000038            PCB$L_PHD        00000064            

CTL$GL_CCBBASE   ********   X   03   IRP$L_UCB        0000001C            PCB$L_PHYPCB     00000018            

CTL$GL_PHD       ********   X   03   IRP$L_WIND       00000018            PCB$L_PID        00000060            

IOCIOPOST       - I/O COMPLETION POSTING                         22-AUG-1978 00:12:21   VAX-11 MACRO X0.3-11               Page  11

SYMBOL TABLE                                                                                                                     (1)



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            

PCB$V_LOGIN    = 00000014            PFN$M_RPTEVT   = 00000040            PHD$L_R9         000000AC            

PCB$V_NOACNT   = 0000000F            PFN$S_BAK      = 00000017            PHD$L_SSP        00000080            

PCB$V_PHDRES   = 00000012            PFN$S_GBLBAK   = 00000001            PHD$L_USP        00000084            

PCB$V_PSWAPM   = 00000004            PFN$S_LOC      = 00000003            PHD$L_WSL        000000D8            

PCB$V_RES      = 00000000            PFN$S_PAGTYP   = 00000003            PHD$M_DALCSTX  = 00000002            

PCB$V_RESPEN   = 00000005            PFN$S_PGFLX    = 00000008            PHD$M_PFMFLG   = 00000001            

PCB$V_SSFEXC   = 00000006            PFN$V_BADPAG   = 00000005            PHD$Q_PRIVMSK    00000000            

PCB$V_SSFEXCE  = 00000007            PFN$V_BAK      = 00000000            PHD$S_ASTLVL   = 00000008            

PCB$V_SSFEXCS  = 00000008            PFN$V_COLLISION= 00000004            PHD$S_P0LR     = 00000018            

PCB$V_SSFEXCU  = 00000009            PFN$V_DELCON   = 00000004            PHD$V_ASTLVL   = 00000018            

PCB$V_SSRWAIT  = 0000000A            PFN$V_GBLBAK   = 00000017            PHD$V_DALCSTX  = 00000001            

PCB$V_SUSPEN   = 0000000B            PFN$V_LOC      = 00000000            PHD$V_P0LR     = 00000000            

PCB$V_SWPVBN   = 00000010            PFN$V_MODIFY   = 00000007            PHD$V_PFMFLG   = 00000000            

PCB$V_WAKEPEN  = 0000000C            PFN$V_PAGTYP   = 00000000            PHD$W_ASTLM      00000044            

PCB$V_WALL     = 0000000D            PFN$V_PGFLX    = 00000018            PHD$W_BAK        00000048            

PCB$W_APTCNT     00000034            PFN$V_RPTEVT   = 00000006            PHD$W_DFWSCNT    0000001A            

PCB$W_ASTCNT     0000003C            PHD$B_ASTLVL     000000CF            PHD$W_EXTDYNWS   00000076            

PCB$W_BIOCNT     0000003E            PHD$B_DFPFC      00000038            PHD$W_FILLM      00000060            

PCB$W_BIOLM      00000040            PHD$B_PAGFIL     0000001F            PHD$W_FLAGS      0000003A            

PCB$W_BYTCNT     00000042            PHD$C_LENGTH     000000D8            PHD$W_PFMFLG     0000003A            

PCB$W_BYTLM      00000068            PHD$K_LENGTH     000000D8            PHD$W_PHVINDEX   00000046            

PCB$W_DIOCNT     00000044            PHD$L_BIOCNT     00000054            PHD$W_PRCLM      00000042            

PCB$W_DIOLM      00000046            PHD$L_CPULIM     00000058            PHD$W_PST        00000020            

PCB$W_FILCNT     00000048            PHD$L_CPUTIM     0000003C            PHD$W_PSTFREE    00000026            

PCB$W_GPGCNT     00000038            PHD$L_DIOCNT     00000050            PHD$W_PSTLAST    00000024            

PCB$W_GRP        00000022            PHD$L_ESP        0000007C            PHD$W_PTCNTACT   00000070            

PCB$W_MEM        00000020            PHD$L_FREP0VA    00000028            PHD$W_PTCNTLCK   0000006C            

PCB$W_MTXCNT     0000000E            PHD$L_FREP1VA    00000030            PHD$W_PTCNTMAX   00000072            

PCB$W_PPGCNT     0000003A            PHD$L_FREPTECNT  0000002C            PHD$W_PTCNTVAL   0000006E            

PCB$W_PRCCNT     0000006A            PHD$L_KSP        00000078            PHD$W_QUANT      00000040            

PCB$W_SIZE       00000008            PHD$L_P0BR       000000C8            PHD$W_TQLM       00000062            

PCB$W_STATE      00000030            PHD$L_P0LRASTL   000000CC            PHD$W_WSAUTH     0000000A            

PCB$W_TMBU       00000036            PHD$L_P1BR       000000D0            PHD$W_WSDYN      0000000E            

PCB$W_TQCNT      0000004A            PHD$L_P1LR       000000D4            PHD$W_WSFLUID    00000074            

PFN$C_ACTIVE   = 00000007            PHD$L_PAGEFLTS   0000004C            PHD$W_WSLAST     00000012            

PFN$C_BADPAGLST= 00000002            PHD$L_PAGFIL     0000001C            PHD$W_WSLIST     00000008            

PFN$C_FREPAGLST= 00000000            PHD$L_PC         000000C0            PHD$W_WSLOCK     0000000C            

PFN$C_GBLWRT   = 00000003            PHD$L_PCB        00000078            PHD$W_WSLX       0000004A            

PFN$C_GLOBAL   = 00000002            PHD$L_PGFLCNT    00000034            PHD$W_WSNEXT     00000010            

PFN$C_GPGTBL   = 00000005            PHD$L_PGFLQUOTA  0000005C            PHD$W_WSQUOTA    00000018            

PFN$C_MFYPAGLST= 00000001            PHD$L_PSL        000000C4            PMS$END_RQ       ********   X   03   

PFN$C_PPGTBL   = 00000004            PHD$L_PSTBASOFF  00000020            PMS$GL_DIRIO     ********   X   03   

PFN$C_PROCESS  = 00000000            PHD$L_PTWSLELCK  00000064            PR$_ACCR       = 00000029            

IOCIOPOST       - I/O COMPLETION POSTING                         22-AUG-1978 00:12:21   VAX-11 MACRO X0.3-11               Page  12

SYMBOL TABLE                                                                                                                     (1)



PR$_ACCS       = 00000028            PTE$C_SRKW     = 50000000            UCB$B_DX_SCTCNT  FFFFFFFE            

PR$_ASTLVL     = 00000013            PTE$C_SW       = 40000000            UCB$B_DX_SPARE   FFFFFFFF            

PR$_ESP        = 00000001            PTE$C_UOWN     = 01800000            UCB$B_ERTCNT     00000070            

PR$_ICCS       = 00000018            PTE$C_UR       = 78000000            UCB$B_ERTMAX     00000071            

PR$_ICR        = 0000001A            PTE$C_UREW     = 68000000            UCB$B_ESCAPE     0000004B            

PR$_IPL        = 00000012            PTE$C_URKW     = 70000000            UCB$B_FEX        00000076            

PR$_ISP        = 00000004            PTE$C_URSW     = 60000000            UCB$B_FIPL       0000000B            

PR$_KSP        = 00000000            PTE$C_UW       = 20000000            UCB$B_LOCSRV     0000003C            

PR$_MAPEN      = 00000038            PTE$M_CRF      = 00010000            UCB$B_OFFNDX     00000090            

PR$_NICR       = 00000019            PTE$M_DZRO     = 00020000            UCB$B_OFFRTC     00000091            

PR$_P0BR       = 00000008            PTE$M_GPTX     = 003FFFFF            UCB$B_REMSRV     0000003D            

PR$_P0LR       = 00000009            PTE$M_MODIFY   = 04000000            UCB$B_SECTORS    0000003C            

PR$_P1BR       = 0000000A            PTE$M_OWN      = 01800000            UCB$B_SLAVE      00000074            

PR$_P1LR       = 0000000B            PTE$M_PFN      = 001FFFFF            UCB$B_SPR        00000075            

PR$_PCBB       = 00000010            PTE$M_PGFLVB   = 003FFFFF            UCB$B_STATE      00000052            

PR$_RXCS       = 00000020            PTE$M_PROT     = 78000000            UCB$B_TRACKS     0000003D            

PR$_RXDB       = 00000021            PTE$M_TYP0     = 00400000            UCB$B_TYPE       0000000A            

PR$_SBIER      = 00000034            PTE$M_TYP1     = 04000000            UCB$B_VERTSZ     0000003F            

PR$_SBIFS      = 00000030            PTE$M_VALID    = 80000000            UCB$C_LENGTH     00000074            

PR$_SBIMT      = 00000033            PTE$M_WRT      = 00040000            UCB$C_LOGLNK   = 00000001            

PR$_SBIQC      = 00000036            PTE$S_GPTX     = 00000016            UCB$K_LENGTH     00000074            

PR$_SBIS       = 00000031            PTE$S_OWN      = 00000002            UCB$L_AMB        00000054            

PR$_SBISC      = 00000032            PTE$S_PFN      = 00000015            UCB$L_ASTQBL     00000010            

PR$_SBITA      = 00000035            PTE$S_PGFLVB   = 00000016            UCB$L_ASTQFL     0000000C            

PR$_SBR        = 0000000C            PTE$S_PROT     = 00000004            UCB$L_CPID       0000005C            

PR$_SCBB       = 00000011            PTE$S_STX      = 00000010            UCB$L_CRB        00000020            

PR$_SID        = 0000003E            PTE$V_CRF      = 00000010            UCB$L_DDB        00000024            

PR$_SIRR       = 00000014            PTE$V_DZRO     = 00000011            UCB$L_DEVCHAR    00000034            

PR$_SISR       = 00000015            PTE$V_GPTX     = 00000000            UCB$L_DEVDEPEND  0000003C            

PR$_SLR        = 0000000D            PTE$V_MODIFY   = 0000001A            UCB$L_DPC        0000007C            

PR$_SSP        = 00000002            PTE$V_OWN      = 00000017            UCB$L_DUETIM     0000005C            

PR$_TBIA       = 00000039            PTE$V_PFN      = 00000000            UCB$L_DX_BFPNT   FFFFFFF4            

PR$_TBIS       = 0000003A            PTE$V_PGFLVB   = 00000000            UCB$L_DX_BUF     FFFFFFF0            

PR$_TODR       = 0000001B            PTE$V_PROT     = 0000001B            UCB$L_DX_RXDB    FFFFFFF8            

PR$_TXCS       = 00000022            PTE$V_STX      = 00000000            UCB$L_EMB        00000078            

PR$_TXDB       = 00000023            PTE$V_TYP0     = 00000016            UCB$L_FIRST      00000014            

PR$_USP        = 00000003            PTE$V_TYP1     = 0000001A            UCB$L_FPC        0000000C            

PR$_WCSA       = 0000002C            PTE$V_VALID    = 0000001F            UCB$L_FQBL       00000004            

PR$_WCSD       = 0000002D            PTE$V_WRT      = 00000012            UCB$L_FQFL       00000000            

PRI$_IOCOM     = 00000001            RSN$_ASTWAIT   = 00000001            UCB$L_FR3        00000010            

PRI$_NULL      = 00000000            RSN$_BRKTHRU   = 00000006            UCB$L_FR4        00000014            

PRI$_RESAVL    = 00000002            RSN$_MAILBOX   = 00000002            UCB$L_IOQBL      00000044            

PRI$_TICOM     = 00000004            RSN$_NPDYNMEM  = 00000003            UCB$L_IOQFL      00000040            

PRI$_TIMER     = 00000002            RSN$_PGDYNMEM  = 00000005            UCB$L_IRP        0000004C            

PRI$_TOCOM     = 00000003            RSN$_PGFILE    = 00000004            UCB$L_LINK       0000002C            

PRITBL           00000000 R     03   SCH$AL_PCB       ********   X   03   UCB$L_LOGADR     00000064            

PTE$C_EOWN     = 00800000            SCH$POSTEF       ********   X   03   UCB$L_MAXBLOCK   00000080            

PTE$C_ER       = 38000000            SCH$QAST         ********   X   03   UCB$L_MEDIA      00000088            

PTE$C_ERKW     = 30000000            SS$_ACCVIO       ********   X   03   UCB$L_NT_DATSSB  00000074            

PTE$C_EW       = 28000000            SWAPIO           0000004D R     03   UCB$L_NT_INTSSB  00000078            

PTE$C_KOWN     = 00000000            UCB$B_AMOD       00000053            UCB$L_OPCNT      00000060            

PTE$C_KR       = 18000000            UCB$B_CEX        00000077            UCB$L_OWNUIC     0000001C            

PTE$C_KW       = 10000000            UCB$B_CM1        0000004A            UCB$L_PID        00000028            

PTE$C_NA       = 00000000            UCB$B_CM2        0000004B            UCB$L_RQBL       00000004            

PTE$C_SOWN     = 01000000            UCB$B_DEVCLASS   00000038            UCB$L_RQFL       00000000            

PTE$C_SR       = 58000000            UCB$B_DEVTYPE    00000039            UCB$L_SVAPTE     00000068            

PTE$C_SREW     = 48000000            UCB$B_DIPL       00000052            UCB$L_SVPN       00000064            

IOCIOPOST       - I/O COMPLETION POSTING                         22-AUG-1978 00:12:21   VAX-11 MACRO X0.3-11               Page  13

SYMBOL TABLE                                                                                                                     (1)



UCB$L_TTCHAR     0000003C            UCB$V_SEGFLO   = 00000002            VCB$C_COMLEN     00000024            

UCB$L_VCB        00000030            UCB$V_TIM      = 00000000            VCB$C_LENGTH     00000050            

UCB$M_BSY      = 00000100            UCB$V_TIMOUT   = 00000006            VCB$C_MRKLEN     0000000B            

UCB$M_CANCEL   = 00000008            UCB$V_TT_NOTIF = 00000002            VCB$K_COMLEN     00000024            

UCB$M_DEADMO   = 00000400            UCB$V_TT_TIMO  = 00000001            VCB$K_LENGTH     00000050            

UCB$M_DELMBX   = 00000002            UCB$V_VALID    = 0000000B            VCB$K_MRKLEN     0000000B            

UCB$M_DIAGBUF  = 00000002            UCB$W_BCNT       0000006E            VCB$L_AQB        00000010            

UCB$M_DX_WRITE = 00000008            UCB$W_BCR        00000092            VCB$L_BLOCKBL    00000004            

UCB$M_ECC      = 00000001            UCB$W_BOFF       0000006C            VCB$L_BLOCKFL    00000000            

UCB$M_ERLOGIP  = 00000004            UCB$W_BUFQUO     00000018            VCB$L_CUR_FID    00000024            

UCB$M_INT      = 00000002            UCB$W_BYTESTOGO  0000003E            VCB$L_FCBBL      00000004            

UCB$M_INTTYPE  = 00000080            UCB$W_CHARGE     0000004A            VCB$L_FCBFL      00000000            

UCB$M_JOB      = 00000001            UCB$W_CYLINDERS  0000003E            VCB$L_FREE       00000040            

UCB$M_MOUNTING = 00000200            UCB$W_DA         00000088            VCB$L_HOME2LBN   00000028            

UCB$M_NOCNVRT  = 00000004            UCB$W_DC         0000008A            VCB$L_HOMELBN    00000024            

UCB$M_NT_BFROVF= 00000004            UCB$W_DEVBUFSIZ  0000003A            VCB$L_IBMAPLBN   00000030            

UCB$M_NT_BREAK = 00000020            UCB$W_DEVSTS     0000005A            VCB$L_IXHDR2LBN  0000002C            

UCB$M_NT_NAME  = 00000010            UCB$W_DSTADDR    00000018            VCB$L_MAXFILES   00000044            

UCB$M_NT_NONTR = 00000040            UCB$W_DX_BCR     FFFFFFFC            VCB$L_MVL        00000034            

UCB$M_NT_SDP   = 00000008            UCB$W_EC1        0000008C            VCB$L_RVT        00000020            

UCB$M_ONLINE   = 00000010            UCB$W_EC2        0000008E            VCB$L_SBMAPLBN   00000034            

UCB$M_POWER    = 00000020            UCB$W_ERRCNT     00000072            VCB$L_START_FID  00000028            

UCB$M_PRMMBX   = 00000001            UCB$W_FUNC       00000084            VCB$L_ST_RECORD  00000030            

UCB$M_TIM      = 00000001            UCB$W_MB_SEED    FFFFFFFC            VCB$L_USRLBLAST  00000044            

UCB$M_TIMOUT   = 00000040            UCB$W_MSGCNT     00000016            VCB$L_VPBL       00000040            

UCB$M_TT_NOTIF = 00000004            UCB$W_MSGMAX     00000014            VCB$L_VPFL       0000003C            

UCB$M_TT_TIMO  = 00000002            UCB$W_NT_CHAN    0000007C            VCB$L_WCB        00000038            

UCB$M_VALID    = 00000800            UCB$W_OFFSET     00000086            VCB$M_CANCELIO = 00000020            

UCB$S_LNKPRI   = 00000002            UCB$W_REFC       00000050            VCB$M_MUSTCLOSE= 00000040            

UCB$S_LTYPE    = 00000002            UCB$W_SIZE       00000008            VCB$M_WAIMOUVOL= 00000004            

UCB$T_PARTNER    0000000C            UCB$W_SRCADDR    0000001A            VCB$M_WAIREWIND= 00000008            

UCB$V_BACKP    = 00000005            UCB$W_STS        00000058            VCB$M_WAIUSRLBL= 00000010            

UCB$V_BSY      = 00000008            UCB$W_UNIT       00000048            VCB$T_VOLNAME    00000014            

UCB$V_CANCEL   = 00000003            UCB$W_VPROT      0000001A            VCB$V_CANCELIO = 00000005            

UCB$V_DEADMO   = 0000000A            UNLOCK           0000003A R     03   VCB$V_EBCDIC   = 00000005            

UCB$V_DELMBX   = 00000001            VA$M_BYTE      = 000001FF            VCB$V_EXTFID   = 00000005            

UCB$V_DIAGBUF  = 00000001            VA$M_P1        = 40000000            VCB$V_GROUP    = 00000006            

UCB$V_DX_WRITE = 00000003            VA$M_SYSTEM    = 80000000            VCB$V_INTCHG   = 00000004            

UCB$V_ECC      = 00000000            VA$M_VPN       = 3FFFFE00            VCB$V_LOGICEOVS= 00000001            

UCB$V_ERLOGIP  = 00000002            VA$S_BYTE      = 00000009            VCB$V_MUSTCLOSE= 00000006            

UCB$V_INT      = 00000001            VA$S_VPN       = 00000015            VCB$V_OVRACC   = 00000001            

UCB$V_INTTYPE  = 00000007            VA$V_BYTE      = 00000000            VCB$V_OVREXP   = 00000000            

UCB$V_JOB      = 00000000            VA$V_P1        = 0000001E            VCB$V_OVRLBL   = 00000002            

UCB$V_LNKPRI   = 00000006            VA$V_SYSTEM    = 0000001F            VCB$V_OVRSETID = 00000003            

UCB$V_LTYPE    = 00000000            VA$V_VPN       = 00000009            VCB$V_PARTFILE = 00000000            

UCB$V_MOUNTING = 00000009            VCB$B_CUR_RVN    0000002F            VCB$V_STARFILE = 00000008            

UCB$V_MSGACK   = 00000004            VCB$B_EOFDELTA   0000004E            VCB$V_SYSTEM   = 00000007            

UCB$V_MSGFLO   = 00000003            VCB$B_IBMAPSIZE  00000038            VCB$V_WAIMOUVOL= 00000002            

UCB$V_NOCNVRT  = 00000002            VCB$B_IBMAPVBN   0000003A            VCB$V_WAIREWIND= 00000003            

UCB$V_NT_BFROVF= 00000002            VCB$B_LRU_LIM    00000049            VCB$V_WAIUSRLBL= 00000004            

UCB$V_NT_BREAK = 00000005            VCB$B_RESFILES   0000004F            VCB$V_WRITE_IF = 00000000            

UCB$V_NT_NAME  = 00000004            VCB$B_SBMAPSIZE  00000039            VCB$V_WRITE_SM = 00000001            

UCB$V_NT_NONTR = 00000006            VCB$B_SBMAPVBN   0000003B            VCB$W_CLUSTER    0000003C            

UCB$V_NT_SDP   = 00000003            VCB$B_STATUS     0000000B            VCB$W_CUR_NUM    00000024            

UCB$V_ONLINE   = 00000004            VCB$B_TM         0000002E            VCB$W_CUR_SEQ    00000026            

UCB$V_POWER    = 00000005            VCB$B_TYPE       0000000A            VCB$W_EXTEND     0000003E            

UCB$V_PRMMBX   = 00000000            VCB$B_WINDOW     00000048            VCB$W_FILEPROT   0000004A            

IOCIOPOST       - I/O COMPLETION POSTING                         22-AUG-1978 00:12:21   VAX-11 MACRO X0.3-11               Page  14

SYMBOL TABLE                                                                                                                     (1)



VCB$W_MCOUNT     0000004C            

VCB$W_MODE       0000002C            

VCB$W_RVN        0000000E            

VCB$W_SIZE       00000008            

VCB$W_START_NUM  00000028            

VCB$W_START_SEQ  0000002A            

VCB$W_TRANS      0000000C            

WCB$B_ACCESS     0000000B            

WCB$B_TYPE       0000000A            

WCB$C_LENGTH     00000024            

WCB$C_MAP        00000024            

WCB$K_LENGTH     00000024            

WCB$K_MAP        00000024            

WCB$L_FCB        00000018            

WCB$L_LBN        00000002            

WCB$L_ORGUCB     00000010            

WCB$L_P1_LBN     00000026            

WCB$L_P2_LBN     0000002C            

WCB$L_PID        0000000C            

WCB$L_PREVLBN    FFFFFFFC            

WCB$L_RVT        0000001C            

WCB$L_STVBN      00000020            

WCB$L_WLBL       00000004            

WCB$L_WLFL       00000000            

WCB$M_NOTFCP   = 00000004            

WCB$M_READ     = 00000001            

WCB$M_SHRWCB   = 00000008            

WCB$M_WRITE    = 00000002            

WCB$V_DLOCK    = 00000001            

WCB$V_NOREAD   = 0000000A            

WCB$V_NOTFCP   = 00000002            

WCB$V_NOWRITE  = 00000000            

WCB$V_READ     = 00000000            

WCB$V_READCK   = 00000009            

WCB$V_SEQONLY  = 00000006            

WCB$V_SHRWCB   = 00000003            

WCB$V_SPOOL    = 00000004            

WCB$V_WRITE    = 00000001            

WCB$V_WRITEAC  = 00000008            

WCB$V_WRITECK  = 00000005            

WCB$W_ACON       00000014            

WCB$W_COUNT      00000000            

WCB$W_NMAP       00000016            

WCB$W_P1_COUNT   00000024            

WCB$W_P2_COUNT   0000002A            

WCB$W_PREVCOUNT  FFFFFFFA            

WCB$W_REFCNT     0000000E            

WCB$W_SIZE       00000008            

WQH$C_LENGTH     0000000C            

WQH$K_LENGTH     0000000C            

WQH$L_WQBL       00000004            

WQH$L_WQFL       00000000            

WQH$W_WQCNT      00000008            

WQH$W_WQSTATE    0000000A            





PROGRAM SECTION SYNOPSIS

IOCIOPOST       - I/O COMPLETION POSTING                         22-AUG-1978 00:12:21   VAX-11 MACRO X0.3-11               Page  15

PROGRAM SECTION SYNOPSIS                                                                                                         (1)





.  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$            FFFFFFFF      02     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

$AEXENONPAGED    000001F1      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT LONG  





THERE WERE NO ERRORS OR WARNINGS.

5874. BYTES LEFT IN FREE MEMORY POOL.

3864. BYTES OF RECLAIMED MEMORY.

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

13 MLB DIR RDS - 1223 GETS TO DEFINE 30 MACROS. 83 INTER. FILE WRITES. 

