RM0XTND23       PROLOG LOCK AND UPDATE ROUTINES                  21-AUG-1978 21:34:55   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (1)      41  DECLARATIONS

   (1)      66  RM$LOCK_PROLOG  -  ROUTINE TO LOCK PROLOG AND C

   (1)     160  RM$UPD_PROLOG2  -  ROUTINE TO UPDATE AND REWRIT

RM0XTND23       PROLOG LOCK AND UPDATE ROUTINES                  21-AUG-1978 21:34:55   VAX-11 MACRO X0.3-11               Page   1

002                                                                                                                              (1)



                                     0000     1 	$BEGIN	RM0XTND23,002,F$RMSEXTEND23,<PROLOG LOCK AND UPDATE ROUTINES>

                                     0000     2 

                                     0000     3 ;

                                     0000     4 ; COPYRIGHT (C) 1977

                                     0000     5 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000     6 ;

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

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

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

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

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

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

                                     0000    13 ; REMAIN IN DEC.

                                     0000    14 ;

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

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

                                     0000    17 ; CORPORATION.

                                     0000    18 ;

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

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

                                     0000    21 ;

                                     0000    22 ;++

                                     0000    23 ; FACILITY: RMS32

                                     0000    24 ;

                                     0000    25 ; ABSTRACT:

                                     0000    26 ;

                                     0000    27 ;	THIS MODULE PROVIDES TWO ROUTINES TO HANDLE THE LOCKING

                                     0000    28 ;	AND UPDATING OF FILE PROLOGS ON EXTENDS.

                                     0000    29 ;

                                     0000    30 ; ENVIRONMENT:

                                     0000    31 ;		STAR PROCESSOR RUNNING STARLET EXEC.

                                     0000    32 ;

                                     0000    33 ; AUTHOR: L F LAVERDURE,	 CREATION DATE: 1-DEC-77

                                     0000    34 ;

                                     0000    35 ; MODIFIED BY:

                                     0000    36 ;

                                     0000    37 ;	L F LAVERDURE,   2-DEC-77  12:29

                                     0000    38 ; 01	- 

                                     0000    39 ;--

RM0XTND23       PROLOG LOCK AND UPDATE ROUTINES                  21-AUG-1978 21:34:55   VAX-11 MACRO X0.3-11               Page   2

002             DECLARATIONS                                                                                                     (1)



                                     0000    41 	.SBTTL	DECLARATIONS

                                     0000    42 ;

                                     0000    43 ; INCLUDE FILES:

                                     0000    44 ;

                                     0000    45 

                                     0000    46 ;

                                     0000    47 ; MACROS:

                                     0000    48 ;

                                     0000    49 	$BDBDEF

                                     0000    50 	$CSHDEF

                                     0000    51 	$FABDEF

                                     0000    52 	$IFBDEF

                                     0000    53 	$PLGDEF

                                     0000    54 	$RLSDEF

                                     0000    55 	$RMSDEF

                                     0000    56 

                                     0000    57 ;

                                     0000    58 ; EQUATED SYMBOLS:

                                     0000    59 ;

                                     0000    60 

                                     0000    61 ;

                                     0000    62 ; OWN STORAGE:

                                     0000    63 ;

                                     0000    64 

RM0XTND23       PROLOG LOCK AND UPDATE ROUTINES                  21-AUG-1978 21:34:55   VAX-11 MACRO X0.3-11               Page   3

002             RM$LOCK_PROLOG  -  ROUTINE TO LOCK PROLOG AND C                                                                  (1)



                                     0000    66 	.SBTTL RM$LOCK_PROLOG  -  ROUTINE TO LOCK PROLOG AND CHECK FOR EXTEND O.K.

                                     0000    67 ;++

                                     0000    68 ; FUNCTIONAL DESCRIPTION:

                                     0000    69 ;

                                     0000    70 ;  THIS ROUTINE CAUSES THE PROLOG (VBN 1) FOR A RELATIVE OR INDEXED FILE

                                     0000    71 ;  TO BE LOCKED FOR AN EXTEND OPERATION.

                                     0000    72 ;  THE PROLOG IS READ IN, ITS CHECKSUM IS VERIFIED, THE NOEXTEND FLAG IS CHECKED

                                     0000    73 ;  FOR BEING CLEAR IF THIS IS A RELATIVE FILE, A LOCK BDB IS ALLOCATED, AND

                                     0000    74 ;  THE BUFFER FOR THE PROLOG IS RELEASED KEEPING VBN 1 LOCKED.

                                     0000    75 ;

                                     0000    76 ; CALLING SEQUENCE:

                                     0000    77 ;

                                     0000    78 ;	BSBW	RM$LOCK_PROLOG

                                     0000    79 ;

                                     0000    80 ; INPUT PARAMETERS:

                                     0000    81 ;

                                     0000    82 ;	R11	IMPURE AREA ADDRESS

                                     0000    83 ;	R10	IFAB/SIFAB ADDRESS

                                     0000    84 ;	R9	IFAB/IRAB ADDRESS

                                     0000    85 ;	R8	FAB/RAB ADDRESS

                                     0000    86 ;

                                     0000    87 ; IMPLICIT INPUTS:

                                     0000    88 ;

                                     0000    89 ;	NONE

                                     0000    90 ;

                                     0000    91 ; OUTPUT PARAMETERS:

                                     0000    92 ;

                                     0000    93 ;	R0		STATUS CODE

                                     0000    94 ;	R4		LOCK BDB ADDRESS

                                     0000    95 ;	R1-R3,R5,AP	DESTROYED

                                     0000    96 ;

                                     0000    97 ; IMPLICIT OUTPUTS:

                                     0000    98 ;

                                     0000    99 ;	NONE

                                     0000   100 ;

                                     0000   101 ; COMPLETION CODES:

                                     0000   102 ;

                                     0000   103 ;	STANDARD RMS.

                                     0000   104 ;

                                     0000   105 ; SIDE EFFECTS:

                                     0000   106 ;

                                     0000   107 ;	NONE

                                     0000   108 ;

                                     0000   109 ;--

