IOPERFORM       - I/O PERFORMANCE DATA COLLECTION                21-AUG-1978 19:54:07   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      38  END OF I/O TRANSACTION

   (1)      71  END OF I/O REQUEST

   (1)     112  START OF I/O TRANSACTION

   (1)     142  START OF I/O REQUEST

   (1)     180  ALLOCATE MESSAGE BUFFER

IOPERFORM       - I/O PERFORMANCE DATA COLLECTION                21-AUG-1978 19:54:07   VAX-11 MACRO X0.3-11               Page   1

01                                                                                                                               (1)



                                     0000     1 	.TITLE	IOPERFORM - I/O PERFORMANCE DATA COLLECTION

                                     0000     2 	.IDENT	/01/

                                     0000     3  

                                     0000     4 ;

                                     0000     5 ; COPYRIGHT (C) 1977

                                     0000     6 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.

                                     0000     7 ;

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

                                     0000     9 ; SINGLE COMPUTER SYSTEM AND MAY BE  COPIED ONLY WITH  THE INCLU-

                                     0000    10 ; SION OF  THE  ABOVE  COPYRIGHT NOTICE.  THIS SOFTWARE,  OR  ANY

                                     0000    11 ; OTHER COPIES THEREOF, MAY NOT BE  PROVIDED  OR  OTHERWISE  MADE

                                     0000    12 ; AVAILABLE TO ANY OTHER PERSON EXCEPT  FOR  USE  ON  SUCH SYSTEM

                                     0000    13 ; AND TO  ONE WHO AGREES  TO  THESE LICENSE  TERMS.  TITLE TO AND

                                     0000    14 ; OWNERSHIP OF THE SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC.

                                     0000    15 ;

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

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

                                     0000    18 ; EQUIPMENT 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 ; D. N. CUTLER 18-NOV-77

                                     0000    24 ;

                                     0000    25 ; I/O PERFORMANCE MEASUREMENT DATA COLLECTION ROUTINES

                                     0000    26 ;

                                     0000    27 ; MACRO LIBRARY CALLS

                                     0000    28 ;

                                     0000    29  

                                     0000    30 	$CADEF				;DEFINE CONDITIONAL ASSEMBLY PARAMETERS

                                     0000    31 	$IRPDEF				;DEFINE IRP OFFSETS

                                     0000    32 	$PBHDEF				;DEFINE PBH OFFSETS

                                     0000    33 	$PDBDEF				;DEFINE PDB OFFSETS

                                     0000    34 	$PIBDEF				;DEFINE PIB OFFSETS

                                     0000    35 	$PRDEF				;DEFINE PROCESSOR REGISTER DEFINITIONS

                                     0000    36 	$UCBDEF				;DEFINE UCB OFFSETS

IOPERFORM       - I/O PERFORMANCE DATA COLLECTION                21-AUG-1978 19:54:07   VAX-11 MACRO X0.3-11               Page   2

01              END OF I/O TRANSACTION                                                                                           (1)



                                     0000    38 	.SBTTL	END OF I/O TRANSACTION

                                     0000    39 ;+

                                     0000    40 ; PMS$END_IO - END OF I/O TRANSACTION

                                     0000    41 ;

                                     0000    42 ; THIS ROUTINE IS CALLED AT THE END OF AN I/O TRANSACTION TO ENTER A MESSAGE

                                     0000    43 ; IN THE I/O PERFORMANCE DATA COLLECTION BUFFER.

                                     0000    44 ;

                                     0000    45 ; INPUTS:

                                     0000    46 ;

                                     0000    47 ;	R3 = ADDRESS OF I/O REQUEST PACKET.

                                     0000    48 ;

                                     0000    49 ; OUTPUTS:

                                     0000    50 ;

                                     0000    51 ;	IF I/O PERFORMANCE DATA COLLECTION IS ENABLED AND THE CURRENT I/O PACKET

                                     0000    52 ;	CONFORMS TO THE SELECTION CRITERIA, THEN AN END OF I/O TRANSACTION IS

                                     0000    53 ;	PLACED IN THE CURRENT DATA BUFFER.

                                     0000    54 ;

                                     0000    55 ;	ALL REGISTERS ARE PRESERVED ACROSS CALL.

                                     0000    56 ;-

                                     0000    57  

                                     0000    58 	.IF DF	CA$_MEASURE_IOT

                                     0000    59  

                                     0000    60 	.ENABL	LSB

                                 00000000    61 	.PSECT	$AEXENONPAGED

                                     0000    62 PMS$END_IO::				;END OF I/O TRANSACTION

                          0F     BB  0000    63 	PUSHR	#^M<R0,R1,R2,R3>	;SAVE REGISTERS

            51            14     9A  0002    64 	MOVZBL	#PIB$K_EIO_SIZE,R1	;SET SIZE OF MESSAGE BUFFER

                                     0005    65 	DSBINT	#15			;DISABLE SOFTWARE INTERRUPTS

                          0086   30  000B    66 	BSBW	ALLOCATE		;ALLOCATE MESSAGE BUFFER

            60            02     90  000E    67 	MOVB	#PIB$K_EIO,PIB$B_TYPE(R0) ;INSERT MESSAGE TYPE

         0C A0         34 A3     7D  0011    68 	MOVQ	IRP$L_MEDIA(R3),PIB$Q_EIO_IOSB(R0) ;INSERT FINAL I/O STATUS

                          76     11  0016    69 	BRB	10$			;

