SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page   0

TABLE OF CONTENTS   



   (2)      43  DECLARATIONS

   (3)      79  VFYSECFLG - VERIFY SECTION FLAGS

   (4)     144  GSDMTXULK - UNLOCK GLOBAL SECTION MUTEX

   (5)     200  DGBLSC - DELETE GLOBAL SECTION SYSTEM SERVICE

   (7)     330  GSDSCN - GLOBAL SECTION DESCRIPTOR SCANNER

   (9)     463  DELGBLSEC - DELETE GLOBAL SECTION SUBROUTINE

   (10)    606  DELGBLWCB - DELETE GLOBAL WINDOW CONTROL BLOCKS

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page   1

X0120                                                                                                                            (1)



                                     0000     1 	.TITLE	SYSDGBLSC - DELETE GLOBAL SECTION SYSTEM SERVICE

                                     0000     2 	.IDENT	/X0120/

                                     0000     3 

                                     0000     4 ;

                                     0000     5 ; COPYRIGHT (C) 1978

                                     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 ;++

                                     0000    25 ; FACILITY:

                                     0000    26 ;

                                     0000    27 ; ABSTRACT:

                                     0000    28 ;

                                     0000    29 ;

                                     0000    30 ; ENVIRONMENT:

                                     0000    31 ;

                                     0000    32 ; AUTHOR: PETER H. LIPMAN, CREATION DATE: 9-MAY-77

                                     0000    33 ;

                                     0000    34 ; MODIFIED BY:

                                     0000    35 ;

                                     0000    36 ;	KATHLEEN D. MORSE	, 11-AUG-78 : VERSION X0120

                                     0000    37 ;		- ADD CHECKS TO ALLOW DELETION OF INCOMPLETE GLOBAL SECTION

                                     0000    38 ;		  ENTRY, IN CASE THE GPT WAS FULL ON A CRMPSC.

                                     0000    39 ;		  (CORRESPONDS TO X0107 IN SYSCRMPSC.MAR)

                                     0000    40 ; 01	- 

                                     0000    41 ;--

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page   2

X0120           DECLARATIONS                                                                                                     (2)



                                     0000    43 	.SBTTL	DECLARATIONS

                                     0000    44 ;

                                     0000    45 ; INCLUDE FILES:

                                     0000    46 ;

                                     0000    47 	$CCBDEF				;CHANNEL CONTROL BLOCK DEFINITIONS

                                     0000    48 	$GSDDEF				;GLOBAL SECTION DESCRIPTOR DEFINITIONS

                                     0000    49 	$IPLDEF				;PROCESSOR PRIORITY LEVELS

                                     0000    50 	$PCBDEF				;PROCESS CONTROL BLOCK DEFINITIONS

                                     0000    51 	$PHDDEF				;PROCESS HEADER DEFINITIONS

                                     0000    52 	$PFNDEF				;PFN DATA BASE DEFINITIONS

                                     0000    53 	$PRDEF				;PROCESSOR REGISTER DEFINITIONS

                                     0000    54 	$PRVDEF				;PRIVILEGE BIT DEFINITIONS

                                     0000    55 	$PTEDEF				;PAGE TABLE ENTRY DEFINITIONS

                                     0000    56 	$SECDEF				;SECTION TABLE DEFINITIONS

                                     0000    57 	$SSDEF				;SYSTEM STATUS DEFINITIONS

                                     0000    58 	$UCBDEF				;UNIT CONTROL BLOCK DEFINITIONS

                                     0000    59 	$WCBDEF				;WINDOW CONTROL BLOCK DEFINITIONS

                                     0000    60 ;

                                     0000    61 ; MACROS:

                                     0000    62 ;

                                     0000    63 

                                     0000    64 ;

                                     0000    65 ; EQUATED SYMBOLS:

                                     0000    66 ;

                                     0000    67 ;

                                     0000    68 ; OFFSETS FROM AP

                                     0000    69 ;

                                     0000    70 	$OFFSET	4,POSITIVE,<-

                                     0000    71 		FLAGS,-			;GLOBAL SECTION CONTROL FLAGS

                                     0000    72 		GSDNAM,-		;GLOBAL SECTION NAME DESCRIPTOR ADDRESS

                                     0000    73 		IDENT,-			;ADDRESS OF SECTION IDENTIFICATION

                                     0000    74 	>

                                     0004       FLAGS:

                                     0008       GSDNAM:

                                     000C       IDENT:

                                     0000    75 ;

                                     0000    76 ; OWN STORAGE:

                                     0000    77 ;

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page   3

X0120           VFYSECFLG - VERIFY SECTION FLAGS                                                                                 (3)



                                     0000    79 	.SBTTL	VFYSECFLG - VERIFY SECTION FLAGS

                                     0000    80 ;++

                                     0000    81 ; FUNCTIONAL DESCRIPTION:

                                     0000    82 ;

                                     0000    83 ;	THIS ROUTINE VERIFIES THAT THE SECTION FLAGS CONTAIN ONLY

                                     0000    84 ;	THOSE FLAG BITS DEFINED AT THE USER INTERFACE

                                     0000    85 ;

                                     0000    86 ; CALLING SEQUENCE:

                                     0000    87 ;

                                     0000    88 ;	BSBW	MMG$VFYSECFLG

                                     0000    89 ;

                                     0000    90 ; INPUT PARAMETERS:

                                     0000    91 ;

                                     0000    92 ;	R0 = SECTION FLAGS

                                     0000    93 ;

                                     0000    94 ; IMPLICIT INPUTS:

                                     0000    95 ;

                                     0000    96 ;	NONE

                                     0000    97 ;

                                     0000    98 ; OUTPUT PARAMETERS:

                                     0000    99 ;

                                     0000   100 ;	IF SECTION FLAGS ARE NOT LEGAL, THEN THIS ROUTINE EXITS WITH RET

                                     0000   101 ;	OTHERWISE IT RSB'S TO ITS CALLER WITH:

                                     0000   102 ;

                                     0000   103 ;	R0 PRESERVED

                                     0000   104 ;

                                     0000   105 ; IMPLICIT OUTPUTS:

                                     0000   106 ;

                                     0000   107 ;	NONE

                                     0000   108 ;

                                     0000   109 ; COMPLETION CODES:

                                     0000   110 ;

                                     0000   111 ;	SS$_IVSECFLG			;INVALID SECTION FLAGS

                                     0000   112 ;

                                     0000   113 ; SIDE EFFECTS:

                                     0000   114 ;

                                     0000   115 ;	NONE

                                     0000   116 ;

                                     0000   117 ;--

                                     0000   118 

                                     0000   119 ;

                                     0000   120 ; **********************************************************************

                                     0000   121 ;

                                     0000   122 ; **************** THE FOLLOWING CODE MAY BE PAGED *****************

                                     0000   123 ;

                                 00000000   124 	.PSECT	Y$EXEPAGED

                                     0000   125 ;

                                     0000   126 ; **********************************************************************

                                     0000   127 ;

                                     0000   128 MMG$VFYSECFLG::

            50   FFFF3FF0 8F     D3  0000   129 	BITL	#^C<SEC$M_GBL ! -	;GLOBAL/PROCESS SECTION

                                     0007   130 		SEC$M_CRF ! -		;COPY ON REFERENCE

                                     0007   131 		SEC$M_DZRO ! -		;DEMAND ZERO

                                     0007   132 		SEC$M_WRT ! -		;WRITABLE

                                     0007   133 		SEC$M_SYSGBL ! -	;SYSTEM/GROUP GLOBAL

                                     0007   134 		SEC$M_PERM >,R0		;PERMANENT/TEMPORARY

                          09     12  0007   135 	BNEQ	20$			;BRANCH IF ANY BAD BITS

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page   4

X0120           VFYSECFLG - VERIFY SECTION FLAGS                                                                                 (3)



                                     0009   136 

                                     0009   137 	ASSUME	SEC$V_GBL EQ 0

            05            50     E8  0009   138 	BLBS	R0,10$			;IF PROCESS SECTION,

            50       FFF1 8F     AA  000C   139 	BICW	#^C<SEC$M_CRF ! SEC$M_DZRO ! SEC$M_WRT>,R0 ;IGNORE "GLOBAL ONLY" BITS

                                 05  0011   140 10$:	RSB				;OK, RETURN TO CALLER

            50       016C 8F     3C  0012   141 20$:	MOVZWL	#SS$_IVSECFLG,R0	;INVALID SECTION FLAGS

                                 04  0017   142 	RET				;RETURN FROM SYSTEM SERVICE

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page   5

X0120           GSDMTXULK - UNLOCK GLOBAL SECTION MUTEX                                                                          (4)



                                     0018   144 	.SBTTL	GSDMTXULK - UNLOCK GLOBAL SECTION MUTEX

                                     0018   145 ;++

                                     0018   146 ; FUNCTIONAL DESCRIPTION:

                                     0018   147 ;

                                     0018   148 ;	THIS ROUTINE UNLOCKS THE GLOBAL SECTION MUTEX

                                     0018   149 ;

                                     0018   150 ; CALLING SEQUENCE:

                                     0018   151 ;

                                     0018   152 ;	BSBW	MMG$GSDMTXULK

                                     0018   153 ;

                                     0018   154 ; INPUT PARAMETERS:

                                     0018   155 ;

                                     0018   156 ;	NONE

                                     0018   157 ;

                                     0018   158 ; IMPLICIT INPUTS:

                                     0018   159 ;

                                     0018   160 ;	SCH$GL_CURPCB = PROCESS CONTROL BLOCK OWNING THE MUTEX

                                     0018   161 ;	EXE$GL_GSDMTX = MUTEX TO UNLOCK

                                     0018   162 ;

                                     0018   163 ; OUTPUT PARAMETERS:

                                     0018   164 ;

                                     0018   165 ;	R4 = CURRENT PCB ADDRESS

                                     0018   166 ;

                                     0018   167 ; IMPLICIT OUTPUTS:

                                     0018   168 ;

                                     0018   169 ;	NONE

                                     0018   170 ;

                                     0018   171 ; COMPLETION CODES:

                                     0018   172 ;

                                     0018   173 ;	NONE

                                     0018   174 ;

                                     0018   175 ; SIDE EFFECTS:

                                     0018   176 ;

                                     0018   177 ;	NONE

                                     0018   178 ;

                                     0018   179 ;--

                                     0018   180 

                                     0018   181 ;

                                     0018   182 ; THE FOLLOWING ROUTINE IS INVOKED BY THE SWAPPER THROUGH CHKDGBLSC.

                                     0018   183 ; IT MAY LATER BE REQUIRED TO REMAIN RESIDENT.

                                     0018   184 ;

                                     0018   185 ;

                                     0018   186 ; **********************************************************************

                                     0018   187 ;

                                     0018   188 ; **************** THE FOLLOWING CODE MAY BE PAGED *****************

                                     0018   189 ;

                                 00000018   190 	.PSECT	Y$EXEPAGED

                                     0018   191 ;

                                     0018   192 ; **********************************************************************

                                     0018   193 ;

                                     0018   194 MMG$GSDMTXULK::

            54   00000000'EF     D0  0018   195 	MOVL	L^SCH$GL_CURPCB,R4	;PROCESS CONTROL BLOCK ADDRESS

            50   00000000'EF     DE  001F   196 	MOVAL	L^EXE$GL_GSDMTX,R0	;GLOBAL SECTION MUTEX

                 00000000'EF     16  0026   197 	JSB	SCH$UNLOCK		;UNLOCK THE MUTEX

                                 05  002C   198 	RSB				;AND RETURN

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page   6