RM0XTND23       PROLOG LOCK AND UPDATE ROUTINES                  21-AUG-1978 21:34:55   VAX-11 MACRO X0.3-11               Page   4

002             RM$LOCK_PROLOG  -  ROUTINE TO LOCK PROLOG AND C                                                                  (1)



                                     0000   111 RM$LOCK_PROLOG::

                                     0000   112 	$CACHE	VBN=#1,SIZE=#512,FLAGS=LOCK,ERR=ERRRPE	; READ & LOCK PROLOG

                          FFEC'  30  0011   113 	BSBW	RM$CHKSUM				; VERIFY CHECKSUM

            21            50     E9  0014   114 	BLBC	R0,ERROR

            01         23 AA     91  0017   115 	CMPB	IFB$B_ORGCASE(R10),#IFB$C_REL		; RELATIVE ORG?

                          04     12  001B   116 	BNEQ	10$					; BRANCH IF NOT

                                     001D   117 	ASSUME	PLG$V_NOEXTEND EQ 0

            6E         10 A5     E8  001D   118 	BLBS	PLG$B_FLAGS(R5),ERREXT			; BRANCH IF EXTENDS

                                     0021   119 							; NOT ALLOWED

                                     0021   120 10$:

                                     0021   121 ;

                                     0021   122 ;  ALLOCATE A LOCK BDB (WITHOUT BUFFER) TO KEEP PROLOG LOCKED AND RELEASE

                                     0021   123 ;  THE BUFFER.

                                     0021   124 ;

                          54     DD  0021   125 	PUSHL	R4					; SAVE VBN 1 BDB ADDRESS

                          FFDA'  30  0023   126 	BSBW	RM$ALBDB				; GET LOCK BDB

                          10     BA  0026   127 	POPR	#^M<R4>					; RESTORE VBN 1 BDB ADDR

            0D            50     E9  0028   128 	BLBC	R0,ERROR				; GET OUT ON ERROR

            53            04     D0  002B   129 	MOVL	#RLS$M_KEEP_LOCK,R3			; SPECIFY FLAG FOR RELEASE

                          FFCF'  30  002E   130 	BSBW	RM$RELEASE				; RELEASE BUFFER FOR VBN 1

                           00000008  0031   131 	.IF NE <$$RMSTEST & $$RMS_TBUGCHK>

            07            50     E9  0031   132 	BLBC	R0,ERRBUG				; SHOULD NEVER GIVE ERROR

                                     0034   133 	.ENDC

                                 05  0034   134 	RSB

                                     0035   135 

                                     0035   136 

                                     0035   137 ;

                                     0035   138 ;  ERROR READING PROLOG  -  CHANGE ERROR CODE

                                     0035   139 ;

                                     0035   140 ERRRPE:	$PSECT_BR	L$RMS23

                                     0000   141 	RMSERR	RPL

                                 05  0005   142 	RSB

                                     0006   143 	$PSECT_RESTORE

                                     0038   144 

                                     0038   145 ;

                                     0038   146 ;  HANDLE CHECKSUM OR BDB ALLOCATION ERROR BY RELEASING LOCK ON PROLOG

                                     0038   147 ;

                                     0038   148 ERROR:	$PSECT_BR	L$RMS23

                          50     DD  0006   149 	PUSHL	R0				; SAVE STATUS CODE

                          FFF5'  30  0008   150 	BSBW	RM$RLNERR			; RELEASE LOCK

                          01     BA  000B   151 	POPR	#^M<R0>				; RESTORE STATUS

                                 05  000D   152 	RSB					; RETURN TO CALLER

                                     000E   153 	$PSECT_RESTORE

                                     003B   154 

                                     003B   155 ;

                                     003B   156 ;  RELEASE WITH "KEEP-LOCKED" FAILED.  - BUG.

                                     003B   157 ;

                                     003B   158 ERRBUG:	RMSTBUG	FTL$_RELEASFAIL

RM0XTND23       PROLOG LOCK AND UPDATE ROUTINES                  21-AUG-1978 21:34:55   VAX-11 MACRO X0.3-11               Page   5