IOPERFORM       - I/O PERFORMANCE DATA COLLECTION                21-AUG-1978 19:54:07   VAX-11 MACRO X0.3-11               Page   3

01              END OF I/O REQUEST                                                                                               (1)



                                     0018    71 	.SBTTL	END OF I/O REQUEST

                                     0018    72 ;+

                                     0018    73 ; PMS$END_RQ - END OF I/O REQUEST

                                     0018    74 ;

                                     0018    75 ; THIS ROUTINE IS CALLED AT THE END OF AN I/O REQUEST TO ENTER A MESSAGE IN THE

                                     0018    76 ; I/O PERFORMANCE DATA COLLECTION BUFFER.

                                     0018    77 ;

                                     0018    78 ; INPUTS:

                                     0018    79 ;

                                     0018    80 ;	R5 = ADDRESS OF I/O REQUEST PACKET.

                                     0018    81 ;

                                     0018    82 ;	ROUTINE IS ASSUMED TO HAVE BEEN CALLED FROM I/O POST AT I/O POST

                                     0018    83 ;	LEVEL.

                                     0018    84 ;

                                     0018    85 ; OUTPUTS:

                                     0018    86 ;

                                     0018    87 ;	IF I/O PERFORMANCE DATA COLLECTION IS ENABLED AND THE CURRENT I/O PACKET

                                     0018    88 ;	CONFORMS TO THE SELECTION CRITERIA, THEN AN END OF I/O REQUEST TRANSACTION

                                     0018    89 ;	IS PLACED IN THE CURRENT DATA BUFFER.

                                     0018    90 ;

                                     0018    91 ;	IF ANY BUFFERS ARE READY TO PROCESS, THEN THE I/O PERFORMANCE DATA

                                     0018    92 ;	COLLECTION PROCESS IS AWAKENED.

                                     0018    93 ;

                                     0018    94 ;	ALL REGISTERS ARE PRESERVED ACROSS CALL.

                                     0018    95 ;-

                                     0018    96  

                                     0018    97 PMS$END_RQ::				;END OF I/O REQUEST

                          0F     BB  0018    98 	PUSHR	#^M<R0,R1,R2,R3>	;SAVE REGISTERS

            53            55     D0  001A    99 	MOVL	R5,R3			;COPY ADDRESS OF I/O PACKET

            51            0C     9A  001D   100 	MOVZBL	#PIB$K_ERQ_SIZE,R1	;SET SIZE OF MESSAGE BUFFER

                                     0020   101 	DSBINT	#15			;DISABLE SOFTWARE INTERRUPTS

                          6C     10  0026   102 	BSBB	ALLOCATE		;ALLOCATE MESSAGE BUFFER

            60            03     90  0028   103 	MOVB	#PIB$K_ERQ,PIB$B_TYPE(R0) ;INSERT MESSAGE TYPE

                       2A A2     B5  002B   104 	TSTW	PDB$W_BUFCNT(R2)	;ANY FULL BUFFERS?

                          5E     13  002E   105 	BEQL	10$			;IF EQL NO

            7E            54     7D  0030   106 	MOVQ	R4,-(SP)		;SAVE REGISTERS

            51         20 A2     D0  0033   107 	MOVL	PDB$L_PID(R2),R1	;GET DATA COLLECTION PROCESS INDENTIFICATION

                          FFC6'  30  0037   108 	BSBW	SCH$WAKE		;WAKE PROCESS

            54            8E     7D  003A   109 	MOVQ	(SP)+,R4		;RESTORE REGISTERS

                          4F     11  003D   110 	BRB	10$			;

IOPERFORM       - I/O PERFORMANCE DATA COLLECTION                21-AUG-1978 19:54:07   VAX-11 MACRO X0.3-11               Page   4