X0120           DGBLSC - DELETE GLOBAL SECTION SYSTEM SERVICE                                                                    (5)



                                     002D   200 	.SBTTL	DGBLSC - DELETE GLOBAL SECTION SYSTEM SERVICE

                                     002D   201 ;++

                                     002D   202 ; FUNCTIONAL DESCRIPTION:

                                     002D   203 ;

                                     002D   204 ;

                                     002D   205 ; CALLING SEQUENCE:

                                     002D   206 ;

                                     002D   207 ;	CALLG	ARGLIST,@#SYS$DGBLSC

                                     002D   208 ;	CALLG	ARGLIST,MMG$DGBLSC1

                                     002D   209 ;

                                     002D   210 ; INPUT PARAMETERS:

                                     002D   211 ;

                                     002D   212 ;	FLAGS(AP)  = BIT  0  - GBL - GLOBAL IF SET, PROCESS IF CLEAR

                                     002D   213 ;		     BIT  1  - CRF - COPY ON REFERENCE

                                     002D   214 ;		     BIT  2  - DZRO - DEMAND ZERO

                                     002D   215 ;		     BIT  3  - WRT - WRITABLE IF SET, READ ONLY IF CLEAR

                                     002D   216 ;		     BITS 4  - 13 RESERVED, MUST BE ZERO

                                     002D   217 ;		     BIT  14 - PERM - PERMANENT IF SET, TEMPORARY IF CLEAR

                                     002D   218 ;		     BIT  15 - SYSGBL - SYSTEM GLOBAL IF SET, GROUP GLOBAL IF CLEAR

                                     002D   219 ;		     BITS 16 - 31 RESERVED, MUST BE ZERO

                                     002D   220 ;		     ***** NOTE THAT ONLY SYSGBL IS REQUIRED FOR THIS SERVICE

                                     002D   221 ;	GSDNAM(AP) = ADDRESS OF DESCRIPTOR FOR GLOBAL SECTION NAME

                                     002D   222 ;	IDENT(AP)  = ADDRESS OF QUAD WORD CONTAINING SECTION IDENTIFICATION

                                     002D   223 ;		     FIRST LONG WORD CONTAINS THE MATCH CONTROL INFORMATION

                                     002D   224 ;			0 = SEC$K_MATALL, MATCH ALWAYS

                                     002D   225 ;			1 = SEC$K_MATEQU, MATCH IF IDENTS ARE EQUAL

                                     002D   226 ;			2 = SEC$K_MATLEQ, MATCH IF HIGH 8 BITS ARE EQUAL

                                     002D   227 ;			    AND LOW 24 BITS ARE LESS THAN OR EQUAL TO

                                     002D   228 ;			    THE ID STORED IN THE GLOBAL SECTION.

                                     002D   229 ;		     SECOND LONG WORD CONTAINS THE IDENT TO BE COMPARED

                                     002D   230 ;	R4	   = PROCESS CONTROL BLOCK ADDRESS

                                     002D   231 ;			  SET UP BY THE CHANGE MODE TO KERNEL DISPATCHER

                                     002D   232 ;	IPL = ASTDEL IF CALLED AT MMG$DGBLSC1

                                     002D   233 ;

                                     002D   234 ; IMPLICIT INPUTS:

                                     002D   235 ;

                                     002D   236 ;	NONE

                                     002D   237 ;

                                     002D   238 ; OUTPUT PARAMETERS:

                                     002D   239 ;

                                     002D   240 ;	R0 = SYSTEM STATUS CODE

                                     002D   241 ;	IPL PRESERVED WHEN CALLED AT MMG$DGBLSC1

                                     002D   242 ;

                                     002D   243 ; IMPLICIT OUTPUTS:

                                     002D   244 ;

                                     002D   245 ;	NONE

                                     002D   246 ;

                                     002D   247 ; COMPLETION CODES:

                                     002D   248 ;

                                     002D   249 ;	NONE

                                     002D   250 ;

                                     002D   251 ; SIDE EFFECTS:

                                     002D   252 ;

                                     002D   253 ;	NONE

                                     002D   254 ;

                                     002D   255 ;--

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page   7

X0120           DGBLSC - DELETE GLOBAL SECTION SYSTEM SERVICE                                                                    (6)



                                     002D   257 ;

                                     002D   258 ; **********************************************************************

                                     002D   259 ;

                                     002D   260 ; **************** THE FOLLOWING CODE MAY BE PAGED *****************

                                     002D   261 ;

                                 0000002D   262 	.PSECT	Y$EXEPAGED

                                     002D   263 ;

                                     002D   264 ; **********************************************************************

                                     002D   265 ;

                                     002D   266 

                                     002D   267 	.ENABL	LSB

                                     002D   268 

                                     002D   269 MMG$DGBLSC1::

                               00FC  002D   270 	.WORD	^M<R2,R3,R4,R5,R6,R7>

                          07     11  002F   271 	BRB	10$

                                     0031   272 

                               00FC' 0031   273 	.ENTRY	EXE$DGBLSC,^M<R2,R3,R4,R5,R6,R7>

                                     0033   274 	IFNPRIV	PRMGBL,70$		;BRANCH IF NO PRIVILEGE TO

                                     0038   275 					;CREATE/DELETE PERMANENT GLOBAL SECTIONS

                                     0038   276 10$:	SAVIPL				;SAVE CALLER'S IPL ON STACK

            50         04 AC     D0  003B   277 	MOVL	FLAGS(AP),R0		;SECTION FLAGS

                          BF     10  003F   278 	BSBB	MMG$VFYSECFLG		;VERIFY SECTION FLAGS

            56            50     D0  0041   279 	MOVL	R0,R6			;SECTION FLAGS TO R6

            50   00000000'EF     DE  0044   280 	MOVAL	L^EXE$GL_GSDMTX,R0	;MUTEX FOR GLOBAL SECTIONS

                 00000000'EF     16  004B   281 	JSB	SCH$LOCKW		;CLAIM THE MUTEX FOR WRITING

                                     0051   282 ;

                                     0051   283 ; RETURNS AT IPL = ASTDEL

                                     0051   284 ;

            5E            18     C2  0051   285 	SUBL	#24,SP			;RESERVE SCRATCH FOR GSD NAME

            57            5E     D0  0054   286 	MOVL	SP,R7			;ADDRESS OF SCRATCH AREA

                                     0057   287 

                                     0057   288 	ASSUME	IDENT EQ GSDNAM+4

            50         08 AC     7D  0057   289 	MOVQ	GSDNAM(AP),R0		;GET NAME AND IDENT ADDRESSES

                          51     10  005B   290 	BSBB	MMG$GSDSCN		;FIND THE GLOBAL SECTION IF IT EXISTS

            5E            18     C0  005D   291 	ADDL	#24,SP			;RETURN SCRATCH STORAGE

            3A            50     E9  0060   292 	BLBC	R0,80$			;BRANCH IF IT DOESN'T

                                     0063   293 ;

                                     0063   294 ; R5 RETURNED WITH SYSTEM PROCESS HEADER

                                     0063   295 ; RETURNS WITH R6 = GLOBAL SECTION DESCRIPTOR BLOCK ADDRESS

                                     0063   296 ;

            51         12 A6     32  0063   297 	CVTWL	GSD$W_GSTX(R6),R1	;SECTION INDEX

            55         20 A5     C1  0067   298 	ADDL3	PHD$L_PSTBASOFF(R5),R5,R3 ;SECTION TABLE BASE ADDRESS

                          53         006B       

            53            6341   DE  006C   299 	MOVAL	(R3)[R1],R3		;SECTION ADDRESS

            50            66     0F  0070   300 	REMQUE	(R6),R0			;REMOVE GSD FROM ITS LIST

   00000000'EF            60     0E  0073   301 	INSQUE	(R0),L^EXE$GL_GSDDELFL	;AND PLACE IT ON THE DELETE PENDING LIST

         14 A3            0E     E5  007A   302 	BBCC	#SEC$V_PERM,SEC$W_FLAGS(R3),40$ ;CLEAR PERM, BRANCH IF WAS CLEAR

                          0A         007E       

                       18 A3     D5  007F   303 	TSTL	SEC$L_REFCNT(R3)	;IF NO MORE REFERENCES

                          05     12  0082   304 	BNEQ	40$			;INDICATE THAT THERE IS A SECTION

         3A A5            01     E6  0084   305 	BBSSI	#PHD$V_DALCSTX,PHD$W_FLAGS(R5),40$ ;TO BE DEALLOCATED

                          00         0088       

                          01     DD  0089   306 40$:	PUSHL	#SS$_NORMAL		;RECORD SUCCESS

                                     008B   307 ;

                                     008B   308 ; 0(SP) = SYSTEM STATUS CODE

                                     008B   309 ; 4(SP) = SAVED CALLER' IPL

                                     008B   310 ;

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page   8

X0120           DGBLSC - DELETE GLOBAL SECTION SYSTEM SERVICE                                                                    (6)



                          FF72'  30  008B   311 60$:	BSBW	MMG$DALCSTXSCN		;SCAN FOR SECTIONS TO DEALLOCATE

                          88     10  008E   312 	BSBB	MMG$GSDMTXULK		;UNLOCK THE GLOBAL SECTION MUTEX

                          00BB   30  0090   313 	BSBW	MMG$DELGBLWCB		;DELETE ANY WCB'S ON WCBDEL QUEUE

                          01     BA  0093   314 	POPR	#^M<R0>			;RESTORE SYSTEM STATUS CODE

                                     0095   315 	ENBINT				;RESTORE CALLER'S IPL

                                 04  0098   316 	RET				;AND RETURN FROM SYSTEM SERVICE

                                     0099   317 ;

                                     0099   318 ; NO PRIVILEGE TO DELETE A GLOBAL SECTION

                                     0099   319 ;

            50            24     3C  0099   320 70$:	MOVZWL	#SS$_NOPRIV,R0		;NO PRIVILEGE FOR SPECIFIED OPERATION

                                 04  009C   321 	RET

                                     009D   322 ;

                                     009D   323 ; ERROR FROM THE GLOBAL SECTION DESCRIPTOR LIST SCAN

                                     009D   324 ;

                          50     DD  009D   325 80$:	PUSHL	R0			;SAVE ERROR STATUS

                          EA     11  009F   326 	BRB	60$			;EXIT THROUGH THE UNLOCK CODE

                                     00A1   327 

                                     00A1   328 	.DSABL	LSB

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page   9