002             RM$UPD_PROLOG2  -  ROUTINE TO UPDATE AND REWRIT                                                                  (1)



                                     003F   160 	.SBTTL RM$UPD_PROLOG2  -  ROUTINE TO UPDATE AND REWRITE PROLOG

                                     003F   161 ;++

                                     003F   162 ; FUNCTIONAL DESCRIPTION:

                                     003F   163 ;

                                     003F   164 ;  THIS ROUTINE CAUSES THE PROLOG (VBN 1) FOR A RELATIVE FILE TO BE UPDATED

                                     003F   165 ;  AND REWRITTEN TO THE FILE, RELEASING THE LOCK ON THE PROLOG.

                                     003F   166 ;  IF THE STATUS CODE ON ENTRY TO THIS ROUTINE INDICATES AN ERROR, THE

                                     003F   167 ;  NOEXTEND BIT IS SET IN THE PROLOG INDICATING THAT THE FILE CANNOT BE EXTENDED.

                                     003F   168 ;

                                     003F   169 ; CALLING SEQUENCE:

                                     003F   170 ;

                                     003F   171 ;	BSBW	RM$UPD_PROLOG2

                                     003F   172 ;

                                     003F   173 ;  ALTERNATE ENTRY AT RM$RLSPLG TO MERELY RELEASE THE PROLOG LOCK.

                                     003F   174 ;

                                     003F   175 ; INPUT PARAMETERS:

                                     003F   176 ;

                                     003F   177 ;	R11	IMPURE AREA ADDRESS

                                     003F   178 ;	R10	IFAB/SIFAB ADDRESS

                                     003F   179 ;	R9	IFAB/IRAB ADDRESS

                                     003F   180 ;	R8	FAB/RAB ADDRESS

                                     003F   181 ;	R6	NEW EOF VBN (= HIGH BLOCK + 1)

                                     003F   182 ;	R0	STATUS CODE

                                     003F   183 ;

                                     003F   184 ; IMPLICIT INPUTS:

                                     003F   185 ;

                                     003F   186 ;	IT IS ASSUMED THAT THE PROLOG IS ALREADY LOCKED.

                                     003F   187 ;

                                     003F   188 ; OUTPUT PARAMETERS:

                                     003F   189 ;

                                     003F   190 ;	R0		STATUS CODE

                                     003F   191 ;	R1-R5,AP	DESTROYED

                                     003F   192 ;

                                     003F   193 ; IMPLICIT OUTPUTS:

                                     003F   194 ;

                                     003F   195 ;	IFB$L_HBK AND IFB$L_EBK ARE SET FROM (R6 - 1) AND R6 RESPECTIVELY.

                                     003F   196 ;	THE LOCK BDB IS DEALLOCATED.

                                     003F   197 ;

                                     003F   198 ; COMPLETION CODES:

                                     003F   199 ;

                                     003F   200 ;	STANDARD RMS.

                                     003F   201 ;

                                     003F   202 ; SIDE EFFECTS:

                                     003F   203 ;

                                     003F   204 ;	ANY STREAM WAITING ON THE PROLOG WILL BE RESTARTED.

                                     003F   205 ;

                                     003F   206 ;--

RM0XTND23       PROLOG LOCK AND UPDATE ROUTINES                  21-AUG-1978 21:34:55   VAX-11 MACRO X0.3-11               Page   6

002             RM$UPD_PROLOG2  -  ROUTINE TO UPDATE AND REWRIT                                                                  (1)



                                     003F   208 RM$UPD_PROLOG2::

                          50     DD  003F   209 	PUSHL	R0					; SAVE STATUS

                                     0041   210 	$CACHE	VBN=#1,SIZE=#512,FLAGS=LOCK,ERR=ERRRPL	; REREAD PROLOG BLK 1

                          FFAB'  30  0052   211 	BSBW	RM$CHKSUM				; VERIFY CHECKSUM

            34            50     E9  0055   212 	BLBC	R0,ERRRPL				; BRANCH IF BAD

            34            6E     E9  0058   213 	BLBC	(SP),ERREXT				; BRANCH IF ERROR ON ENTRY

         70 A5            56     D0  005B   214 	MOVL	R6,PLG$L_EOF(R5)			; SET EOF VBN

                          FF9E'  30  005F   215 MAKSUM:	BSBW	RM$MAKSUM				; RECOMPUTE CHECKSUM

         0A A4            03     88  0062   216 	BISB2	#BDB$M_DRT!BDB$M_VAL,BDB$B_FLGS(R4)	; SAY BUFFER VALID & DIRTY

            53            06     D0  0066   217 	MOVL	#RLS$M_WRT_THRU!RLS$M_KEEP_LOCK,R3	; CAUSE IMMEDIATE WRITE

                          FF94'  30  0069   218 	BSBW	RM$RELEASE				; WRITE VBN 1

            23            50     E9  006C   219 	BLBC	R0,ERRWPL				; BRANCH IF ERROR

                                     006F   220 ;

                                     006F   221 ;  UPDATE EOF VBN AND HIGHEST ALLOCATED BLOCK

                                     006F   222 ;

            56            01     C3  006F   223 	SUBL3	#1,R6,IFB$L_HBK(R10)			; UPDATE HI BLOCK

                       40 AA         0072       

         44 AA            56     D0  0074   224 	MOVL	R6,IFB$L_EBK(R10)			; AND EOF BLOCK

                                     0078   225 ;

                                     0078   226 ;  RELEASE LOCK ON PROLOG AND DEALLOCATE THE LOCK BDB

                                     0078   227 ;

                          FF85'  30  0078   228 RLSPLG:	BSBW	RM$RLNERR				; FREE LOCK ON PROLOG

                          52     D4  007B   229 	CLRL	R2					; SET UP TO GET BDB

                                     007D   230 							; WITH NO BUFFER

            53            10     D0  007D   231 	MOVL	#CSH$M_NOBUFFER,R3			; SET CACHE CTRL FLAG

                          FF7D'  30  0080   232 	BSBW	RM$GET_BUFFER				; GET THE LOCK BDB

                           00000008  0083   233 	.IF NE <$$RMSTEST&$$RMS_TBUGCHK>

            0F            50     E9  0083   234 	BLBC	R0,ERRBUG1				; BAD PROBLEM IF NONE

                                     0086   235 	.ENDC

                          FF77'  30  0086   236 	BSBW	RM$RETBDB				; RETURN THE LOCK BDB

                          01     BA  0089   237 	POPR	#^M<R0>					; RESTORE STATUS CODE

                                 05  008B   238 	RSB						; RETURN TO CALLER

RM0XTND23       PROLOG LOCK AND UPDATE ROUTINES                  21-AUG-1978 21:34:55   VAX-11 MACRO X0.3-11               Page   7