01              START OF I/O TRANSACTION                                                                                         (1)



                                     003F   112 	.SBTTL	START OF I/O TRANSACTION

                                     003F   113 ;+

                                     003F   114 ; PMS$START_IO - START OF I/O TRANSACTION

                                     003F   115 ;

                                     003F   116 ; THIS ROUTINE IS CALLED AT THE START OF AN I/O TRANSACTION TO ENTER A MESSAGE

                                     003F   117 ; IN THE CURRENT I/O PERFORMANCE DATA COLLECTION BUFFER.

                                     003F   118 ;

                                     003F   119 ; INPUTS:

                                     003F   120 ;

                                     003F   121 ;	R3 = ADDRESS OF I/O REQUEST PACKET.

                                     003F   122 ;

                                     003F   123 ; OUTPUTS:

                                     003F   124 ;

                                     003F   125 ;	IF I/O PERFORMANCE DATA COLLECTION IS ENABLED AND THE CURRENT I/O PACKET

                                     003F   126 ;	CONFORMS TO THE SELECTION CRITERIA, THEN AN START OF I/O TRANSACTION IS

                                     003F   127 ;	PLACED IN THE CURRENT DATA BUFFER.

                                     003F   128 ;

                                     003F   129 ;	ALL REGISTERS ARE PRESERVED ACROSS CALL.

                                     003F   130 ;-

                                     003F   131  

                                     003F   132 PMS$START_IO::				;START OF I/O TRANSACTION

                          0F     BB  003F   133 	PUSHR	#^M<R0,R1,R2,R3>	;SAVE REGISTERS

            51            10     9A  0041   134 	MOVZBL	#PIB$K_SIO_SIZE,R1	;SET SIZE OF MESSAGE BUFFER

                                     0044   135 	DSBINT	#15			;DISABLE SOFTWARE INTERRUPTS

                          48     10  004A   136 	BSBB	ALLOCATE		;ALLOCATE MESSAGE BUFFER

            60            01     90  004C   137 	MOVB	#PIB$K_SIO,PIB$B_TYPE(R0) ;INSERT MESSAGE TYPE

         02 A0         32 A3     B0  004F   138 	MOVW	IRP$W_BCNT(R3),PIB$W_SIO_BCNT(R0) ;INSERT TRANSFER BYTE COUNT

         0C A0         34 A3     D0  0054   139 	MOVL	IRP$L_MEDIA(R3),PIB$L_SIO_MEDIA(R0) ;INSERT MEDIA ADDRESS

                          33     11  0059   140 	BRB	10$			;

IOPERFORM       - I/O PERFORMANCE DATA COLLECTION                21-AUG-1978 19:54:07   VAX-11 MACRO X0.3-11               Page   5

01              START OF I/O REQUEST                                                                                             (1)



                                     005B   142 	.SBTTL	START OF I/O REQUEST

                                     005B   143 ;+

                                     005B   144 ; PMS$START_RQ - START OF I/O REQUEST

                                     005B   145 ;

                                     005B   146 ; THIS ROUTINE IS CALLED AT THE START OF AN I/O REQUEST TO ENTER A MESSAGE IN THE

                                     005B   147 ; I/O PERFORMANCE DATA COLLECTION BUFFER.

                                     005B   148 ;

                                     005B   149 ; INPUTS:

                                     005B   150 ;

                                     005B   151 ;	R3 = ADDRESS OF I/O REQUEST PACKET.

                                     005B   152 ;

                                     005B   153 ; OUTPUTS:

                                     005B   154 ;

                                     005B   155 ;	IF I/O PERFORMANCE DATA COLLECTION IS ENABLED AND THE CURRENT I/O PACKET

                                     005B   156 ;	CONFORMS TO THE SELECTION CRITERIA, THEN AN START OF I/O REQUEST TRANSACTION

                                     005B   157 ;	IS PLACED IN THE CURRENT DATA BUFFER.

                                     005B   158 ;

                                     005B   159 ;	ALL REGISTERS ARE PRESERVED ACROSS CALL.

                                     005B   160 ;-

                                     005B   161  

                                     005B   162 PMS$START_RQ::				;START OF I/O REQUEST

                          0F     BB  005B   163 	PUSHR	#^M<R0,R1,R2,R3>	;SAVE REGISTERS

            51            18     9A  005D   164 	MOVZBL	#PIB$K_SRQ_SIZE,R1	;SET SIZE OF MESSAGE BUFFER

                                     0060   165 	DSBINT	#15			;DISABLE SOFTWARE INTERRUPTS

         48 A3       0000'CF     D0  0066   166 	MOVL	W^PMS$GL_IOPFMSEQ,IRP$L_SEQNUM(R3) ;INSERT PACKET SEQUENCE NUMBER

                     0000'CF     D6  006C   167 	INCL	W^PMS$GL_IOPFMSEQ	;INCREMENT I/O TRANSACTION SEQUENCE NUMBER

                          22     10  0070   168 	BSBB	ALLOCATE		;ALLOCATE MESSAGE BUFFER

            60            00     90  0072   169 	MOVB	#PIB$K_SRQ,PIB$B_TYPE(R0) ;INSERT MESSAGE TYPE

         01 A0         23 A3     90  0075   170 	MOVB	IRP$B_PRI(R3),PIB$B_SRQ_PRI(R0) ;INSERT REQUEST PRIORITY

         0C A0         0C A3     D0  007A   171 	MOVL	IRP$L_PID(R3),PIB$L_SRQ_PID(R0) ;INSERT REQUESTER PID

         10 A0         1C A3     D0  007F   172 	MOVL	IRP$L_UCB(R3),PIB$L_SRQ_UCB(R0) ;INSERT DEVICE UCB ADDRESS

         14 A0         20 A3     B0  0084   173 	MOVW	IRP$W_FUNC(R3),PIB$W_SRQ_FUNC(R0) ;INSERT I/O FUNCTION CODE

         16 A0         2A A3     B0  0089   174 	MOVW	IRP$W_STS(R3),PIB$W_SRQ_STS(R0) ;INSERT PACKET STATUS WORD

                                     008E   175 10$:	ENBINT				;ENABLE INTERRUPTS

                          0F     BA  0091   176 	POPR	#^M<R0,R1,R2,R3>	;RESTORE REGISTERS

                                 05  0093   177 	RSB				;

                                     0094   178 	.DSABL	LSB