X0120           GSDSCN - GLOBAL SECTION DESCRIPTOR SCANNER                                                                       (7)



                                     00A1   330 	.SBTTL	GSDSCN - GLOBAL SECTION DESCRIPTOR SCANNER

                                     00A1   331 ;++

                                     00A1   332 ; FUNCTIONAL DESCRIPTION:

                                     00A1   333 ;

                                     00A1   334 ;	THIS ROUTINE SCANS THE GLOBAL SECTION DESCRIPTOR QUEUE FOR

                                     00A1   335 ; A SECTION WITH THE SPECIFIED NAME.

                                     00A1   336 ;

                                     00A1   337 ; CALLING SEQUENCE:

                                     00A1   338 ;

                                     00A1   339 ;	BSBW	MMG$GSDSCN

                                     00A1   340 ;

                                     00A1   341 ; INPUT PARAMETERS:

                                     00A1   342 ;

                                     00A1   343 ;	R0 = DESCRIPTOR ADDRESS OF GLOBAL SECTION NAME

                                     00A1   344 ;	R1 = ADDRESS OF QUAD WORD OF SECTION IDENT INFORMATION

                                     00A1   345 ;	R6 = SECTION FLAGS

                                     00A1   346 ;		IF SYSGBL IS SET SEARCH SYSTEM GLOBAL LIST

                                     00A1   347 ;		OTHERWISE SEARCH GROUP GLOBAL LIST

                                     00A1   348 ;	R7 = ADDRESS OF 24 BYTE SCRATCH AREA TO STORE THE

                                     00A1   349 ;		GLOBAL SECTION NAME IN COUNTED STRING FORMAT

                                     00A1   350 ;	GSD MUTEX IS LOCKED (FOR READ OR WRITE AS APPROPRIATE) BEFORE CALLING

                                     00A1   351 ;	IPL = ASTDEL

                                     00A1   352 ;

                                     00A1   353 ; IMPLICIT INPUTS:

                                     00A1   354 ;

                                     00A1   355 ;	NONE

                                     00A1   356 ;

                                     00A1   357 ; OUTPUT PARAMETERS:

                                     00A1   358 ;

                                     00A1   359 ;	R0 = SYSTEM STATUS CODE

                                     00A1   360 ;	R4 ALTERED

                                     00A1   361 ;	R5 = SYSTEM PROCESS HEADER ADDRESS

                                     00A1   362 ;	R6 = GLOBAL SECTION DESCRIPTOR BLOCK ADDRESS IF FOUND

                                     00A1   363 ;

                                     00A1   364 ; IMPLICIT OUTPUTS:

                                     00A1   365 ;

                                     00A1   366 ;	NONE

                                     00A1   367 ;

                                     00A1   368 ; COMPLETION CODES:

                                     00A1   369 ;

                                     00A1   370 ;	SS$_NORMAL			;SUCCESSFUL COMPLETION

                                     00A1   371 ;	SS$_IVLOGNAM			;INVALID NAME

                                     00A1   372 ;	SS$_NOSUCHSEC			;NO SUCH (GLOBAL) SECTION

                                     00A1   373 ;	SS$_ACCVIO			;ACCESS VIOLATION

                                     00A1   374 ;

                                     00A1   375 ; SIDE EFFECTS:

                                     00A1   376 ;

                                     00A1   377 ;	NONE

                                     00A1   378 ;

                                     00A1   379 ;--

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page  10

X0120           GSDSCN - GLOBAL SECTION DESCRIPTOR SCANNER                                                                       (8)



                                     00A1   381 ;

                                     00A1   382 ; **********************************************************************

                                     00A1   383 ;

                                     00A1   384 ; **************** THE FOLLOWING CODE MAY BE PAGED *****************

                                     00A1   385 ;

                                 000000A1   386 	.PSECT	Y$EXEPAGED

                                     00A1   387 ;

                                     00A1   388 ; **********************************************************************

                                     00A1   389 ;

                                     00A1   390 

                                     00A1   391 	.ENABL	LSB

                                     00A1   392 

                                     00A1   393 BADIDENT:

            50       02E4 8F     3C  00A1   394 	MOVZWL	#SS$_IVSECIDCTL,R0	;INVALID SECTION ID MATCH CONTROL

                          03     11  00A6   395 	BRB	ERREXIT

                                     00A8   396 ACCVIO:

            50            0C     3C  00A8   397 	MOVZWL	#SS$_ACCVIO,R0		;ACCESS VIOLATION

                                     00AB   398 ERREXIT:

                          008A   31  00AB   399 	BRW	35$

                                     00AE   400 

                                     00AE   401 MMG$GSDSCN::

                          52     7C  00AE   402 	CLRQ	R2			;ASSUME NULL IDENT IFORMATION

                          51     D5  00B0   403 	TSTL	R1			;0 ADDRESS MEANS NO IDENT TO MATCH

                          0E     13  00B2   404 	BEQL	5$			;BRANCH IF NO IDENT

                                     00B4   405 	IFNORD	#8,(R1),ACCVIO		;BRANCH IF CALLER CANNOT READ THE QUAD WORD

            52            61     7D  00BA   406 	MOVQ	(R1),R2			;GET THE IDENT INFORMATION

            02            52     D1  00BD   407 	CMPL	R2,#SEC$K_MATLEQ	;MATCH CONTROL OK?

                          DF     14  00C0   408 	BGTR	BADIDENT		;BRANCH IF BAD

         10 A7            52     7D  00C2   409 5$:	MOVQ	R2,16(R7)		;STORE IDENT INFO IN SCRATCH AREA

                                     00C6   410 	IFNORD	#8,(R0),ACCVIO		;CHECK ACCESSABILITY OF DESCRIPTOR

            50            60     7D  00CC   411 	MOVQ	(R0),R0			;FETCH THE DESCRIPTOR

            67            50     9A  00CF   412 	MOVZBL	R0,(R7)			;NUMBER OF BYTES IN STRING

                          73     13  00D2   413 	BEQL	80$			;BRANCH IF BAD COUNT

                                     00D4   414 ;

                                     00D4   415 ; MUST VALIDATE THAT NO HIGH BITS ARE ON IN THE 16 BIT COUNT.  PROBE THE ASSUMED

                                     00D4   416 ; BYTE COUNT AND THEN MOVC5 WITH THE FULL WORD COUNT.  THE MOVC5 WILL

                                     00D4   417 ; CATCH ANY HIGH BITS.

                                     00D4   418 ;

                                     00D4   419 	IFNORD	(R7),(R1),ACCVIO	;CHK IF STRING ACCESSABLE

            61            50     2C  00DA   420 	MOVC5	R0,(R1),#0,#15,1(R7)	;MOVE THE NAME TO SAVE AREA

            0F            00         00DD       

                       01 A7         00DF       

                          64     14  00E1   421 	BGTR	80$			;BRANCH IF NAME STRING TOO LONG

            54            01     CE  00E3   422 	MNEGL	#1,R4			;NEGATIVE FOR SYSTEM GLOBAL

            01            0F     EF  00E6   423 	EXTZV	#SEC$V_SYSGBL,#1,R6,R6	;SYSTEM GLOBAL BIT

            56            56         00E9       

                          0B     12  00EB   424 	BNEQ	10$			;BRANCH IF SYSTEM GLOBAL

                                     00ED   425 ;

                                     00ED   426 ; GROUP GLOBAL SECTION SCAN - GET GROUP CODE FROM PCB

                                     00ED   427 ;

            54   00000000'EF     D0  00ED   428 	MOVL	L^SCH$GL_CURPCB,R4	;PROCESS CONTROL BLOCK ADDRESS

            54         22 A4     3C  00F4   429 	MOVZWL	PCB$W_GRP(R4),R4	;GROUP CODE TO MATCH

            56   00000000'EF46   7E  00F8   430 10$:	MOVAQ	L^EXE$GL_GSDGRPFL[R6],R6 ;ADDRESS OF APPROPRIATE LIST HEAD

            55            56     D0  0100   431 	MOVL	R6,R5			;REMEMBER ADDRESS OF HEAD

            56            66     D0  0103   432 20$:	MOVL	(R6),R6			;NEXT GSD ENTRY

            56            55     D1  0106   433 	CMPL	R5,R6			;BACK AROUND TO LIST HEAD?

                          35     13  0109   434 	BEQL	40$			;BRANCH IF YES, SCAN FAILED

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page  11

X0120           GSDSCN - GLOBAL SECTION DESCRIPTOR SCANNER                                                                       (8)



            54            1F     E0  010B   435 	BBS	#31,R4,30$		;BRANCH IF NOT COMPARING GROUP CODE

                          06         010E       

         0E A6            54     B1  010F   436 	CMPW	R4,GSD$W_GRP(R6)	;DOES THIS SECTION BELONG TO THIS GROUP?

                          EE     12  0113   437 	BNEQ	20$			;BRANCH IF NOT, TRY NEXT GSD

            67            10     29  0115   438 30$:	CMPC3	#16,(R7),GSD$T_GSDNAM(R6) ;COUNT AND NAME MATCH?

                       18 A6         0118       

                          E7     12  011A   439 	BNEQ	20$			;BRANCH IF NO, TRY NEXT GSD

                                     011C   440 

                                     011C   441 	ASSUME	SEC$K_MATALL EQ 0

                                     011C   442 	ASSUME	SEC$K_MATEQU EQ 1

                                     011C   443 	ASSUME	SEC$K_MATLEQ EQ 2

                                     011C   444 

            50         10 A7     D0  011C   445 	MOVL	16(R7),R0		;FETCH IDENT MATCH CONTROL

                          13     13  0120   446 	BEQL	33$			;BRANCH IF ALWAYS MATCH

         17 A6         17 A7     91  0122   447 	CMPB	23(R7),GSD$L_IDENT+3(R6) ;DOES MAJOR ID MATCH

                          DA     12  0127   448 	BNEQ	20$			;BRANCH IF NOT

         14 A6         14 A7     D1  0129   449 	CMPL	20(R7),GSD$L_IDENT(R6)	;NOW COMPARE ENTIRE LONG WORD

                          D3     1A  012E   450 	BGTRU	20$			;IF LARGER, THEN NO MATCH

            02            50     E9  0130   451 	BLBC	R0,33$			;BRANCH IF EXACT MATCH NOT REQUIRED

                          CE     12  0133   452 	BNEQ	20$			;BRANCH IF NOT AN EXACT MATCH

            50            01     3C  0135   453 33$:	MOVZWL	#SS$_NORMAL,R0		;INDICATE GSD FOUND

            55   00000000'FF     DE  0138   454 35$:	MOVAL	@L^MMG$GL_SYSPHD,R5	;SYSTEM PROCESS HEADER ADDRESS

                                 05  013F   455 	RSB				;AND RETURN

            50       0978 8F     3C  0140   456 40$:	MOVZWL	#SS$_NOSUCHSEC,R0	;INDICATE GSD NOT FOUND

                          F1     11  0145   457 	BRB	35$

            50       0154 8F     3C  0147   458 80$:	MOVZWL	#SS$_IVLOGNAM,R0	;INVALID NAME STRING

                          EA     11  014C   459 	BRB	35$

                                     014E   460 

                                     014E   461 	.DSABL	LSB

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page  12