002             RM$UPD_PROLOG2  -  ROUTINE TO UPDATE AND REWRIT                                                                  (1)



                                     008C   240 ;

                                     008C   241 ;  HANDLE PROLOG READ ERROR.

                                     008C   242 ;  PROLOG MAY STILL BE LOCKED.  MUST RELEASE IT.

                                     008C   243 ;

                                     008C   244 ERRRPL:	$PSECT_BR	L$RMS23

                                     000E   245 	$CACHE	VBN=#1,SIZE=#0,FLAGS=NOREAD	; FIND PROLOG BDB

            05            6E     E9  0019   246 	BLBC	(SP),RLPLG1			; BRANCH IF ALREADY HAD ERROR

                                     001C   247 	RMSERR	RPL,(SP)			; REPLACE STATUS CODE

                          0054'  31  0021   248 RLPLG1:	BRW	RLSPLG				; GO RELEASE PROLOG

                                     0024   249 	$PSECT_RESTORE

                                     008F   250 

                                     008F   251 ;

                                     008F   252 ;  CALLER ENTERED RM$UPD_PROLOG2 WITH AN ERROR STATUS.

                                     008F   253 ;  THIS MUST HAVE BEEN DUE TO A BUCKET FORMAT WRITE FAILURE.

                                     008F   254 ;  SET THE NOEXTEND BIT IN THE PROLOG TO PREVENT FURTHER ATTEMPTS

                                     008F   255 ;  TO EXTEND THE FILE.

                                     008F   256 ;

                                     008F   257 ERREXT:	$PSECT_BR	L$RMS23

         10 A5            01     88  0024   258 	BISB2	#1@PLG$V_NOEXTEND,PLG$B_FLAGS(R5) ; SET FLAG

                                     0028   259 	RMSERR	EXT,(SP)			; UPDATE ERROR CODE

            56         44 AA     D0  002D   260 	MOVL	IFB$L_EBK(R10),R6		; CAUSE EBK NOT TO BE UPDATED

                          002B'  31  0031   261 	BRW	MAKSUM				; GO REWRITE PROLOG

                                     0034   262 	$PSECT_RESTORE

                                     0092   263 

                                     0092   264 ;

                                     0092   265 ;  ERROR OCCURRED TRYING TO REWRITE THE PROLOG.

                                     0092   266 ;  UPDATE STATUS CODE AND CONTINUE.

                                     0092   267 ;

                                     0092   268 ERRWPL:	$PSECT_BR	L$RMS23

            EA            6E     E9  0034   269 	BLBC	(SP),RLPLG1			; BRANCH IF ALREADY HAD ERROR

                                     0037   270 	RMSERR	WPL,(SP)			; CHANGE STATUS CODE

                          E3     11  003C   271 	BRB	RLPLG1				; GO RELEASE PROLOG

                                     003E   272 	$PSECT_RESTORE

                                     0095   273 

                                     0095   274 ;

                                     0095   275 ;  FAILED TO LOCATE THE LOCK BDB.

                                     0095   276 ;

                                     0095   277 ERRBUG1:

                                     0095   278 	RMSTBUG	FTL$_NOLOCKBDB

                                     0099   279 

                                     0099   280 ;++

                                     0099   281 ;  ENTRY POINT TO RELASE THE PROLOG AND DEALLOCATE THE LOCK BDB.

                                     0099   282 ;

                                     0099   283 ;  INPUTS:

                                     0099   284 ;	R4	BDB ADDRESS

                                     0099   285 ;	R0	STATUS CODE

                                     0099   286 ;

                                     0099   287 ;  OUTPUTS:

                                     0099   288 ;	R1-R5,AP DESTROYED

                                     0099   289 ;

                                     0099   290 ;--

                                     0099   291 RM$RLSPLG::

                          50     DD  0099   292 	PUSHL	R0				; PUSH STATUS

                          DB     11  009B   293 	BRB	RLSPLG				; GO DO RELEASE

                                     009D   294 

                                     009D   295 

                                     009D   296 	.END

RM0XTND23       PROLOG LOCK AND UPDATE ROUTINES                  21-AUG-1978 21:34:55   VAX-11 MACRO X0.3-11               Page   8

SYMBOL TABLE                                                                                                                     (1)



$$.PSECT_EP    = 00000005            ERREXT           0000008F R     02   FAB$M_GET      = 00000002            

$$.TMP         = 00000004            ERROR            00000038 R     02   FAB$M_INP      = 00080000            

$$RMSTEST      = 0000001A            ERRRPE           00000035 R     02   FAB$M_JNL      = 00400000            

$$RMS_PBUGCHK  = 00000010            ERRRPL           0000008C R     02   FAB$M_KFO      = 40000000            

$$RMS_TBUGCHK  = 00000008            ERRWPL           00000092 R     02   FAB$M_MSE      = 00000010            

$$RMS_UMODE    = 00000004            FAB$B_BID        00000000            FAB$M_MXV      = 00000002            

BDB$B_BID        00000008            FAB$B_BKS        0000003E            FAB$M_NAM      = 01000000            

BDB$B_BLN        00000009            FAB$B_BLN        00000001            FAB$M_NEF      = 00000400            

BDB$B_FLGS       0000000A            FAB$B_DNS        00000035            FAB$M_NFS      = 00010000            

BDB$B_POST_CCTL  00000023            FAB$B_FAC        00000016            FAB$M_NIL      = 00000020            

BDB$B_PRE_CCTL   00000022            FAB$B_FNS        00000034            FAB$M_OFP      = 20000000            

BDB$B_REL_VBN    00000020            FAB$B_FSZ        0000003F            FAB$M_POS      = 00000100            

BDB$B_USECNT     0000000B            FAB$B_ORG        0000001D            FAB$M_PPF      = 00040000            

BDB$B_VAL_VBNS   00000021            FAB$B_RAT        0000001E            FAB$M_PPF_IND  = 00004000            

BDB$C_BID      = 0000000C            FAB$B_RFM        0000001F            FAB$M_PPF_RAT  = 00003FC0            

BDB$C_BLN        00000028            FAB$B_RTV        0000001C            FAB$M_PRN      = 00000004            

BDB$K_BLN        00000028            FAB$B_SHR        00000017            FAB$M_PUT      = 00000001            

BDB$L_ADDR       00000014            FAB$C_BID      = 00000003            FAB$M_RCK      = 00800000            

BDB$L_BLINK      00000004            FAB$C_BLN        00000050            FAB$M_RWC      = 00000800            