IOPERFORM       - I/O PERFORMANCE DATA COLLECTION                21-AUG-1978 19:54:07   VAX-11 MACRO X0.3-11               Page   6

01              ALLOCATE MESSAGE BUFFER                                                                                          (1)



                                     0094   180 	.SBTTL	ALLOCATE MESSAGE BUFFER

                                     0094   181 ;

                                     0094   182 ; ALLOCATE - ALLOCATE MESSAGE BUFFER

                                     0094   183 ;

                                     0094   184 ; THIS ROUTINE IS CALLED TO:

                                     0094   185 ;

                                     0094   186 ;	1. TEST IF I/O PERFORMANCE MEASUREMENT IS ENABLED,

                                     0094   187 ;	2. TEST IF THE DEVICE CLASS MATCHES,

                                     0094   188 ;	3. TEST IF THE DEVICE TYPE MATCHES,

                                     0094   189 ;	4. TEST IF THE FUNCTION CODE IS TO BE RECORDED, AND

                                     0094   190 ;	5. TEST IF THE STATUS FIELD MATCHES.

                                     0094   191 ;

                                     0094   192 ; IF ALL OF THESE TESTS ARE SUCCESSFUL, THEN AN ATTEMPT IS MADE TO ALLOCATE

                                     0094   193 ; AN I/O PERFORMANCE MEASUREMENT MESSAGE BUFFER.

                                     0094   194 ;

                                     0094   195 ; INPUTS:

                                     0094   196 ;

                                     0094   197 ;	R1 = SIZE OF MESSAGE TO ALLOCATE.

                                     0094   198 ;	R3 = ADDRESS OF I/O REQUEST PACKET.

                                     0094   199 ;

                                     0094   200 ;	REGISTERS R0, R1, R2, AND R3 ARE ASSUMED TO HAVE BEEN SAVED AND ALL

                                     0094   201 ;	SOFTWARE INTERRUPTS ARE DISABLED.

                                     0094   202 ;

                                     0094   203 ; OUTPUTS:

                                     0094   204 ;

                                     0094   205 ;	IF I/O PERFORMANCE MEASUREMENT IS NOT ENABLED OR ANY OF THE SELECTION

                                     0094   206 ;	CRITERIA FAILS, THEN THE RETURN ADDRESS IS REMOVED FROM THE STACK, THE

                                     0094   207 ;	INTERRUPT LEVEL AND REGISTERS ARE RESTORED, AND A RETURN TO THE ORIGINAL

                                     0094   208 ;	CALLER IS EXECUTED. ELSE AN ATTEMPT IS MADE TO ALLOCATE AN I/O PERFORM-

                                     0094   209 ;	ANCE MEASUREMENT MESSAGE BUFFER.

                                     0094   210 ;

                                     0094   211 ;	IF THE ALLOCATION ATTEMPT FAILS, THEN THE RETURN ADDRESS IS REMOVED FROM

                                     0094   212 ;	THE STACK, THE INTERRUPT LEVEL AND REGISTERS ARE RESTORED, AND A RETURN

                                     0094   213 ;	TO THE ORIGINAL CALLER IS EXECUTED. ELSE THE MESSAGE BUFFER IS ALLOCATED,

                                     0094   214 ;	THE TIME AND SEQUENCE NUMBER ARE FILLED IN, AND A RETURN TO THE CALLER

                                     0094   215 ;	IS EXECUTED.

                                     0094   216 ;

                                     0094   217  

                                     0094   218 ALLOCATE:				;ALLOCATE MESSAGE BUFFER

            52       0000'CF     D0  0094   219 	MOVL	W^PMS$GL_IOPFMPDB,R2	;GET ADDRESS OF I/O PERFORMANCE DATA BLOCK

                          6C     13  0099   220 	BEQL	60$			;IF EQL I/O PERFORMANCE MEASUREMENT DISABLED

            50         1C A3     D0  009B   221 	MOVL	IRP$L_UCB(R3),R0	;GET ADDRESS OF DEVICE UCB

                       24 A2     95  009F   222 	TSTB	PDB$B_DEVCLASS(R2)	;ALL CLASSES MATCH?

                          07     19  00A2   223 	BLSS	10$			;IF LSS YES

         24 A2         38 A0     91  00A4   224 	CMPB	UCB$B_DEVCLASS(R0),PDB$B_DEVCLASS(R2) ;DEVICE CLASS MATCH?

                          5C     12  00A9   225 	BNEQ	60$			;IF NEQ NO

                       25 A2     95  00AB   226 10$:	TSTB	PDB$B_DEVTYPE(R2)	;ALL TYPES MATCH?

                          07     19  00AE   227 	BLSS	20$			;IF LSS YES

         25 A2         39 A0     91  00B0   228 	CMPB	UCB$B_DEVTYPE(R0),PDB$B_DEVTYPE(R2) ;DEVICE TYPE MATCH?

                          50     12  00B5   229 	BNEQ	60$			;IF NEQ NO

                          00     EF  00B7   230 20$:	EXTZV	#IRP$V_FCODE,#IRP$S_FCODE,- ;GET I/O FUNCTION CODE

         20 A3            06         00B9   231 		IRP$W_FUNC(R3),R0	;

                          50         00BC       

         2C A2            50     E1  00BD   232 	BBC	R0,PDB$Q_FUNC(R2),60$	;IF CLR, FUNCTION NOT ENABLED

                          45         00C1       

         2A A3         26 A2     AB  00C2   233 	BICW3	PDB$W_ANDM(R2),IRP$W_STS(R3),R0 ;CLEAR MISCELLANEOUS BITS

                          50         00C7       