X0120           DELGBLSEC - DELETE GLOBAL SECTION SUBROUTINE                                                                     (9)



                                     014E   463 	.SBTTL	DELGBLSEC - DELETE GLOBAL SECTION SUBROUTINE

                                     014E   464 ;++

                                     014E   465 ; FUNCTIONAL DESCRIPTION:

                                     014E   466 ;

                                     014E   467 ;

                                     014E   468 ; CALLING SEQUENCE:

                                     014E   469 ;

                                     014E   470 ;	BSBW	MMG$DELGBLSEC

                                     014E   471 ;

                                     014E   472 ; INPUT PARAMETERS:

                                     014E   473 ;

                                     014E   474 ;	R1 = GLOBAL SECTION TABLE INDEX

                                     014E   475 ;	R3 = GLOBAL SECTION TABLE ADDRESS

                                     014E   476 ;	R5 = SYSTEM PROCESS HEADER ADDRESS

                                     014E   477 ;

                                     014E   478 ;	IPL = ASTDEL

                                     014E   479 ;	GLOBAL SECTION MUTEX LOCKED FOR WRITING

                                     014E   480 ;

                                     014E   481 ; IMPLICIT INPUTS:

                                     014E   482 ;

                                     014E   483 ;	NONE

                                     014E   484 ;

                                     014E   485 ; OUTPUT PARAMETERS:

                                     014E   486 ;

                                     014E   487 ;	NONE

                                     014E   488 ;

                                     014E   489 ; IMPLICIT OUTPUTS:

                                     014E   490 ;

                                     014E   491 ;	NONE

                                     014E   492 ;

                                     014E   493 ; COMPLETION CODES:

                                     014E   494 ;

                                     014E   495 ;	NONE

                                     014E   496 ;

                                     014E   497 ; SIDE EFFECTS:

                                     014E   498 ;

                                     014E   499 ;	NONE

                                     014E   500 ;

                                     014E   501 ;--

                                     014E   502 ;

                                     014E   503 ; **********************************************************************

                                     014E   504 ;

                                     014E   505 ; **************** THE FOLLOWING CODE MUST BE RESIDENT *****************

                                     014E   506 ;

                                 00000000   507 	.PSECT	$MMGCOD

                                     0000   508 ;

                                     0000   509 ; **********************************************************************

                                     0000   510 ;

                                     0000   511 

                                     0000   512 DELGBLSEC_BUG:

                                     0000   513 	BUG_CHECK DELGBLSEC,FATAL	;BAD MASTER PTE FORMAT FOR THIS CONTEXT

                                     0004   514 

                                     0004   515 MMG$DELGBLSEC::

            50         1C A3     D0  0004   516 	MOVL	SEC$L_PAGCNT(R3),R0	;NO. OF PAGES OF SECTION

                          73     13  0008   517 	BEQL	75$			;++X0120 CHECK FOR INCOMPLETE SECTION

                          0B     BB  000A   518 	PUSHR	#^M<R0,R1,R3>		;PUSH SECTION ADR, INDEX, PAGE COUNT

                          00     EF  000C   519 	EXTZV	#SEC$V_VPX,#SEC$S_VPX,-	;FIRST GLOBAL PAGE TABLE INDEX

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page  13

X0120           DELGBLSEC - DELETE GLOBAL SECTION SUBROUTINE                                                                     (9)



         08 A3            16         000E   520 		SEC$L_VPXPFC(R3),R3	;

                          53         0011       

            53       0000'DF43   DE  0012   521 	MOVAL	@W^MMG$GL_GPTBASE[R3],R3 ;ADDRESS OF FIRST GPTE

                          09     BB  0018   522 	PUSHR	#^M<R0,R3>		;PUSH 1ST GPTE ADR, GPTE COUNT

                                     001A   523 ;

                                     001A   524 ; 0(SP)  = COUNT OF GPTE'S

                                     001A   525 ; 4(SP)  = FIRST GPTE ADDRESS

                                     001A   526 ; 8(SP)  = COUNT OF GPTE'S

                                     001A   527 ; 12(SP) = GLOBAL SECTION INDEX

                                     001A   528 ; 16(SP) = GLOBAL SECTION ADDRESS

                                     001A   529 ;

                                     001A   530 	SETIPL	#IPL$_SYNCH		;RAISE TO SYNCH FOR THIS SCAN

                                     001D   531 ;

                                     001D   532 ; THE FOLLOWING SCAN OF THE GLOBAL PAGE TABLE ENTRIES IS DONE TO ELIMINATE

                                     001D   533 ; ALL TRANSITION PAGES POINTING AT THE GPTE'S.

                                     001D   534 ;

            83   7B800000 8F     CB  001D   535 20$:	BICL3	#^C<PTE$M_VALID ! -	;GET THE VALID BIT

                          50         0024       

                                     0025   536 		PTE$M_TYP1 ! PTE$M_TYP0 ! - ;PTE TYPE BITS

                                     0025   537 		PTE$M_GPTX>,(R3)+,R0	;AND PFN/GPTX BITS FROM THE PTE

                          D9     15  0025   538 	BLEQ	DELGBLSEC_BUG		;BRANCH IF INCONSISTENT

            50         EA 8F     78  0027   539 	ASHL	#-PTE$V_TYP0,R0,R1	;ONLY TYPE BITS LEFT, RIGHT ADJUSTED

                          51         002B       

                          11     12  002C   540 	BNEQ	40$			;BRANCH IF NOT A TRANSITION PAGE

                                     002E   541 	ASSUME	PFN$C_FREPAGLST EQ 0

                          00     EF  002E   542 	EXTZV	#PFN$V_LOC,#PFN$S_LOC,-	;GET THE PAGE'S LOCATION

       0000'DF40          03         0030   543 		@W^PFN$AB_STATE[R0],R2	;

                          52         0035       

                          6F     12  0036   544 	BNEQ	100$			;IF NOT ON FREE LIST, WAIT UNTIL IT IS

                          53     DD  0038   545 	PUSHL	R3			;SAVE REGISTERS AROUND THE FOLLOWING

                          FFC3'  30  003A   546 	BSBW	MMG$DELPFNLST		;DELETE PAGE FROM PFN LIST

                          08     BA  003D   547 	POPR	#^M<R3>			;RESTORE REGISTERS

            DB            6E     F5  003F   548 40$:	SOBGTR	(SP),20$		;ONCE FOR EACH GLOBAL PAGE TABLE ENTRY

                          8E     D5  0042   549 	TSTL	(SP)+			;CLEAN OFF EXHAUSTED COUNT

            53            6E     D0  0044   550 	MOVL	(SP),R3			;1ST GPTE ADDRESS

            50         04 AE     D0  0047   551 	MOVL	4(SP),R0		;COUNT OF GPTE'S

                                     004B   552 ;

                                     004B   553 ; THE SECOND SCAN OF THE GLOBAL PAGE TABLE ENTRIES IS DONE TO DECREMENT

                                     004B   554 ; THE GLOBAL PAGE TABLE REFERENCE COUNT AND TO RELEASE PAGING FILE

                                     004B   555 ; BACKING STORE.  THIS WAS NOT DONE IN THE PREVIOUS SCAN BECAUSE THAT

                                     004B   556 ; SCAN REQUIRED THAT THERE BE NO SIDE EFFECTS SO THAT IT COULD FAIL

                                     004B   557 ; AND BE RESTARTED.

                                     004B   558 ;

            63            16     E0  004B   559 60$:	BBS	#PTE$V_TYP0,(R3),70$	;BRANCH IF NOT PAGING FILE BACKING STORE

                          0B         004E       

                          09     BB  004F   560 	PUSHR	#^M<R0,R3>		;SAVE REGISTER AROUND THE FOLLOWING

            51         1F A5     9A  0051   561 	MOVZBL	PHD$B_PAGFIL(R5),R1	;INDEX OF SYSTEM PAGING FILE

                          FFA8'  30  0055   562 	BSBW	MMG$DALCPAGFIL		;DEALLOCATE PAGING FILE

                          09     BA  0058   563 	POPR	#^M<R0,R3>		;RESTORE REGISTERS

                          FFA3'  30  005A   564 70$:	BSBW	MMG$DECPTREF		;ONE LESS PAGE TABLE REFERENCE

                          83     D4  005D   565 	CLRL	(R3)+			;DELETE THE GPTE

            E9            50     F5  005F   566 	SOBGTR	R0,60$			;NEXT GPTE

                                     0062   567 ;

                                     0062   568 ; 0(SP) = FIRST GPTE ADDRESS

                                     0062   569 ; 4(SP) = COUNT OF GPTE'S

                                     0062   570 ; 8(SP) = GLOBAL SECTION INDEX

                                     0062   571 ;

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page  14

X0120           DELGBLSEC - DELETE GLOBAL SECTION SUBROUTINE                                                                     (9)



                                     0062   572 	SETIPL	#IPL$_ASTDEL		;BACK TO CALLED IPL

            8E            04     C3  0065   573 	SUBL3	#4,(SP)+,R0		;ADDRESS OF FRONT STOPPER FOR THIS SECTION

                          50         0068       

            8E            03     C1  0069   574 	ADDL3	#3,(SP)+,R1		;GPTE COUNT + 2 FOR STOPPERS + 1 TO ROUND EVEN

                          51         006C       

            51            01     CA  006D   575 	BICL	#1,R1			;ROUND TO EVEN NO. OF GPTE'S

            51            04     C4  0070   576 	MULL	#4,R1			;NO. OF BYTES OF GPTE TO RELEASE

            53       0000'CF     DE  0073   577 	MOVAL	W^EXE$GL_GPT,R3		;TO GPT FREE POOL

                          FF85'  30  0078   578 	BSBW	EXE$DEALLOCATE		;RELEASE THEM

                          0A     BA  007B   579 	POPR	#^M<R1,R3>		;R1=SECTION INDEX, R3=SECTION ADDRESS

            50         0C A3     D0  007D   580 75$:	MOVL	SEC$L_WINDOW(R3),R0	;GET WCB ADDRESS FOR SECTION

         0B A0            03     E1  0081   581 	BBC	#WCB$V_SHRWCB,WCB$B_ACCESS(R0),80$ ;BRANCH IF NOT SHARED WINDOW

                          05         0085       

                       0E A0     B7  0086   582 	DECW	WCB$W_REFCNT(R0)	;LAST REFERENCE ON SHARED WINDOW?

                          09     14  0089   583 	BGTR	90$			;BRANCH IF NOT

                       16 A0     B4  008B   584 80$:	CLRW	WCB$W_NMAP(R0)		;NO RETRIEVAL POINTERS

                                     008E   585 

                                     008E   586 	ASSUME	WCB$W_P1_COUNT&3 EQ 0	;STARTS AT LONG WORD OFFSET

       0000'CF         24 A0     0E  008E   587 	INSQUE	WCB$W_P1_COUNT(R0),W^EXE$GL_WCBDELFL ;QUEUE WINDOW ON WCB DELETE LIST

                                     0094   588 

                                     0094   589 	ASSUME	SEC$L_GSD EQ 0		;1ST LONG WORD IN SECTION IS GSD ADDRESS

            50            63     D0  0094   590 90$:	MOVL	(R3),R0			;++X0120 GET GSD ADDRESS

                          08     13  0097   591 	BEQL	95$			;++X0120 BRANCH IF NONE

            50            60     0F  0099   592 	REMQUE	(R0),R0			;++X0120 REMOVE GLOBAL SECTION DESCRIPTOR

                                     009C   593 					;FROM GSD ACTIVE LIST

       0000'DF            60     0E  009C   594 	INSQUE	(R0),@W^EXE$GL_GSDFREBL	;AND PLACE IT ON THE FREE LIST

                 00000000'EF     17  00A1   595 95$:	JMP	MMG$DALCSTX		;DEALLOCATE THE GLOBAL SECTION INDEX

                                     00A7   596 					;AND RETURN

                                     00A7   597 ;

                                     00A7   598 ; PAGE IS IN TRANSITION STATE.  IT IS GUARANTEED TO END UP ON THE FREE PAGE

                                     00A7   599 ; LIST WHEN WHATEVER IS GOING ON IS COMPLETED

                                     00A7   600 ;

                                     00A7   601 100$:	SETIPL	#IPL$_ASTDEL		;BACK TO CALLER'S IPL

            5E            14     C0  00AA   602 	ADDL	#5*4,SP			;CLEAN UP THE STACK

         3A A5            01     E6  00AD   603 	BBSSI	#PHD$V_DALCSTX,PHD$W_FLAGS(R5),110$ ;SECTION STILL TO BE DEALLOCATED

                          00         00B1       

                                 05  00B2   604 110$:	RSB				;AND RETURN

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page  15