BDB$L_CURBUFADR  00000024            FAB$C_FIX      = 00000001            FAB$M_RWO      = 00000080            

BDB$L_FLINK      00000000            FAB$C_HSH      = 00000030            FAB$M_SCF      = 00004000            

BDB$L_IOSB       00000020            FAB$C_IDX      = 00000020            FAB$M_SHRDEL   = 00000004            

BDB$L_OWN        0000000C            FAB$C_MAXRFM   = 00000003            FAB$M_SHRGET   = 00000002            

BDB$L_VBN        00000018            FAB$C_REL      = 00000010            FAB$M_SHRPUT   = 00000001            

BDB$L_WAIT       0000001C            FAB$C_RFM_DFLT = 00000002            FAB$M_SHRUPD   = 00000008            

BDB$L_WK1        00000020            FAB$C_SEQ      = 00000000            FAB$M_SPL      = 00002000            

BDB$M_AST_DCL  = 00000040            FAB$C_UDF      = 00000000            FAB$M_SQO      = 00000040            

BDB$M_DRT      = 00000002            FAB$C_VAR      = 00000002            FAB$M_SUP      = 00000004            

BDB$M_IOP      = 00000004            FAB$C_VFC      = 00000003            FAB$M_TEF      = 10000000            

BDB$M_LKDINWS  = 00000080            FAB$K_BLN        00000050            FAB$M_TMD      = 00000010            

BDB$M_NOLOCATE = 00000010            FAB$L_ALQ        00000010            FAB$M_TMP      = 00000008            

BDB$M_PRM      = 00000008            FAB$L_CTX        00000018            FAB$M_TRN      = 00000010            

BDB$M_VAL      = 00000001            FAB$L_DEV        00000040            FAB$M_UFM      = 04000000            

BDB$M_WFO      = 00000020            FAB$L_DNA        00000030            FAB$M_UFO      = 00020000            

BDB$V_AST_DCL  = 00000006            FAB$L_FNA        0000002C            FAB$M_UPD      = 00000008            

BDB$V_DRT      = 00000001            FAB$L_FOP        00000004            FAB$M_UPI      = 00000040            

BDB$V_IOP      = 00000002            FAB$L_JNL        00000020            FAB$M_WCK      = 00000200            

BDB$V_LKDINWS  = 00000007            FAB$L_MRN        00000038            FAB$S_ORG      = 00000004            

BDB$V_NOLOCATE = 00000004            FAB$L_NAM        00000028            FAB$S_PPF_RAT  = 00000008            

BDB$V_PRM      = 00000003            FAB$L_SDC        00000044            FAB$V_BIO      = 00000005            

BDB$V_VAL      = 00000000            FAB$L_STS        00000008            FAB$V_BLK      = 00000003            

BDB$V_WFO      = 00000005            FAB$L_STV        0000000C            FAB$V_BRO      = 00000006            

BDB$W_NUMB       00000010            FAB$L_XAB        00000024            FAB$V_CBT      = 00000015            

BDB$W_SIZE       00000012            FAB$M_BIO      = 00000020            FAB$V_CIF      = 00000019            

BIT...         = 00000000            FAB$M_BLK      = 00000008            FAB$V_CR       = 00000001            

CSH$M_LOCK     = 00000001            FAB$M_BRO      = 00000040            FAB$V_CTG      = 00000014            

CSH$M_NOBUFFER = 00000010            FAB$M_CBT      = 00200000            FAB$V_DEL      = 00000002            

CSH$M_NOREAD   = 00000004            FAB$M_CIF      = 02000000            FAB$V_DFW      = 00000005            

CSH$M_NOWAIT   = 00000002            FAB$M_CR       = 00000002            FAB$V_DLT      = 0000000F            

CSH$M_READAHEAD= 00000008            FAB$M_CTG      = 00100000            FAB$V_DMO      = 0000000C            

CSH$V_LOCK     = 00000000            FAB$M_DEL      = 00000004            FAB$V_ESC      = 0000001B            

CSH$V_NOBUFFER = 00000004            FAB$M_DFW      = 00000020            FAB$V_EXE      = 00000007            

CSH$V_NOREAD   = 00000002            FAB$M_DLT      = 00008000            FAB$V_FTN      = 00000000            

CSH$V_NOWAIT   = 00000001            FAB$M_DMO      = 00001000            FAB$V_GET      = 00000001            

CSH$V_READAHEAD= 00000003            FAB$M_ESC      = 08000000            FAB$V_INP      = 00000013            

ERRBUG           0000003B R     02   FAB$M_EXE      = 00000080            FAB$V_JNL      = 00000016            

ERRBUG1          00000095 R     02   FAB$M_FTN      = 00000001            FAB$V_KFO      = 0000001E            

RM0XTND23       PROLOG LOCK AND UPDATE ROUTINES                  21-AUG-1978 21:34:55   VAX-11 MACRO X0.3-11               Page   9

SYMBOL TABLE                                                                                                                     (1)



FAB$V_MSE      = 00000004            FTL$_RELEASFAIL= FFFFFFEA            IFB$L_NWA_PTR    00000028            

FAB$V_MXV      = 00000001            FTL$_SETPRTFAIL= FFFFFFFF            IFB$L_PRIM_DEV   00000000            

FAB$V_NAM      = 00000018            FTL$_STKTOOBIG = FFFFFFFE            IFB$L_RLB_LNK    0000002C            

FAB$V_NEF      = 0000000A            FTL$_XFERSIZE  = FFFFFFED            IFB$L_RNS_LEN    00000050            

FAB$V_NFS      = 00000010            GBL...         = 00000000            IFB$M_BIO      = 00000020            

FAB$V_NIL      = 00000005            IFB$B_AMAX       00000059            IFB$M_BRO      = 00000040            