IOPERFORM       - I/O PERFORMANCE DATA COLLECTION                21-AUG-1978 19:54:07   VAX-11 MACRO X0.3-11               Page   7

01              ALLOCATE MESSAGE BUFFER                                                                                          (1)



            50         28 A2     AC  00C8   234 	XORW	PDB$W_XORM(R2),R0	;TEST FOR EQUALITY

                          39     12  00CC   235 	BNEQ	60$			;IF NEQ NO MATCH

                       14 A2     D5  00CE   236 30$:	TSTL	PDB$L_CURBUF(R2)	;ANY BUFFER CURRENTLY AVAILABLE?

                          16     13  00D1   237 	BEQL	40$			;IF EQL NO

         18 A2            51     C1  00D3   238 	ADDL3	R1,PDB$L_NXTBUF(R2),R0	;CALCULATE ADDRESS OF FREE SPACE

                          50         00D7       

         1C A2            50     D1  00D8   239 	CMPL	R0,PDB$L_ENDBUF(R2)	;BEYOND END OF BUFFER?

                          31     1B  00DC   240 	BLEQU	70$			;IF LEQU NO

         10 B2         14 B2     0E  00DE   241 	INSQUE	@PDB$L_CURBUF(R2),@PDB$L_FILLBL(R2) ;INSERT BUFFER IN FILLED LIST

                       2A A2     B6  00E3   242 	INCW	PDB$W_BUFCNT(R2)	;INCREMENT FULL BUFFER COUNT

                       14 A2     D4  00E6   243 	CLRL	PDB$L_CURBUF(R2)	;CLEAR ADDRESS OF CURRENT BUFFER

            50         00 B2     0F  00E9   244 40$:	REMQUE	@PDB$L_FREEFL(R2),R0	;GET NEXT BUFFER FROM FREE LIST

                          14     1D  00ED   245 	BVS	50$			;IF VS NO BUFFER AVAILABLE

         14 A2            50     D0  00EF   246 	MOVL	R0,PDB$L_CURBUF(R2)	;SET ADDRESS OF AVAILABLE BUFFER

         18 A2         0D A0     9E  00F3   247 	MOVAB	PBH$K_START(R0),PDB$L_NXTBUF(R2) ;SET ADDRESS OF FREE SPACE

            7E         08 A0     3C  00F8   248 	MOVZWL	PBH$W_SIZE(R0),-(SP)	;GET LENGTH OF DATA BUFFER

         1C A2            9E40   9E  00FC   249 	MOVAB	@(SP)+[R0],PDB$L_ENDBUF(R2) ;SET ENDING ADDRESS OF BUFFER

                          CB     11  0101   250 	BRB	30$			;

         0B A2            01     88  0103   251 50$:	BISB	#1,PDB$B_OVERRUN(R2)	;SET OVERRUN INDICATOR

                          8E     D5  0107   252 60$:	TSTL	(SP)+			;REMOVED RETURN FROM STACK

                                     0109   253 	ENBINT				;ENABLE INTERRUPTS

                          0F     BA  010C   254 	POPR	#^M<R0,R1,R2,R3>	;RESTORE REGISTERS

                                 05  010E   255 	RSB				;

                                     010F   256  

                                     010F   257 ;

                                     010F   258 ; MESSAGE BUFFER SUCCESSFULLY ALLOCATED

                                     010F   259 ;

                                     010F   260  

            50         18 A2     D0  010F   261 70$:	MOVL	PDB$L_NXTBUF(R2),R0	;GET ADDRESS OF NEXT SPACE IN BUFFER

            51            50     C1  0113   262 	ADDL3	R0,R1,PDB$L_NXTBUF(R2)	;CALCULATE ADDRESS OF NEXT AVAILABLE SPACE

                       18 A2         0116       

            51         14 A2     D0  0118   263 	MOVL	PDB$L_CURBUF(R2),R1	;GET ADDRESS OF CURRENT BUFFER

                       0B A1     B6  011C   264 	INCW	PBH$W_MSGCNT(R1)	;INCREMENT MESSAGE COUNT

            20            0A     EF  011F   265 	EXTZV	#10,#32,W^EXE$GQ_SYSTIME,PIB$L_SRQ_TIME(R0) ;INSERT CURRENT TIME

         04 A0       0000'CF         0122       

         08 A0         48 A3     D0  0127   266 	MOVL	IRP$L_SEQNUM(R3),PIB$L_SRQ_SEQN(R0) ;INSERT SEQUENCE NUMBER

                                 05  012C   267 	RSB				;

                                     012D   268  

                                     012D   269 	.ENDC

                                     012D   270  

                                     012D   271 	.END