X0120           DELGBLWCB - DELETE GLOBAL WINDOW CONTROL BLOCKS                                                                 (10)



                                     00B3   606 	.SBTTL	DELGBLWCB - DELETE GLOBAL WINDOW CONTROL BLOCKS

                                     00B3   607 ;++

                                     00B3   608 ; FUNCTIONAL DESCRIPTION:

                                     00B3   609 ;

                                     00B3   610 ;	THIS ROUTINE REMOVES ANY WINDOW CONTROL BLOCKS FROM THE WCBDEL

                                     00B3   611 ; LIST AND DEACCESSES THE FILES BY FILLING IN A CHANNEL AND DEASSIGNING IT

                                     00B3   612 ;

                                     00B3   613 ; CALLING SEQUENCE:

                                     00B3   614 ;

                                     00B3   615 ;	BSBW	MMG$DELGBLWCB

                                     00B3   616 ;

                                     00B3   617 ; INPUT PARAMETERS:

                                     00B3   618 ;

                                     00B3   619 ;	R4 = PCB ADDRESS OF PROCESS

                                     00B3   620 ;	IPL = ASTDEL, MAY BE LOWERED TO 0 FOR A WHILE, BUT RETURNS AT ASTDEL

                                     00B3   621 ;

                                     00B3   622 ; IMPLICIT INPUTS:

                                     00B3   623 ;

                                     00B3   624 ;	NONE

                                     00B3   625 ;

                                     00B3   626 ; OUTPUT PARAMETERS:

                                     00B3   627 ;

                                     00B3   628 ;	NONE

                                     00B3   629 ;

                                     00B3   630 ; IMPLICIT OUTPUTS:

                                     00B3   631 ;

                                     00B3   632 ;	NONE

                                     00B3   633 ;

                                     00B3   634 ; COMPLETION CODES:

                                     00B3   635 ;

                                     00B3   636 ;	NONE

                                     00B3   637 ;

                                     00B3   638 ;--

                                     00B3   639 ;

                                     00B3   640 ; **********************************************************************

                                     00B3   641 ;

                                     00B3   642 ; **************** THE FOLLOWING CODE MAY BE PAGED *****************

                                     00B3   643 ;

                                 0000014E   644 	.PSECT	Y$EXEPAGED

                                     014E   645 ;

                                     014E   646 ; **********************************************************************

                                     014E   647 ;

                                     014E   648 

                                     014E   649 MMG$DELGBLWCB::

            53   00000000'FF     0F  014E   650 10$:	REMQUE	@L^EXE$GL_WCBDELFL,R3	;GET NEXT WCB TO DEACCESS

                          01     1C  0155   651 	BVC	20$			;BRANCH IF GOT ONE

                                 05  0157   652 	RSB				;NO MORE ON THE LIST

            53            24     C2  0158   653 20$:	SUBL	#WCB$W_P1_COUNT,R3	;ADDRESS OF WINDOW CONTROL BLOCK

                          FEA2'  30  015B   654 	BSBW	IOC$FFCHAN		;FIND A FREE CHANNEL

            41            50     E9  015E   655 	BLBC	R0,40$			;BRANCH IF NONE AVAILABLE

                                     0161   656 ;

                                     0161   657 ; R1 = CHANNEL NUMBER (NEGATIVE FORM)

                                     0161   658 ;

                       48 A4     B5  0161   659 	TSTW	PCB$W_FILCNT(R4)	;CAN WE CHARGE HIM FOR A FILE?

                          3C     13  0164   660 	BEQL	40$			;BRANCH IF NOT

            52   00000000'FF41   9E  0166   661 	MOVAB	@CTL$GL_CCBBASE[R1],R2	;CHANNEL CONTROL BLOCK ADDRESS

            51            51     CE  016E   662 	MNEGL	R1,R1			;FORM CHANNEL INDEX FOR DEASSIGN

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page  16

X0120           DELGBLWCB - DELETE GLOBAL WINDOW CONTROL BLOCKS                                                                 (10)



            50         10 A3     D0  0171   663 	MOVL	WCB$L_ORGUCB(R3),R0	;UCB ADDRESS FROM WINDOW

                       50 A0     B6  0175   664 	INCW	UCB$W_REFC(R0)		;COUNT A REFERENCE AND

            62            50     D0  0178   665 	MOVL	R0,CCB$L_UCB(R2)	;PUT IT IN THE CHANNEL

         04 A2            53     D0  017B   666 	MOVL	R3,CCB$L_WIND(R2)	;PUT WINDOW IN CHANNEL

                       09 A2     96  017F   667 	INCB	CCB$B_AMOD(R2)		;ASSIGN CHANNEL IN KERNEL MODE

                       48 A4     B7  0182   668 	DECW	PCB$W_FILCNT(R4)	;CHARGE THIS FILE

         0B A3            03     E1  0185   669 	BBC	#WCB$V_SHRWCB,WCB$B_ACCESS(R3),30$ ;IF SHARED WINDOW

                          03         0189       

                       0E A3     B6  018A   670 	INCW	WCB$W_REFCNT(R3)	;COUNT A REFERENCE

                                     018D   671 

                                     018D   672 30$:	SETIPL	#0			;DROP TO IPL 0

                                     0190   673 	$DASSGN_S R1			;DEASSIGN CHANNEL (THUS DEACCESSING FILE)

            0E            50     E9  019A   674 	BLBC	R0,60$			;BRANCH IF FAILED, DISASTER

                                     019D   675 	SETIPL	#IPL$_ASTDEL		;BACK TO ASTDEL

                          AC     11  01A0   676 	BRB	10$			;GO GET ANOTHER WCB IF ANY MORE

                                     01A2   677 ;

                                     01A2   678 ; R3 = WCB ADDRESS, PUT IT BACK ON THE WCBDEL QUEUE

                                     01A2   679 ;

   00000000'EF         24 A2     0E  01A2   680 40$:	INSQUE	WCB$W_P1_COUNT(R2),L^EXE$GL_WCBDELFL ;RE-QUEUE THE WCB

                                 05  01AA   681 	RSB				;AND RETURN

                                     01AB   682 ;

                                     01AB   683 ; DEASSIGN ERROR - SHOULDN'T HAPPEN

                                     01AB   684 ;

                                     01AB   685 60$:	BUG_CHECK DELGBLWCB,FATAL	;DEASSIGN FAILED

                                     01AF   686 

                                     01AF   687 

                                     01AF   688 

                                     01AF   689 	.END

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page  17

SYMBOL TABLE                                                                                                                    (10)



ACCVIO           000000A8 R     03   MMG$DELPFNLST    ********   X   04   PCB$V_WALL     = 0000000D            

BADIDENT         000000A1 R     03   MMG$DGBLSC1      0000002D RG    03   PCB$W_APTCNT     00000034            

BIT...         = 0000000C            MMG$GL_GPTBASE   ********   X   04   PCB$W_ASTCNT     0000003C            

BUG$_DELGBLSEC   ********   X   04   MMG$GL_SYSPHD    ********   X   03   PCB$W_BIOCNT     0000003E            

BUG$_DELGBLWCB   ********   X   03   MMG$GSDMTXULK    00000018 RG    03   PCB$W_BIOLM      00000040            

CCB$B_AMOD       00000009            MMG$GSDSCN       000000AE RG    03   PCB$W_BYTCNT     00000042            

CCB$B_STS        00000008            MMG$VFYSECFLG    00000000 RG    03   PCB$W_BYTLM      00000068            

CCB$C_LENGTH     00000010            PCB$B_ASTACT     0000000C            PCB$W_DIOCNT     00000044            

CCB$K_LENGTH     00000010            PCB$B_ASTEN      0000000D            PCB$W_DIOLM      00000046            

CCB$L_DIRP       0000000C            PCB$B_PRI        0000000B            PCB$W_FILCNT     00000048            

CCB$L_UCB        00000000            PCB$B_PRIB       00000033            PCB$W_GPGCNT     00000038            

CCB$L_WIND       00000004            PCB$B_TYPE       0000000A            PCB$W_GRP        00000022            

CCB$W_IOC        0000000A            PCB$B_WEFC       00000032            PCB$W_MEM        00000020            

CTL$GL_CCBBASE   ********   X   03   PCB$C_LENGTH     0000007C            PCB$W_MTXCNT     0000000E            

DELGBLSEC_BUG    00000000 R     04   PCB$K_LENGTH     0000007C            PCB$W_PPGCNT     0000003A            

DIR...         = 00000001            PCB$L_ASTQBL     00000014            PCB$W_PRCCNT     0000006A            

ERREXIT          000000AB R     03   PCB$L_ASTQFL     00000010            PCB$W_SIZE       00000008            

EXE$DEALLOCATE   ********   X   04   PCB$L_EFC2P      00000058            PCB$W_STATE      00000030            

EXE$DGBLSC       00000031 RG    03   PCB$L_EFC3P      0000005C            PCB$W_TMBU       00000036            

EXE$GL_GPT       ********   X   04   PCB$L_EFCS       00000050            PCB$W_TQCNT      0000004A            

EXE$GL_GSDDELFL  ********   X   03   PCB$L_EFCU       00000054            PFN$AB_STATE     ********   X   04   

EXE$GL_GSDFREBL  ********   X   04   PCB$L_EFWM       0000004C            PFN$C_ACTIVE   = 00000007            

EXE$GL_GSDGRPFL  ********   X   03   PCB$L_OWNER      0000001C            PFN$C_BADPAGLST= 00000002            