FAB$V_OFP      = 0000001D            IFB$B_AVBN       00000058            IFB$M_DEL      = 00000004            

FAB$V_ORG      = 00000004            IFB$B_BID        00000008            IFB$M_EXE      = 00000080            

FAB$V_POS      = 00000008            IFB$B_BKS        0000004A            IFB$M_GET      = 00000002            

FAB$V_PPF      = 00000012            IFB$B_BLN        00000009            IFB$M_PUT      = 00000001            

FAB$V_PPF_IND  = 0000000E            IFB$B_EFN        0000000B            IFB$M_TRN      = 00000010            

FAB$V_PPF_RAT  = 00000006            IFB$B_EXTRABUF   0000005D            IFB$M_UPD      = 00000008            

FAB$V_PRN      = 00000002            IFB$B_FAC        00000022            IFB$S_ORG      = 00000004            

FAB$V_PUT      = 00000000            IFB$B_FSZ        0000004B            IFB$S_RFM      = 00000004            

FAB$V_RCK      = 00000017            IFB$B_KBUFSZ     0000005C            IFB$V_ACCESSED = 00000025            

FAB$V_RWC      = 0000000B            IFB$B_MODE       0000000A            IFB$V_ANSI_D   = 00000026            

FAB$V_RWO      = 00000007            IFB$B_NUM_KEYS   0000005A            IFB$V_ASYNC    = 00000023            

FAB$V_SCF      = 0000000E            IFB$B_ORGCASE    00000023            IFB$V_ASYNCWAIT= 00000024            

FAB$V_SHRDEL   = 00000002            IFB$B_RAT        0000003D            IFB$V_BIO      = 00000005            

FAB$V_SHRGET   = 00000001            IFB$B_RFMORG     0000003C            IFB$V_BRO      = 00000006            

FAB$V_SHRPUT   = 00000000            IFB$B_UBUFSZ     0000005B            IFB$V_BUSY     = 00000020            

FAB$V_SHRUPD   = 00000003            IFB$C_BID      = 0000000B            IFB$V_CREATE   = 00000032            

FAB$V_SPL      = 0000000D            IFB$C_BLN        00000060            IFB$V_DAP      = 0000003E            

FAB$V_SQO      = 00000006            IFB$C_BLN_IDX    00000060            IFB$V_DAP_OPEN = 0000003D            

FAB$V_SUP      = 00000002            IFB$C_BLN_REL    00000060            IFB$V_DEL      = 00000002            

FAB$V_TEF      = 0000001C            IFB$C_BLN_SEQ    0000005C            IFB$V_DFW      = 0000002C            

FAB$V_TMD      = 00000004            IFB$C_DIR      = 00000003            IFB$V_DLT      = 0000002B            

FAB$V_TMP      = 00000003            IFB$C_FHAEND     00000050            IFB$V_DMO      = 00000028            

FAB$V_TRN      = 00000004            IFB$C_IDX      = 00000002            IFB$V_EOF      = 00000021            

FAB$V_UFM      = 0000001A            IFB$C_MAXORG   = 00000002            IFB$V_EXE      = 00000007            

FAB$V_UFO      = 00000011            IFB$C_REL      = 00000001            IFB$V_GET      = 00000001            

FAB$V_UPD      = 00000003            IFB$C_SEQ      = 00000000            IFB$V_MSE      = 00000031            

FAB$V_UPI      = 00000006            IFB$K_BLN        00000060            IFB$V_NORECLK  = 00000033            

FAB$V_WCK      = 00000009            IFB$K_BLN_IDX    00000060            IFB$V_NSP      = 0000003F            

FAB$W_BLS        0000003C            IFB$K_BLN_REL    00000060            IFB$V_NWA      = 0000003C            

FAB$W_DEQ        00000014            IFB$K_BLN_SEQ    0000005C            IFB$V_ORG      = 00000004            

FAB$W_IFI        00000002            IFB$K_FHAEND     00000050            IFB$V_PPF_IMAGE= 00000022            

FAB$W_MRS        00000036            IFB$L_ARGLST     00000018            IFB$V_PPF_INPUT= 0000002E            

FTL$_ASBALLFAIL= FFFFFFF9            IFB$L_ASBADDR    00000014            IFB$V_PUT      = 00000000            

FTL$_BADASTPRM = FFFFFFF8            IFB$L_AS_DEV     00000054            IFB$V_RFM      = 00000000            

FTL$_BADBDB    = FFFFFFFA            IFB$L_BDB_BLNK   00000034            IFB$V_RWC      = 00000027            

FTL$_BADBUFSIZ = FFFFFFF3            IFB$L_BDB_FLNK   00000030            IFB$V_RW_ATTR  = 00000034            

FTL$_BADIFAB   = FFFFFFFD            IFB$L_BKPBITS    00000004            IFB$V_SCF      = 0000002A            

FTL$_BADLEVEL  = FFFFFFE6            IFB$L_BWB        0000000C            IFB$V_SPL      = 00000029            

FTL$_BADORGCASE= FFFFFFFB            IFB$L_DVBN       00000058            IFB$V_SQO      = 0000002D            

FTL$_CANTDOAST = FFFFFFF7            IFB$L_EBK        00000044            IFB$V_TEF      = 00000036            

FTL$_DEALLERR  = FFFFFFEF            IFB$L_FRB_PTR    00000028            IFB$V_TMP      = 00000035            

FTL$_GTCHNFAIL = FFFFFFFC            IFB$L_FWA_BDB    00000050            IFB$V_TRN      = 00000004            

FTL$_IORNDN    = FFFFFFEE            IFB$L_HBK        00000040            IFB$V_UPD      = 00000003            

FTL$_LOCKFAILED= FFFFFFE7            IFB$L_IDX_PTR    00000054            IFB$V_WRTACC   = 00000030            

FTL$_NOASB     = FFFFFFF5            IFB$L_IOS        0000000C            IFB$W_ASDEVBSIZ  0000005A            