IOPERFORM       - I/O PERFORMANCE DATA COLLECTION                21-AUG-1978 19:54:07   VAX-11 MACRO X0.3-11               Page   8

SYMBOL TABLE                                                                                                                     (1)



ALLOCATE         00000094 R     03   IRP$V_SWAPIO   = 00000006            PIB$L_SIO_MEDIA  0000000C            

BIT...         = 00000000            IRP$V_VIRTUAL  = 00000004            PIB$L_SIO_SEQN   00000008            

CA$_MEASURE    = 00000002            IRP$W_ABCNT      0000003C            PIB$L_SIO_TIME   00000004            

CA$_MEASURE_IOT= 00000004            IRP$W_BCNT       00000032            PIB$L_SRQ_PID    0000000C            

CA$_SIMULATOR  = 00000001            IRP$W_BOFF       00000030            PIB$L_SRQ_SEQN   00000008            

EXE$GQ_SYSTIME   ********   X   03   IRP$W_CHAN       00000028            PIB$L_SRQ_TIME   00000004            

GBL...         = 00000000            IRP$W_FUNC       00000020            PIB$L_SRQ_UCB    00000010            

IRP$B_CARCON     00000038            IRP$W_OBCNT      0000003E            PIB$Q_EIO_IOSB   0000000C            

IRP$B_EFN        00000022            IRP$W_SIZE       00000008            PIB$W_SIO_BCNT   00000002            

IRP$B_PRI        00000023            IRP$W_STS        0000002A            PIB$W_SRQ_FUNC   00000014            

IRP$B_RMOD       0000000B            IRP$W_TT_PRMPT   0000003C            PIB$W_SRQ_STS    00000016            

IRP$B_TYPE       0000000A            PBH$B_TYPE       0000000A            PMS$END_IO       00000000 RG    03   

IRP$C_LENGTH     0000004C            PBH$C_LENGTH     00000200            PMS$END_RQ       00000018 RG    03   

IRP$K_LENGTH     0000004C            PBH$C_START      0000000D            PMS$GL_IOPFMPDB  ********   X   03   

IRP$L_AST        00000010            PBH$K_LENGTH     00000200            PMS$GL_IOPFMSEQ  ********   X   03   

IRP$L_ASTPRM     00000014            PBH$K_START      0000000D            PMS$START_IO     0000003F RG    03   

IRP$L_DIAGBUF    00000044            PBH$L_BUFRBL     00000004            PMS$START_RQ     0000005B RG    03   

IRP$L_IOQBL      00000004            PBH$L_BUFRFL     00000000            PR$_ACCR       = 00000029            

IRP$L_IOQFL      00000000            PBH$W_MSGCNT     0000000B            PR$_ACCS       = 00000028            

IRP$L_IOSB       00000024            PBH$W_SIZE       00000008            PR$_ASTLVL     = 00000013            

IRP$L_IOST1      00000034            PDB$B_DEVCLASS   00000024            PR$_ESP        = 00000001            

IRP$L_IOST2      00000038            PDB$B_DEVTYPE    00000025            PR$_ICCS       = 00000018            

IRP$L_MEDIA      00000034            PDB$B_OVERRUN    0000000B            PR$_ICR        = 0000001A            

IRP$L_PID        0000000C            PDB$B_TYPE       0000000A            PR$_IPL        = 00000012            

IRP$L_SEGVBN     00000040            PDB$C_LENGTH     00000034            PR$_ISP        = 00000004            

IRP$L_SEQNUM     00000048            PDB$K_LENGTH     00000034            PR$_KSP        = 00000000            

IRP$L_SVAPTE     0000002C            PDB$L_CURBUF     00000014            PR$_MAPEN      = 00000038            

IRP$L_TT_TERM    00000038            PDB$L_ENDBUF     0000001C            PR$_NICR       = 00000019            

IRP$L_UCB        0000001C            PDB$L_FILLBL     00000010            PR$_P0BR       = 00000008            

IRP$L_WIND       00000018            PDB$L_FILLFL     0000000C            PR$_P0LR       = 00000009            

IRP$M_BUFIO    = 00000001            PDB$L_FREEBL     00000004            PR$_P1BR       = 0000000A            

IRP$M_CHAINED  = 00000020            PDB$L_FREEFL     00000000            PR$_P1LR       = 0000000B            

IRP$M_COMPLX   = 00000008            PDB$L_NXTBUF     00000018            PR$_PCBB       = 00000010            

IRP$M_DIAGBUF  = 00000080            PDB$L_PID        00000020            PR$_PME        = 0000003D            

IRP$M_FUNC     = 00000002            PDB$Q_FUNC       0000002C            PR$_RXCS       = 00000020            

IRP$M_MBXIO    = 00000400            PDB$W_ANDM       00000026            PR$_RXDB       = 00000021            

IRP$M_PAGIO    = 00000004            PDB$W_BUFCNT     0000002A            PR$_SBIER      = 00000034            

IRP$M_PHYSIO   = 00000100            PDB$W_SIZE       00000008            PR$_SBIFS      = 00000030            