EXE$GL_GSDMTX    ********   X   03   PCB$L_PHD        00000064            PFN$C_FREPAGLST= 00000000            

EXE$GL_WCBDELFL  ********   X   04   PCB$L_PHYPCB     00000018            PFN$C_GBLWRT   = 00000003            

FLAGS            00000004            PCB$L_PID        00000060            PFN$C_GLOBAL   = 00000002            

GBL...         = 00000000            PCB$L_PQB        0000004C            PFN$C_GPGTBL   = 00000005            

GSD$B_TYPE       0000000A            PCB$L_SQBL       00000004            PFN$C_MFYPAGLST= 00000001            

GSD$C_LENGTH     00000028            PCB$L_SQFL       00000000            PFN$C_PPGTBL   = 00000004            

GSD$K_LENGTH     00000028            PCB$L_STS        00000028            PFN$C_PROCESS  = 00000000            

GSD$L_GSDBL      00000004            PCB$L_UIC        00000020            PFN$C_RDERR    = 00000004            

GSD$L_GSDFL      00000000            PCB$L_WSSWP      00000024            PFN$C_RDINPROG = 00000006            

GSD$L_IDENT      00000014            PCB$L_WTIME      0000002C            PFN$C_RELPEND  = 00000003            

GSD$L_UIC        0000000C            PCB$T_LNAME      0000006C            PFN$C_SYSTEM   = 00000001            

GSD$T_GSDNAM     00000018            PCB$V_ASTPEN   = 00000011            PFN$C_WRTINPROG= 00000005            

GSD$W_GRP        0000000E            PCB$V_BATCH    = 0000000E            PFN$M_BADPAG   = 00000020            

GSD$W_GSTX       00000012            PCB$V_DELPEN   = 00000001            PFN$M_BAK      = 007FFFFF            

GSD$W_PROT       00000010            PCB$V_FORCPEN  = 00000002            PFN$M_COLLISION= 00000010            

GSD$W_SIZE       00000008            PCB$V_HIBER    = 00000013            PFN$M_DELCON   = 00000010            

GSDNAM           00000008            PCB$V_INQUAN   = 00000003            PFN$M_GBLBAK   = 00800000            

IDENT            0000000C            PCB$V_LOGIN    = 00000014            PFN$M_LOC      = 00000007            

IOC$FFCHAN       ********   X   03   PCB$V_NETWRK   = 00000015            PFN$M_MODIFY   = 00000080            

IPL$_ASTDEL    = 00000002            PCB$V_NOACNT   = 0000000F            PFN$M_PAGTYP   = 00000007            

IPL$_HWCLK     = 00000018            PCB$V_NODELET  = 00000017            PFN$M_PGFLX    = FF000000            

IPL$_IOPOST    = 00000004            PCB$V_PHDRES   = 00000012            PFN$M_RPTEVT   = 00000040            

IPL$_MAILBOX   = 0000000B            PCB$V_PSWAPM   = 00000004            PFN$S_BAK      = 00000017            

IPL$_POWER     = 0000001F            PCB$V_PWRAST   = 00000016            PFN$S_GBLBAK   = 00000001            

IPL$_QUEUEAST  = 00000006            PCB$V_RES      = 00000000            PFN$S_LOC      = 00000003            

IPL$_SCHED     = 00000003            PCB$V_RESPEN   = 00000005            PFN$S_PAGTYP   = 00000003            

IPL$_SYNCH     = 00000007            PCB$V_SSFEXC   = 00000006            PFN$S_PGFLX    = 00000008            

IPL$_TIMER     = 00000007            PCB$V_SSFEXCE  = 00000007            PFN$V_BADPAG   = 00000005            

MMG$DALCPAGFIL   ********   X   04   PCB$V_SSFEXCS  = 00000008            PFN$V_BAK      = 00000000            

MMG$DALCSTX      ********   X   04   PCB$V_SSFEXCU  = 00000009            PFN$V_COLLISION= 00000004            

MMG$DALCSTXSCN   ********   X   03   PCB$V_SSRWAIT  = 0000000A            PFN$V_DELCON   = 00000004            

MMG$DECPTREF     ********   X   04   PCB$V_SUSPEN   = 0000000B            PFN$V_GBLBAK   = 00000017            

MMG$DELGBLSEC    00000004 RG    04   PCB$V_SWPVBN   = 00000010            PFN$V_LOC      = 00000000            

MMG$DELGBLWCB    0000014E RG    03   PCB$V_WAKEPEN  = 0000000C            PFN$V_MODIFY   = 00000007            

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page  18

SYMBOL TABLE                                                                                                                    (10)



PFN$V_PAGTYP   = 00000000            PHD$V_ASTLVL   = 00000018            PR$_SBISC      = 00000032            

PFN$V_PGFLX    = 00000018            PHD$V_DALCSTX  = 00000001            PR$_SBITA      = 00000035            

PFN$V_RPTEVT   = 00000006            PHD$V_P0LR     = 00000000            PR$_SBR        = 0000000C            

PHD$B_ASTLVL     000000CF            PHD$V_PFMFLG   = 00000000            PR$_SCBB       = 00000011            

PHD$B_DFPFC      00000038            PHD$V_WSPEAKCHK= 00000002            PR$_SID        = 0000003E            

PHD$B_PAGFIL     0000001F            PHD$W_ASTLM      00000044            PR$_SIRR       = 00000014            

PHD$B_PGTBPFC    00000039            PHD$W_BAK        00000048            PR$_SISR       = 00000015            

PHD$C_LENGTH     00000118            PHD$W_DFWSCNT    0000001A            PR$_SLR        = 0000000D            

PHD$C_PHDPAGCTX= 00000008            PHD$W_EMPTPG     000000D8            PR$_SSP        = 00000002            

PHD$K_LENGTH     00000118            PHD$W_EXTDYNWS   00000076            PR$_TBIA       = 00000039            

PHD$L_BIOCNT     00000054            PHD$W_FILLM      00000060            PR$_TBIS       = 0000003A            

PHD$L_CPULIM     00000058            PHD$W_FLAGS      0000003A            PR$_TODR       = 0000001B            

PHD$L_CPUTIM     0000003C            PHD$W_PHVINDEX   00000046            PR$_TXCS       = 00000022            

PHD$L_DIOCNT     00000050            PHD$W_PRCLM      00000042            PR$_TXDB       = 00000023            

PHD$L_ESP        0000007C            PHD$W_PST        00000020            PR$_USP        = 00000003            

PHD$L_FREP0VA    00000028            PHD$W_PSTBASMAX  0000004A            PR$_WCSA       = 0000002C            

PHD$L_FREP1VA    00000030            PHD$W_PSTFREE    00000026            PR$_WCSD       = 0000002D            

PHD$L_FREPTECNT  0000002C            PHD$W_PSTLAST    00000024            PRV$V_ALLSPOOL = 00000004            

PHD$L_KSP        00000078            PHD$W_PTCNTACT   00000070            PRV$V_BUGCHK   = 00000017            

PHD$L_P0BR       000000C8            PHD$W_PTCNTLCK   0000006C            PRV$V_CMEXEC   = 00000001            

PHD$L_P0LRASTL   000000CC            PHD$W_PTCNTMAX   00000072            PRV$V_CMKRNL   = 00000000            

PHD$L_P1BR       000000D0            PHD$W_PTCNTVAL   0000006E            PRV$V_DETACH   = 00000005            

PHD$L_P1LR       000000D4            PHD$W_QUANT      00000040            PRV$V_DIAGNOSE = 00000006            

PHD$L_PAGEFLTS   0000004C            PHD$W_TQLM       00000062            PRV$V_EXQUOTA  = 00000013            

PHD$L_PAGFIL     0000001C            PHD$W_WSAUTH     0000000A            PRV$V_GROUP    = 00000008            

PHD$L_PC         000000C0            PHD$W_WSDYN      0000000E            PRV$V_GRPNAM   = 00000003            

PHD$L_PCB        00000078            PHD$W_WSFLUID    00000074            PRV$V_LOG_IO   = 00000007            

PHD$L_PGFLCNT    00000034            PHD$W_WSLAST     00000012            PRV$V_MOUNT    = 00000011            

PHD$L_PGFLQUOTA  0000005C            PHD$W_WSLIST     00000008            PRV$V_NETMBX   = 00000014            

PHD$L_PSL        000000C4            PHD$W_WSLOCK     0000000C            PRV$V_NOACNT   = 00000009            

PHD$L_PSTBASOFF  00000020            PHD$W_WSLX       0000004A            PRV$V_OPER     = 00000012            

PHD$L_PTWSLELCK  00000064            PHD$W_WSNEXT     00000010            PRV$V_PHY_IO   = 00000016            

PHD$L_PTWSLEVAL  00000068            PHD$W_WSQUOTA    00000018            PRV$V_PRMCEB   = 0000000A            

PHD$L_R0         00000088            PR$_ACCR       = 00000029            PRV$V_PRMGBL   = 00000018            

PHD$L_R1         0000008C            PR$_ACCS       = 00000028            PRV$V_PRMMBX   = 0000000B            

PHD$L_R10        000000B0            PR$_ASTLVL     = 00000013            PRV$V_PSWAPM   = 0000000C            

PHD$L_R11        000000B4            PR$_ESP        = 00000001            PRV$V_SETPRI   = 0000000D            

PHD$L_R12        000000B8            PR$_ICCS       = 00000018            PRV$V_SETPRV   = 0000000E            

PHD$L_R13        000000BC            PR$_ICR        = 0000001A            PRV$V_SYSGBL   = 00000019            

PHD$L_R2         00000090            PR$_IPL        = 00000012            PRV$V_SYSNAM   = 00000002            

PHD$L_R3         00000094            PR$_ISP        = 00000004            PRV$V_TMPMBX   = 0000000F            

PHD$L_R4         00000098            PR$_KSP        = 00000000            PRV$V_VOLPRO   = 00000015            

PHD$L_R5         0000009C            PR$_MAPEN      = 00000038            PRV$V_WORLD    = 00000010            

PHD$L_R6         000000A0            PR$_NICR       = 00000019            PTE$C_EOWN     = 00800000            

PHD$L_R7         000000A4            PR$_P0BR       = 00000008            PTE$C_ER       = 38000000            

PHD$L_R8         000000A8            PR$_P0LR       = 00000009            PTE$C_ERKW     = 30000000            

PHD$L_R9         000000AC            PR$_P1BR       = 0000000A            PTE$C_EW       = 28000000            

PHD$L_REFERFLT   00000014            PR$_P1LR       = 0000000B            PTE$C_KOWN     = 00000000            

PHD$L_SSP        00000080            PR$_PCBB       = 00000010            PTE$C_KR       = 18000000            

PHD$L_USP        00000084            PR$_PME        = 0000003D            PTE$C_KW       = 10000000            

PHD$L_WSL        00000118            PR$_RXCS       = 00000020            PTE$C_NA       = 00000000            

PHD$M_DALCSTX  = 00000002            PR$_RXDB       = 00000021            PTE$C_SOWN     = 01000000            