FTL$_NODIDORFID= FFFFFFEB            IFB$L_IOS4       00000010            IFB$W_BKS_BYTES  0000005C            

FTL$_NOLOCKBDB = FFFFFFE9            IFB$L_IRAB_LNK   0000001C            IFB$W_BKS_RECS   0000005E            

FTL$_NONETWORK = FFFFFFE8            IFB$L_LAST_FAB   00000024            IFB$W_CHNL       00000020            

FTL$_NONXTBDB  = FFFFFFF4            IFB$L_LOCK_BDB   00000050            IFB$W_DEQ        0000004E            

FTL$_NOSTRUCT  = FFFFFFF6            IFB$L_MRN        00000054            IFB$W_DEVBUFSIZ  00000038            

FTL$_NOTLOCKED = FFFFFFEC            IFB$L_NRP_LNK    00000050            IFB$W_EBK0       00000044            

RM0XTND23       PROLOG LOCK AND UPDATE ROUTINES                  21-AUG-1978 21:34:55   VAX-11 MACRO X0.3-11               Page  10

SYMBOL TABLE                                                                                                                     (1)



IFB$W_EBK2       00000046            RMS$_BKS       = 0001841C            RMS$_FNF       = 00018292            

IFB$W_FFB        00000048            RMS$_BKZ       = 00018424            RMS$_FNM       = 0001852C            

IFB$W_IOS2       0000000E            RMS$_BLN       = 0001842C            RMS$_FOP       = 0001853C            

IFB$W_LRL        0000003E            RMS$_BOF       = 00018198            RMS$_FSZ       = 00018534            

IFB$W_MRS        0000004C            RMS$_BUG       = 00018434            RMS$_FUL       = 00018544            

IFB$W_RTDEQ      0000003A            RMS$_BUG_DAP   = 00018444            RMS$_IAL       = 0001854C            

L$RMS230         00000000 R     04   RMS$_BUG_DDI   = 0001843C            RMS$_IAN       = 00018554            

L$RMS231         00000006 R     04   RMS$_BUG_XX2   = 0001844C            RMS$_IBF       = 00018754            

L$RMS232         0000000E R     04   RMS$_BUG_XX3   = 00018454            RMS$_IDX       = 0001855C            

L$RMS233         00000024 R     04   RMS$_BUG_XX4   = 0001845C            RMS$_IFA       = 0001C124            

L$RMS234         00000034 R     04   RMS$_BUG_XX5   = 00018464            RMS$_IFI       = 00018564            

MAKSUM           0000005F R     02   RMS$_BUG_XX6   = 0001846C            RMS$_IMX       = 0001856C            

PLG$B_AMAX       00000067            RMS$_BUG_XX7   = 00018474            RMS$_IOP       = 00018574            

PLG$B_AVBN       00000066            RMS$_BUG_XX8   = 0001847C            RMS$_IRC       = 0001857C            

PLG$B_DBKTSIZ    0000000B            RMS$_BUG_XX9   = 00018484            RMS$_ISI       = 00018584            

PLG$B_FLAGS      00000010            RMS$_CAA       = 0001848C            RMS$_KBF       = 0001858C            

PLG$C_BLN        00000076            RMS$_CCF       = 0001C0DC            RMS$_KEY       = 00018594            

PLG$C_VER_NO   = 00000001            RMS$_CCR       = 00018494            RMS$_KFF       = 00018031            

PLG$K_BLN        00000076            RMS$_CDA       = 0001C0E4            RMS$_KRF       = 0001859C            

PLG$L_EOF        00000070            RMS$_CHG       = 0001849C            RMS$_KSZ       = 000185A4            

PLG$L_MRN        0000006C            RMS$_CHK       = 000184A4            RMS$_LAN       = 000185AC            

PLG$V_NOEXTEND = 00000000            RMS$_CHN       = 0001C0EC            RMS$_LBL       = 000185B4            

PLG$W_DVBN       00000068            RMS$_COD       = 000184AC            RMS$_LNE       = 000185BC            

PLG$W_VER_NO     00000074            RMS$_CONTROLC  = 00010651            RMS$_LOC       = 000185C4            

RLPLG1           00000021 R     04   RMS$_CONTROLO  = 00010609            RMS$_MBC       = 00018734            

RLS$M_KEEP_ACC = 00000008            RMS$_CONTROLY  = 00010611            RMS$_MKD       = 0001C032            

RLS$M_KEEP_LOCK= 00000004            RMS$_CRE       = 0001C00A            RMS$_MRN       = 000185CC            

RLS$M_RETURN   = 00000001            RMS$_CREATED   = 00010619            RMS$_MRS       = 000185D4            

RLS$M_WRT_THRU = 00000002            RMS$_CUR       = 000184B4            RMS$_NAM       = 000185DC            

RLS$V_KEEP_ACC = 00000003            RMS$_DAC       = 0001C012            RMS$_NEF       = 000185E4            

RLS$V_KEEP_LOCK= 00000002            RMS$_DAN       = 000184BC            RMS$_NET       = 0001874C            

RLS$V_RETURN   = 00000000            RMS$_DEL       = 00018262            RMS$_NID       = 000185EC            

RLS$V_WRT_THRU = 00000001            RMS$_DEV       = 000184C4            RMS$_NMF       = 000182CA            

RLSPLG           00000078 R     02   RMS$_DIR       = 000184CC            RMS$_NOD       = 000185F4            

RM$ALBDB         ********   X   02   RMS$_DME       = 000184D4            RMS$_NORMAL    = 00010001            

RM$BUG           ********   X   02   RMS$_DNA       = 000184DC            RMS$_NPK       = 000185FC            

RM$CACHE         ********   X   02   RMS$_DNF       = 0001C04A            RMS$_OK_ALK    = 00018039            