IRP$M_PRIVIO   = 00000200            PDB$W_XORM       00000028            PR$_SBIMT      = 00000033            

IRP$M_SWAPIO   = 00000040            PIB$B_SRQ_PRI    00000001            PR$_SBIQC      = 00000036            

IRP$M_VIRTUAL  = 00000010            PIB$B_TYPE       00000000            PR$_SBIS       = 00000031            

IRP$Q_NT_PRVMSK  0000003C            PIB$C_EIO_SIZE   00000014            PR$_SBISC      = 00000032            

IRP$S_FCODE    = 00000006            PIB$C_ERQ_SIZE   0000000C            PR$_SBITA      = 00000035            

IRP$S_FMOD     = 0000000A            PIB$C_SIO_SIZE   00000010            PR$_SBR        = 0000000C            

IRP$S_MODE     = 00000002            PIB$C_SRQ_SIZE   00000018            PR$_SCBB       = 00000011            

IRP$V_BUFIO    = 00000000            PIB$K_EIO      = 00000002            PR$_SID        = 0000003E            

IRP$V_CHAINED  = 00000005            PIB$K_EIO_SIZE   00000014            PR$_SIRR       = 00000014            

IRP$V_COMPLX   = 00000003            PIB$K_ERQ      = 00000003            PR$_SISR       = 00000015            

IRP$V_DIAGBUF  = 00000007            PIB$K_ERQ_SIZE   0000000C            PR$_SLR        = 0000000D            

IRP$V_FCODE    = 00000000            PIB$K_SIO      = 00000001            PR$_SSP        = 00000002            

IRP$V_FMOD     = 00000006            PIB$K_SIO_SIZE   00000010            PR$_TBIA       = 00000039            

IRP$V_FUNC     = 00000001            PIB$K_SRQ      = 00000000            PR$_TBIS       = 0000003A            

IRP$V_MBXIO    = 0000000A            PIB$K_SRQ_SIZE   00000018            PR$_TODR       = 0000001B            

IRP$V_MODE     = 00000000            PIB$L_EIO_SEQN   00000008            PR$_TXCS       = 00000022            

IRP$V_PAGIO    = 00000002            PIB$L_EIO_TIME   00000004            PR$_TXDB       = 00000023            

IRP$V_PHYSIO   = 00000008            PIB$L_ERQ_SEQN   00000008            PR$_USP        = 00000003            

IRP$V_PRIVIO   = 00000009            PIB$L_ERQ_TIME   00000004            PR$_WCSA       = 0000002C            

IOPERFORM       - I/O PERFORMANCE DATA COLLECTION                21-AUG-1978 19:54:07   VAX-11 MACRO X0.3-11               Page   9

SYMBOL TABLE                                                                                                                     (1)



PR$_WCSD       = 0000002D            UCB$L_NT_INTSSB  00000078            UCB$V_NT_BFROVF= 00000002            

SCH$WAKE         ********   X   03   UCB$L_OPCNT      00000060            UCB$V_NT_BREAK = 00000005            

UCB$B_AMOD       00000053            UCB$L_OWNUIC     0000001C            UCB$V_NT_NAME  = 00000004            

UCB$B_CEX        00000077            UCB$L_PID        00000028            UCB$V_ONLINE   = 00000004            

UCB$B_CM1        0000004A            UCB$L_RQBL       00000004            UCB$V_POWER    = 00000005            

UCB$B_CM2        0000004B            UCB$L_RQFL       00000000            UCB$V_PRMMBX   = 00000000            

UCB$B_DEVCLASS   00000038            UCB$L_SVAPTE     00000068            UCB$V_SEGFLO   = 00000002            

UCB$B_DEVTYPE    00000039            UCB$L_SVPN       00000064            UCB$V_TIM      = 00000000            

UCB$B_DIPL       00000052            UCB$L_TTCHAR     0000003C            UCB$V_TIMOUT   = 00000006            

UCB$B_DX_SCTCNT  000000A6            UCB$L_VCB        00000030            UCB$V_TT_NOTIF = 00000002            

UCB$B_ERTCNT     00000070            UCB$M_BACKP    = 00000020            UCB$V_TT_TIMO  = 00000001            

UCB$B_ERTMAX     00000071            UCB$M_BSY      = 00000100            UCB$V_UNLOAD   = 0000000C            

UCB$B_ESCAPE     0000004B            UCB$M_CANCEL   = 00000008            UCB$V_VALID    = 0000000B            

UCB$B_FEX        00000076            UCB$M_DEADMO   = 00000400            UCB$W_BCNT       0000006E            

UCB$B_FIPL       0000000B            UCB$M_DELMBX   = 00000002            UCB$W_BCR        00000096            

UCB$B_LOCSRV     0000003C            UCB$M_DIAGBUF  = 00000002            UCB$W_BOFF       0000006C            

UCB$B_OFFNDX     00000094            UCB$M_DX_WRITE = 00000008            UCB$W_BUFQUO     00000018            

UCB$B_OFFRTC     00000095            UCB$M_ECC      = 00000001            UCB$W_BYTESTOGO  0000003E            