PHD$M_PFMFLG   = 00000001            PR$_SBIER      = 00000034            PTE$C_SR       = 58000000            

PHD$M_WSPEAKCHK= 00000004            PR$_SBIFS      = 00000030            PTE$C_SREW     = 48000000            

PHD$Q_PRIVMSK    00000000            PR$_SBIMT      = 00000033            PTE$C_SRKW     = 50000000            

PHD$S_ASTLVL   = 00000008            PR$_SBIQC      = 00000036            PTE$C_SW       = 40000000            

PHD$S_P0LR     = 00000018            PR$_SBIS       = 00000031            PTE$C_UOWN     = 01800000            

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page  19

SYMBOL TABLE                                                                                                                    (10)



PTE$C_UR       = 78000000            SEC$M_GBL      = 00000001            SS$_CREATED    = 00000619            

PTE$C_UREW     = 68000000            SEC$M_PERM     = 00004000            SS$_CTRLERR    = 00000054            

PTE$C_URKW     = 70000000            SEC$M_SYSGBL   = 00008000            SS$_DATACHECK  = 0000005C            

PTE$C_URSW     = 60000000            SEC$M_WRT      = 00000008            SS$_DATAOVERUN = 00000838            

PTE$C_UW       = 20000000            SEC$S_AMOD     = 00000002            SS$_DEBUG      = 0000046C            

PTE$M_CRF      = 00010000            SEC$S_CRF      = 00000001            SS$_DECOVF     = 000004A4            

PTE$M_DZRO     = 00020000            SEC$S_DZRO     = 00000001            SS$_DEVACTIVE  = 000002C4            

PTE$M_GPTX     = 003FFFFF            SEC$S_GBL      = 00000001            SS$_DEVALLOC   = 00000840            

PTE$M_MODIFY   = 04000000            SEC$S_PERM     = 00000001            SS$_DEVALRALLOC= 00000641            

PTE$M_OWN      = 01800000            SEC$S_PFC      = 00000008            SS$_DEVASSIGN  = 00000848            

PTE$M_PFN      = 001FFFFF            SEC$S_SYSGBL   = 00000001            SS$_DEVFOREIGN = 00000064            

PTE$M_PGFLVB   = 003FFFFF            SEC$S_VPX      = 00000016            SS$_DEVICEFULL = 00000850            

PTE$M_PROT     = 78000000            SEC$S_WRT      = 00000001            SS$_DEVMOUNT   = 0000006C            

PTE$M_TYP0     = 00400000            SEC$V_AMOD     = 00000008            SS$_DEVNOTALLOC= 00000858            

PTE$M_TYP1     = 04000000            SEC$V_CRF      = 00000001            SS$_DEVNOTMBX  = 00000074            

PTE$M_VALID    = 80000000            SEC$V_DZRO     = 00000002            SS$_DEVNOTMOUNT= 0000007C            

PTE$M_WRT      = 00040000            SEC$V_GBL      = 00000000            SS$_DEVOFFLINE = 00000084            

PTE$S_GPTX     = 00000016            SEC$V_PERM     = 0000000E            SS$_DIRFULL    = 00000860            

PTE$S_OWN      = 00000002            SEC$V_PFC      = 00000018            SS$_DRVERR     = 0000008C            

PTE$S_PFN      = 00000015            SEC$V_SYSGBL   = 0000000F            SS$_DUPFILENAME= 00000868            

PTE$S_PGFLVB   = 00000016            SEC$V_VPX      = 00000000            SS$_DUPLNAM    = 00000094            

PTE$S_PROT     = 00000004            SEC$V_WRT      = 00000003            SS$_ENDOFFILE  = 00000870            

PTE$S_STX      = 00000010            SEC$W_FLAGS      00000014            SS$_ENDOFTAPE  = 00000878            

PTE$V_CRF      = 00000010            SEC$W_SECXBL     00000006            SS$_ENDOFUSRLBL= 00000970            

PTE$V_DZRO     = 00000011            SEC$W_SECXFL     00000004            SS$_EXQUOTA    = 0000001C            

PTE$V_GPTX     = 00000000            SS$_ABORT      = 0000002C            SS$_EXTIDXFILE = 00000880            

PTE$V_MODIFY   = 0000001A            SS$_ACCONFLICT = 00000800            SS$_FCPREADERR = 00000888            

PTE$V_OWN      = 00000017            SS$_ACCVIO     = 0000000C            SS$_FCPREPSTN  = 00000988            

PTE$V_PFN      = 00000000            SS$_ACPVAFUL   = 000002FC            SS$_FCPREWNDERR= 00000890            

PTE$V_PGFLVB   = 00000000            SS$_ARTRES     = 00000474            SS$_FCPSPACERR = 00000898            

PTE$V_PROT     = 0000001B            SS$_ASTFLT     = 0000040C            SS$_FCPWRITERR = 000008A0            

PTE$V_STX      = 00000000            SS$_BADATTRIB  = 00000034            SS$_FILACCERR  = 0000009C            

PTE$V_TYP0     = 00000016            SS$_BADCHKSUM  = 00000808            SS$_FILALRACC  = 000000A4            

PTE$V_TYP1     = 0000001A            SS$_BADESCAPE  = 0000003C            SS$_FILELOCKED = 000008A8            

PTE$V_VALID    = 0000001F            SS$_BADFILEHDR = 00000810            SS$_FILENUMCHK = 000008B0            

PTE$V_WRT      = 00000012            SS$_BADFILENAME= 00000818            SS$_FILESEQCHK = 000008B8            

SAVABS...      = 00000010            SS$_BADFILEVER = 00000820            SS$_FILESTRUCT = 000008C0            

SCH$GL_CURPCB    ********   X   03   SS$_BADIMGHDR  = 00000044            SS$_FILNOTACC  = 000000AC            

SCH$LOCKW        ********   X   03   SS$_BADIRECTORY= 00000828            SS$_FILNOTCNTG = 000002AC            

SCH$UNLOCK       ********   X   03   SS$_BADPARAM   = 00000014            SS$_FILNOTEXP  = 000000B4            

SEC$B_AMOD       00000015            SS$_BADSTACK   = 000002B4            SS$_FLTDIV     = 00000494            

SEC$B_PFC        0000000B            SS$_BEGOFFILE  = 00000938            SS$_FLTOVF     = 0000048C            

SEC$C_LENGTH     00000020            SS$_BLOCKCNTERR= 00000940            SS$_FLTUND     = 0000049C            

SEC$K_LENGTH     00000020            SS$_BREAK      = 00000414            SS$_FORMAT     = 000000BC            

SEC$K_MATALL   = 00000000            SS$_BUFBYTALI  = 0000030C            SS$_GPTFULL    = 000000C4            

SEC$K_MATEQU   = 00000001            SS$_BUFFEROVF  = 00000601            SS$_GSDFULL    = 000000CC            

SEC$K_MATLEQ   = 00000002            SS$_BUGCHECK   = 000002A4            SS$_HANGUP     = 000002CC            

SEC$L_CCB        00000000            SS$_CANCEL     = 00000830            SS$_HEADERFULL = 000008C8            

SEC$L_GSD        00000000            SS$_CHANINTLK  = 0000004C            SS$_IDXFILEFULL= 000008D0            

SEC$L_PAGCNT     0000001C            SS$_CLIFRCEXT  = 00000980            SS$_ILLBLKNUM  = 000000DC            

SEC$L_REFCNT     00000018            SS$_CMODSUPR   = 0000041C            SS$_ILLCNTRFUNC= 000000E4            

SEC$L_VBN        00000010            SS$_CMODUSER   = 00000424            SS$_ILLEFC     = 000000EC            

SEC$L_VPXPFC     00000008            SS$_COMPAT     = 0000042C            SS$_ILLIOFUNC  = 000000F4            

SEC$L_WINDOW     0000000C            SS$_CONTINUE   = 00000001            SS$_ILLLBLAST  = 00000968            

SEC$M_AMOD     = 00000300            SS$_CONTROLC   = 00000651            SS$_ILLPAGCNT  = 000000FC            

SEC$M_CRF      = 00000002            SS$_CONTROLO   = 00000609            SS$_ILLSEQOP   = 000002DC            

SEC$M_DZRO     = 00000004            SS$_CONTROLY   = 00000611            SS$_ILLSER     = 00000104            

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page  20

SYMBOL TABLE                                                                                                                    (10)



SS$_ILLUSRLBLRD= 00000958            SS$_NOTMODIFIED= 00000659            UCB$B_OFFNDX     00000094            

SS$_ILLUSRLBLWT= 00000960            SS$_NOTNETDEV  = 000002EC            UCB$B_OFFRTC     00000095            

SS$_INCVOLLABEL= 0000010C            SS$_NOTRAN     = 00000629            UCB$B_REMSRV     0000003D            

SS$_INSFARG    = 00000114            SS$_NOTSQDEV   = 000001E4            UCB$B_SECTORS    0000003C            

SS$_INSFMEM    = 00000124            SS$_OPCCUS     = 00000434            UCB$B_SLAVE      00000074            

SS$_INSFRAME   = 0000012C            SS$_OPCDEC     = 0000043C            UCB$B_SPR        00000075            

SS$_INSFWSL    = 0000011C            SS$_OPINCOMPL  = 000002D4            UCB$B_STATE      00000052            

SS$_INTDIV     = 00000484            SS$_PAGOWNVIO  = 000001EC            UCB$B_TRACKS     0000003D            

SS$_INTOVF     = 0000047C            SS$_PAGRDERR   = 00000444            UCB$B_TYPE       0000000A            

SS$_IVADDR     = 00000134            SS$_PARITY     = 000001F4            UCB$B_VERTSZ     0000003F            

SS$_IVCHAN     = 0000013C            SS$_PARTESCAPE = 000001FC            UCB$C_LENGTH     00000074            

SS$_IVCHNLSEC  = 0000026C            SS$_PFMBSY     = 00000204            UCB$C_LOGLNK   = 00000001            

SS$_IVDEVNAM   = 00000144            SS$_PLHLDR     = 00000404            UCB$K_LENGTH     00000074            

SS$_IVGSDNAM   = 0000014C            SS$_PSTFULL    = 0000020C            UCB$L_AMB        00000054            

SS$_IVLOGNAM   = 00000154            SS$_RADRMOD    = 0000044C            UCB$L_ASTQBL     00000010            

SS$_IVLOGTAB   = 0000015C            SS$_REJECT     = 00000294            UCB$L_ASTQFL     0000000C            

SS$_IVPROTECT  = 000002F4            SS$_REMOTE     = 00000649            UCB$L_CPID       0000005C            

SS$_IVQUOTAL   = 00000164            SS$_RESIGNAL   = 00000918            UCB$L_CRB        00000020            

SS$_IVSECFLG   = 0000016C            SS$_RESULTOVF  = 00000214            UCB$L_DDB        00000024            

SS$_IVSECIDCTL = 000002E4            SS$_ROPRAND    = 00000454            UCB$L_DEVCHAR    00000034            

SS$_IVSSRQ     = 00000174            SS$_SECTBLFUL  = 0000021C            UCB$L_DEVDEPEND  0000003C            