RM$CHKSUM        ********   X   02   RMS$_DNR       = 00018272            RMS$_OK_DEL    = 00018041            

RM$GET_BUFFER    ********   X   02   RMS$_DPE       = 0001C03A            RMS$_OK_DUP    = 00018011            

RM$LOCK_PROLOG   00000000 RG    02   RMS$_DTP       = 000184E4            RMS$_OK_IDX    = 00018019            

RM$MAKSUM        ********   X   02   RMS$_DUP       = 000184EC            RMS$_OK_LIM    = 00018051            

RM$RELEASE       ********   X   02   RMS$_DVI       = 000184F4            RMS$_OK_RLK    = 00018021            

RM$RETBDB        ********   X   02   RMS$_ENT       = 0001C01A            RMS$_OK_RNF    = 00018049            

RM$RLNERR        ********   X   04   RMS$_ENV       = 00018724            RMS$_OK_RRV    = 00018029            

RM$RLSPLG        00000099 RG    02   RMS$_EOF       = 0001827A            RMS$_ORD       = 00018604            

RM$UPD_PROLOG2   0000003F RG    02   RMS$_ESA       = 000184FC            RMS$_ORG       = 0001860C            

RMS$V_STVSTATUS= 0000000E            RMS$_ESL       = 00018714            RMS$_PBF       = 00018614            

RMS$_ABO       = 000183EC            RMS$_ESS       = 00018504            RMS$_PENDING   = 00018009            

RMS$_ACC       = 0001C002            RMS$_EXP       = 000182C2            RMS$_PLG       = 0001861C            

RMS$_ACT       = 0001825A            RMS$_EXT       = 0001C022            RMS$_PLV       = 0001872C            

RMS$_AID       = 000183F4            RMS$_FAB       = 0001850C            RMS$_POS       = 00018624            

RMS$_ALN       = 000183FC            RMS$_FAC       = 00018514            RMS$_PRM       = 0001862C            

RMS$_ALQ       = 00018404            RMS$_FEX       = 00018282            RMS$_PRV       = 0001829A            

RMS$_ANI       = 0001840C            RMS$_FLG       = 0001851C            RMS$_QUO       = 00018634            

RMS$_AOP       = 00018414            RMS$_FLK       = 0001828A            RMS$_RAB       = 0001863C            

RMS$_ATR       = 0001C0CC            RMS$_FNA       = 00018524            RMS$_RAC       = 00018644            

RMS$_ATW       = 0001C0D4            RMS$_FND       = 0001C02A            RMS$_RAT       = 0001864C            

RM0XTND23       PROLOG LOCK AND UPDATE ROUTINES                  21-AUG-1978 21:34:55   VAX-11 MACRO X0.3-11               Page  11

SYMBOL TABLE                                                                                                                     (1)



RMS$_RBF       = 00018654            

RMS$_RER       = 0001C0F4            

RMS$_REX       = 000182A2            

RMS$_RFA       = 0001865C            

RMS$_RFM       = 00018664            

RMS$_RHB       = 0001866C            

RMS$_RLF       = 00018674            

RMS$_RLK       = 000182AA            

RMS$_RMV       = 0001C0FC            

RMS$_RNF       = 000182B2            

RMS$_RNL       = 000181A0            

RMS$_ROP       = 0001867C            

RMS$_RPL       = 0001C104            

RMS$_RRV       = 00018684            

RMS$_RSA       = 000182DA            

RMS$_RSL       = 0001873C            

RMS$_RSS       = 00018694            

RMS$_RST       = 0001869C            

RMS$_RSZ       = 000186A4            

RMS$_RTB       = 000181A8            

RMS$_SEQ       = 000186AC            

RMS$_SHR       = 000186B4            

RMS$_SIZ       = 000186BC            

RMS$_SPL       = 0001C042            

RMS$_SQO       = 000186C4            

RMS$_STALL     = 00018001            

RMS$_STK       = 000186CC            

RMS$_SUC       = 00010001            

RMS$_SUP       = 000182D2            

RMS$_SUPERSEDE = 00010631            

RMS$_SYN       = 000186D4            

RMS$_SYS       = 0001C10C            

RMS$_TEMP1     = 0001826A            

RMS$_TEMP2     = 0001868C            

RMS$_TMO       = 000181B0            

RMS$_TRE       = 000186DC            

RMS$_TYP       = 000186E4            

RMS$_UBF       = 000186EC            

RMS$_USZ       = 000186F4            

RMS$_VER       = 000186FC            

RMS$_VOL       = 00018704            

RMS$_WBE       = 0001C12C            

RMS$_WER       = 0001C114            

RMS$_WLD       = 00018744            

RMS$_WLK       = 000182BA            

RMS$_WPL       = 0001C11C            

RMS$_WSF       = 0001871C            

RMS$_XAB       = 0001870C            





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  

F$RMSEXTEND23    0000009D      02     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  

$ABS$            00000076      03     NOPIC   USR   CON   ABS   LCL NOSHR   EXE   RD    WRT BYTE  

L$RMS23          0000003E      04     NOPIC   USR   CON   REL   GBL NOSHR   EXE   RD  NOWRT BYTE  

RM0XTND23       PROLOG LOCK AND UPDATE ROUTINES                  21-AUG-1978 21:34:55   VAX-11 MACRO X0.3-11               Page  12

PROGRAM SECTION SYNOPSIS                                                                                                         (1)







THERE WERE NO ERRORS OR WARNINGS.

10250. BYTES LEFT IN FREE MEMORY POOL.

2822. BYTES OF RECLAIMED MEMORY.

OBJ$:RM0XTND23,LIS$:RM0XTND23/-SP=EXECML$/ML,LIB$:R/ML,SRC$:RM0XTND23

25 MLB DIR RDS - 941 GETS TO DEFINE 27 MACROS. 66 INTER. FILE WRITES. 