UCB$B_REMSRV     0000003D            UCB$M_ERLOGIP  = 00000004            UCB$W_CHARGE     0000004A            

UCB$B_SECTORS    0000003C            UCB$M_INT      = 00000002            UCB$W_CYLINDERS  0000003E            

UCB$B_SLAVE      00000074            UCB$M_INTTYPE  = 00000080            UCB$W_DA         0000008C            

UCB$B_SPR        00000075            UCB$M_JOB      = 00000001            UCB$W_DC         0000008E            

UCB$B_STATE      00000052            UCB$M_MOUNTING = 00000200            UCB$W_DEVBUFSIZ  0000003A            

UCB$B_TRACKS     0000003D            UCB$M_NOCNVRT  = 00000004            UCB$W_DEVSTS     0000005A            

UCB$B_TYPE       0000000A            UCB$M_NT_BFROVF= 00000004            UCB$W_DIRSEQ     00000088            

UCB$B_VERTSZ     0000003F            UCB$M_NT_BREAK = 00000020            UCB$W_DSTADDR    00000018            

UCB$C_LENGTH     00000074            UCB$M_NT_NAME  = 00000010            UCB$W_DX_BCR     000000A4            

UCB$C_LOGLNK   = 00000001            UCB$M_ONLINE   = 00000010            UCB$W_EC1        00000090            

UCB$K_LENGTH     00000074            UCB$M_POWER    = 00000020            UCB$W_EC2        00000092            

UCB$L_AMB        00000054            UCB$M_PRMMBX   = 00000001            UCB$W_ERRCNT     00000072            

UCB$L_ASTQBL     00000010            UCB$M_TIM      = 00000001            UCB$W_FUNC       0000007E            

UCB$L_ASTQFL     0000000C            UCB$M_TIMOUT   = 00000040            UCB$W_MB_SEED    FFFFFFFC            

UCB$L_CPID       0000005C            UCB$M_TT_NOTIF = 00000004            UCB$W_MSGCNT     00000016            

UCB$L_CRB        00000020            UCB$M_TT_TIMO  = 00000002            UCB$W_MSGMAX     00000014            

UCB$L_DDB        00000024            UCB$M_UNLOAD   = 00001000            UCB$W_NT_CHAN    0000007C            

UCB$L_DEVCHAR    00000034            UCB$M_VALID    = 00000800            UCB$W_OFFSET     0000008A            

UCB$L_DEVDEPEND  0000003C            UCB$S_LNKPRI   = 00000002            UCB$W_REFC       00000050            

UCB$L_DPC        00000080            UCB$S_LTYPE    = 00000002            UCB$W_SIZE       00000008            

UCB$L_DUETIM     0000005C            UCB$T_PARTNER    0000000C            UCB$W_SRCADDR    0000001A            

UCB$L_DX_BFPNT   0000009C            UCB$V_BACKP    = 00000005            UCB$W_STS        00000058            

UCB$L_DX_BUF     00000098            UCB$V_BSY      = 00000008            UCB$W_UNIT       00000048            

UCB$L_DX_RXDB    000000A0            UCB$V_CANCEL   = 00000003            UCB$W_VPROT      0000001A            

UCB$L_EMB        00000078            UCB$V_DEADMO   = 0000000A            

UCB$L_FIRST      00000014            UCB$V_DELMBX   = 00000001            

UCB$L_FPC        0000000C            UCB$V_DIAGBUF  = 00000001            

UCB$L_FQBL       00000004            UCB$V_DX_WRITE = 00000003            

UCB$L_FQFL       00000000            UCB$V_ECC      = 00000000            

UCB$L_FR3        00000010            UCB$V_ERLOGIP  = 00000002            

UCB$L_FR4        00000014            UCB$V_INT      = 00000001            

UCB$L_IOQBL      00000044            UCB$V_INTTYPE  = 00000007            

UCB$L_IOQFL      00000040            UCB$V_JOB      = 00000000            

UCB$L_IRP        0000004C            UCB$V_LNKPRI   = 00000006            

UCB$L_LINK       0000002C            UCB$V_LTYPE    = 00000000            

UCB$L_LOGADR     00000064            UCB$V_MOUNTING = 00000009            

UCB$L_MAXBLOCK   00000084            UCB$V_MSGACK   = 00000004            

UCB$L_MEDIA      0000008C            UCB$V_MSGFLO   = 00000003            

UCB$L_NT_DATSSB  00000074            UCB$V_NOCNVRT  = 00000002            

IOPERFORM       - I/O PERFORMANCE DATA COLLECTION                21-AUG-1978 19:54:07   VAX-11 MACRO X0.3-11               Page  10

PROGRAM SECTION SYNOPSIS                                                                                                         (1)







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

$AEXENONPAGED    0000012D      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

15616. BYTES LEFT IN FREE MEMORY POOL.

3562. BYTES OF RECLAIMED MEMORY.

OBJ$:IOPERFORM,LIS$:IOPERFORM/-SP=EXECML$/ML,SRC$:IOPERFORM

5 MLB DIR RDS - 602 GETS TO DEFINE 18 MACROS. 35 INTER. FILE WRITES. 