SS$_IVSTSFLG   = 0000017C            SS$_SSFAIL     = 0000045C            UCB$L_DPC        00000080            

SS$_IVTIME     = 00000184            SS$_SUBRNG     = 000004AC            UCB$L_DUETIM     0000005C            

SS$_LCKPAGFUL  = 000000D4            SS$_SUPERSEDE  = 00000631            UCB$L_DX_BFPNT   0000009C            

SS$_LENVIO     = 0000018C            SS$_TAPEPOSLOST= 00000224            UCB$L_DX_BUF     00000098            

SS$_LKWSETFUL  = 00000194            SS$_TBIT       = 00000464            UCB$L_DX_RXDB    000000A0            

SS$_MBFULL     = 000008D8            SS$_TIMEOUT    = 0000022C            UCB$L_EMB        00000078            

SS$_MBTOOSML   = 0000019C            SS$_TOOMANYVER = 00000990            UCB$L_FIRST      00000014            

SS$_MCHECK     = 000002BC            SS$_TOOMUCHDATA= 0000029C            UCB$L_FPC        0000000C            

SS$_MEDOFL     = 000001A4            SS$_UNASEFC    = 00000234            UCB$L_FQBL       00000004            

SS$_MSGNOTFND  = 00000621            SS$_UNSAFE     = 0000023C            UCB$L_FQFL       00000000            

SS$_MTLBLLONG  = 00000304            SS$_UNWIND     = 00000920            UCB$L_FR3        00000010            

SS$_MUSTCLOSEFL= 00000948            SS$_UNWINDING  = 00000928            UCB$L_FR4        00000014            

SS$_NOAQB      = 00000314            SS$_VASFULL    = 00000244            UCB$L_IOQBL      00000044            

SS$_NODATA     = 000001AC            SS$_VECINUSE   = 0000024C            UCB$L_IOQFL      00000040            

SS$_NOHANDLER  = 000008F8            SS$_VOLINV     = 00000254            UCB$L_IRP        0000004C            

SS$_NOHOMEBLK  = 000008E0            SS$_WAITUSRLBL = 00000950            UCB$L_LINK       0000002C            

SS$_NOIOCHAN   = 000001B4            SS$_WASCLR     = 00000001            UCB$L_LOGADR     00000064            

SS$_NOLINKS    = 0000027C            SS$_WASECC     = 00000639            UCB$L_MAXBLOCK   00000084            

SS$_NOLOGNAM   = 000001BC            SS$_WASSET     = 00000009            UCB$L_MEDIA      0000008C            

SS$_NOMBX      = 00000274            SS$_WRITLCK    = 0000025C            UCB$L_NT_DATSSB  00000074            

SS$_NOMOREFILES= 00000930            SS$_WRONGACP   = 0000031C            UCB$L_NT_INTSSB  00000078            

SS$_NONEXDRV   = 000001C4            SYS$DASSGN       ********   X   03   UCB$L_OPCNT      00000060            

SS$_NONEXPR    = 000008E8            UCB$B_AMOD       00000053            UCB$L_OWNUIC     0000001C            

SS$_NONLOCAL   = 000008F0            UCB$B_CEX        00000077            UCB$L_PID        00000028            

SS$_NOPRIV     = 00000024            UCB$B_CM1        0000004A            UCB$L_RQBL       00000004            

SS$_NORMAL     = 00000001            UCB$B_CM2        0000004B            UCB$L_RQFL       00000000            

SS$_NOSIGNAL   = 00000900            UCB$B_DEVCLASS   00000038            UCB$L_SVAPTE     00000068            

SS$_NOSOLICIT  = 00000284            UCB$B_DEVTYPE    00000039            UCB$L_SVPN       00000064            

SS$_NOSUCHDEV  = 00000908            UCB$B_DIPL       00000052            UCB$L_TTCHAR     0000003C            

SS$_NOSUCHFILE = 00000910            UCB$B_DX_SCTCNT  000000A6            UCB$L_VCB        00000030            

SS$_NOSUCHNODE = 0000028C            UCB$B_ERTCNT     00000070            UCB$M_BACKP    = 00000020            

SS$_NOSUCHSEC  = 00000978            UCB$B_ERTMAX     00000071            UCB$M_BSY      = 00000100            

SS$_NOTAPEOP   = 00000264            UCB$B_ESCAPE     0000004B            UCB$M_CANCEL   = 00000008            

SS$_NOTFILEDEV = 000001CC            UCB$B_FEX        00000076            UCB$M_DEADMO   = 00000400            

SS$_NOTINTBLSZ = 000001D4            UCB$B_FIPL       0000000B            UCB$M_DELMBX   = 00000002            

SS$_NOTLABELMT = 000001DC            UCB$B_LOCSRV     0000003C            UCB$M_DIAGBUF  = 00000002            

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page  21

SYMBOL TABLE                                                                                                                    (10)



UCB$M_DX_WRITE = 00000008            UCB$W_BUFQUO     00000018            WCB$V_WRITE    = 00000001            

UCB$M_ECC      = 00000001            UCB$W_BYTESTOGO  0000003E            WCB$V_WRITEAC  = 00000008            

UCB$M_ERLOGIP  = 00000004            UCB$W_CHARGE     0000004A            WCB$V_WRITECK  = 00000005            

UCB$M_INT      = 00000002            UCB$W_CYLINDERS  0000003E            WCB$W_ACON       00000014            

UCB$M_INTTYPE  = 00000080            UCB$W_DA         0000008C            WCB$W_COUNT      00000000            

UCB$M_JOB      = 00000001            UCB$W_DC         0000008E            WCB$W_NMAP       00000016            

UCB$M_MOUNTING = 00000200            UCB$W_DEVBUFSIZ  0000003A            WCB$W_P1_COUNT   00000024            

UCB$M_NOCNVRT  = 00000004            UCB$W_DEVSTS     0000005A            WCB$W_P2_COUNT   0000002A            

UCB$M_NT_BFROVF= 00000004            UCB$W_DIRSEQ     00000088            WCB$W_PREVCOUNT  FFFFFFFA            

UCB$M_NT_BREAK = 00000020            UCB$W_DSTADDR    00000018            WCB$W_REFCNT     0000000E            

UCB$M_NT_NAME  = 00000010            UCB$W_DX_BCR     000000A4            WCB$W_SIZE       00000008            

UCB$M_ONLINE   = 00000010            UCB$W_EC1        00000090            

UCB$M_POWER    = 00000020            UCB$W_EC2        00000092            

UCB$M_PRMMBX   = 00000001            UCB$W_ERRCNT     00000072            

UCB$M_TIM      = 00000001            UCB$W_FUNC       0000007E            

UCB$M_TIMOUT   = 00000040            UCB$W_MB_SEED    FFFFFFFC            

UCB$M_TT_NOTIF = 00000004            UCB$W_MSGCNT     00000016            

UCB$M_TT_TIMO  = 00000002            UCB$W_MSGMAX     00000014            

UCB$M_UNLOAD   = 00001000            UCB$W_NT_CHAN    0000007C            

UCB$M_VALID    = 00000800            UCB$W_OFFSET     0000008A            

UCB$S_LNKPRI   = 00000002            UCB$W_REFC       00000050            

UCB$S_LTYPE    = 00000002            UCB$W_SIZE       00000008            

UCB$T_PARTNER    0000000C            UCB$W_SRCADDR    0000001A            

UCB$V_BACKP    = 00000005            UCB$W_STS        00000058            

UCB$V_BSY      = 00000008            UCB$W_UNIT       00000048            

UCB$V_CANCEL   = 00000003            UCB$W_VPROT      0000001A            

UCB$V_DEADMO   = 0000000A            WCB$B_ACCESS     0000000B            

UCB$V_DELMBX   = 00000001            WCB$B_TYPE       0000000A            

UCB$V_DIAGBUF  = 00000001            WCB$C_LENGTH     00000024            

UCB$V_DX_WRITE = 00000003            WCB$C_MAP        00000024            

UCB$V_ECC      = 00000000            WCB$K_LENGTH     00000024            

UCB$V_ERLOGIP  = 00000002            WCB$K_MAP        00000024            

UCB$V_INT      = 00000001            WCB$L_FCB        00000018            

UCB$V_INTTYPE  = 00000007            WCB$L_LBN        00000002            

UCB$V_JOB      = 00000000            WCB$L_ORGUCB     00000010            

UCB$V_LNKPRI   = 00000006            WCB$L_P1_LBN     00000026            

UCB$V_LTYPE    = 00000000            WCB$L_P2_LBN     0000002C            

UCB$V_MOUNTING = 00000009            WCB$L_PID        0000000C            

UCB$V_MSGACK   = 00000004            WCB$L_PREVLBN    FFFFFFFC            

UCB$V_MSGFLO   = 00000003            WCB$L_RVT        0000001C            

UCB$V_NOCNVRT  = 00000002            WCB$L_STVBN      00000020            

UCB$V_NT_BFROVF= 00000002            WCB$L_WLBL       00000004            

UCB$V_NT_BREAK = 00000005            WCB$L_WLFL       00000000            

UCB$V_NT_NAME  = 00000004            WCB$M_NOTFCP   = 00000004            

UCB$V_ONLINE   = 00000004            WCB$M_READ     = 00000001            

UCB$V_POWER    = 00000005            WCB$M_SHRWCB   = 00000008            

UCB$V_PRMMBX   = 00000000            WCB$M_WRITE    = 00000002            

UCB$V_SEGFLO   = 00000002            WCB$V_DLOCK    = 00000001            

UCB$V_TIM      = 00000000            WCB$V_NOREAD   = 0000000A            

UCB$V_TIMOUT   = 00000006            WCB$V_NOTFCP   = 00000002            

UCB$V_TT_NOTIF = 00000002            WCB$V_NOTRUNC  = 0000000B            

UCB$V_TT_TIMO  = 00000001            WCB$V_NOWRITE  = 00000000            

UCB$V_UNLOAD   = 0000000C            WCB$V_READ     = 00000000            

UCB$V_VALID    = 0000000B            WCB$V_READCK   = 00000009            

UCB$W_BCNT       0000006E            WCB$V_SEQONLY  = 00000006            

UCB$W_BCR        00000096            WCB$V_SHRWCB   = 00000003            

UCB$W_BOFF       0000006C            WCB$V_SPOOL    = 00000004            

SYSDGBLSC       - DELETE GLOBAL SECTION SYSTEM SERVICE           21-AUG-1978 20:28:55   VAX-11 MACRO X0.3-11               Page  22

PROGRAM SECTION SYNOPSIS                                                                                                        (10)







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  

Y$EXEPAGED       000001AF      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  

$MMGCOD          000000B3      04     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD    WRT BYTE  





THERE WERE NO ERRORS OR WARNINGS.

3294. BYTES LEFT IN FREE MEMORY POOL.

3368. BYTES OF RECLAIMED MEMORY.

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

18 MLB DIR RDS - 1325 GETS TO DEFINE 32 MACROS. 96 INTER. FILE WRITES. 

