LOCKDB          - LOCK AND UNLOCK I/O DATA BASE                  22-AUG-1978 00:45:10   VAX-11 MACRO X0.3-11               Page   1

X0002                                                                                                                            (1)



                                     0000   100 	.TITLE	LOCKDB - LOCK AND UNLOCK I/O DATA BASE

                                     0000   200 	.IDENT	"X0002"

                                     0000   300 

                                     0000   400 ;

                                     0000   500 ; COPYRIGHT (C) 1976, 1977, 1978

                                     0000   600 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASSACHUSETTS 01754

                                     0000   700 ;

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

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

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

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

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

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

                                     0000  1400 ; REMAIN IN DEC.

                                     0000  1500 ;

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

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

                                     0000  1800 ; CORPORATION.

                                     0000  1900 ;

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

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

                                     0000  2200 

                                     0000  2300 ;++

                                     0000  2400 ;

                                     0000  2500 ; FACILITY:  F11ACP STRUCTURE LEVEL 1

                                     0000  2600 ;

                                     0000  2700 ; ABSTRACT:

                                     0000  2800 ;

                                     0000  2900 ;	THESE ROUTINES LOCK AND UNLOCK THE I/O DATA BASE MUTEX.

                                     0000  3000 ;	NEEDLESS TO SAY, THEY MUST BE CALLED IN KERNEL MODE.

                                     0000  3100 ;

                                     0000  3200 ; ENVIRONMENT:

                                     0000  3300 ;

                                     0000  3400 ;	STARLET OPERATING SYSTEM, INCLUDING PRIVILEGED SYSTEM SERVICES

                                     0000  3500 ;	AND INTERNAL EXEC ROUTINE.

                                     0000  3600 ;

                                     0000  3700 ; AUTHOR:  ANDREW C. GOLDSTEIN, CREATION DATE:  29-APR-1977  15:31

                                     0000  3800 ;

                                     0000  3900 ; MODIFIED BY:

                                     0000  4000 ;

                                     0000  4100 ;  , VERSION  ,

                                     0000  4200 ; 01	- 

                                     0000  4300 ;--

                                     0000  4400 

                                     0000  4500 

                                     0000  4600 	$PRDEF			; DEFINE PROCESOR REGISTER NUMBERS

LOCKDB          - LOCK AND UNLOCK I/O DATA BASE                  22-AUG-1978 00:45:10   VAX-11 MACRO X0.3-11               Page   2

X0002                                                                                                                            (2)



                                     0000   100 ;++

                                     0000   200 ;

                                     0000   300 ; FUNCTIONAL DESCRIPTION:

                                     0000   400 ;

                                     0000   500 ;	THIS ROUTINE LOCKS THE I/O DATA BASE MUTEX.

                                     0000   600 ;

                                     0000   700 ; CALLING SEQUENCE:

                                     0000   800 ;	CALL LOCK_IODB ()

                                     0000   900 ;

                                     0000  1000 ; INPUT PARAMETERS:

                                     0000  1100 ;	NONE

                                     0000  1200 ;

                                     0000  1300 ; IMPLICIT INPUTS:

                                     0000  1400 ;	NONE

                                     0000  1500 ;

                                     0000  1600 ; OUTPUT PARAMETERS:

                                     0000  1700 ;	NONE

                                     0000  1800 ;

                                     0000  1900 ; IMPLICIT OUTPUTS:

                                     0000  2000 ;	NONE

                                     0000  2100 ;

                                     0000  2200 ; ROUTINE VALUE:

                                     0000  2300 ;	NONE

                                     0000  2400 ;

                                     0000  2500 ; SIDE EFFECTS:

                                     0000  2600 ;	I/O DATA BASE MUTEX LOCKED

                                     0000  2700 ;

                                     0000  2800 ;--

                                     0000  2900 

                                 00000000  3000 	.PSECT	$LOCKEDC1$,NOWRT

                                     0000  3100 

                                     0000  3200 LOCK_IODB::

                               003C  0000  3300 	.WORD	^M<R2,R3,R4,R5>		; SAVE REGISTERS

            50   00000000'9F     DE  0002  3400 	MOVAL	@#IOC$GL_MUTEX,R0	; GET I/O DATA BASE MUTEX

            54   00000000'9F     D0  0009  3500 	MOVL	@#SCH$GL_CURPCB,R4	; GET OWN PCB ADDRESS

                 00000000'9F     16  0010  3600 	JSB	@#SCH$LOCKW		; AND LOCK IT

                                 04  0016  3700 	RET

LOCKDB          - LOCK AND UNLOCK I/O DATA BASE                  22-AUG-1978 00:45:10   VAX-11 MACRO X0.3-11               Page   3

X0002                                                                                                                            (3)



                                     0017   100 ;++

                                     0017   200 ;

                                     0017   300 ; FUNCTIONAL DESCRIPTION:

                                     0017   400 ;

                                     0017   500 ;	THIS ROUTINE UNLOCKS THE I/O DATA BASE MUTEX.

                                     0017   600 ;

                                     0017   700 ; CALLING SEQUENCE:

                                     0017   800 ;	CALL UNLOCK_IODB ()

                                     0017   900 ;

                                     0017  1000 ; INPUT PARAMETERS:

                                     0017  1100 ;	NONE

                                     0017  1200 ;

                                     0017  1300 ; IMPLICIT INPUTS:

                                     0017  1400 ;	NONE

                                     0017  1500 ;

                                     0017  1600 ; OUTPUT PARAMETERS:

                                     0017  1700 ;	NONE

                                     0017  1800 ;

                                     0017  1900 ; IMPLICIT OUTPUTS:

                                     0017  2000 ;	NONE

                                     0017  2100 ;

                                     0017  2200 ; ROUTINE VALUE:

                                     0017  2300 ;	NONE

                                     0017  2400 ;

                                     0017  2500 ; SIDE EFFECTS:

                                     0017  2600 ;	I/O DATA BASE MUTEX UNLOCKED

                                     0017  2700 ;	IPL LOWERED TO 0

                                     0017  2800 ;

                                     0017  2900 ;--

                                     0017  3000 

                                 00000017  3100 	.PSECT	$LOCKEDC1$,NOWRT

                                     0017  3200 

                                     0017  3300 UNLOCK_IODB::

                               003C  0017  3400 	.WORD	^M<R2,R3,R4,R5>		; SAVE REGISTERS

            50   00000000'9F     DE  0019  3500 	MOVAL	@#IOC$GL_MUTEX,R0	; GET I/O DATA BASE MUTEX

            54   00000000'9F     D0  0020  3600 	MOVL	@#SCH$GL_CURPCB,R4	; AND OWN PCB ADDRESS

                 00000000'9F     16  0027  3700 	JSB	@#SCH$UNLOCK		; AND UNLOCK IT

                                     002D  3800 	SETIPL	#0			; ALSO LOWER IPL

                                 04  0030  3900 	RET

                                     0031  4000 

                                     0031  4100 

                                     0031  4200 

                                     0031  4300 	.END

LOCKDB          - LOCK AND UNLOCK I/O DATA BASE                  22-AUG-1978 00:45:10   VAX-11 MACRO X0.3-11               Page   4

SYMBOL TABLE                                                                                                                     (3)



BIT...         = 00000000            

GBL...         = 00000000            

IOC$GL_MUTEX     ********   X   03   

LOCK_IODB        00000000 RG    03   

PR$_ACCR       = 00000029            

PR$_ACCS       = 00000028            

PR$_ASTLVL     = 00000013            

PR$_ESP        = 00000001            

PR$_ICCS       = 00000018            

PR$_ICR        = 0000001A            

PR$_IPL        = 00000012            

PR$_ISP        = 00000004            

PR$_KSP        = 00000000            

PR$_MAPEN      = 00000038            

PR$_NICR       = 00000019            

PR$_P0BR       = 00000008            

PR$_P0LR       = 00000009            

PR$_P1BR       = 0000000A            

PR$_P1LR       = 0000000B            

PR$_PCBB       = 00000010            

PR$_PME        = 0000003D            

PR$_RXCS       = 00000020            

PR$_RXDB       = 00000021            

PR$_SBIER      = 00000034            

PR$_SBIFS      = 00000030            

PR$_SBIMT      = 00000033            

PR$_SBIQC      = 00000036            

PR$_SBIS       = 00000031            

PR$_SBISC      = 00000032            

PR$_SBITA      = 00000035            

PR$_SBR        = 0000000C            

PR$_SCBB       = 00000011            

PR$_SID        = 0000003E            

PR$_SIRR       = 00000014            

PR$_SISR       = 00000015            

PR$_SLR        = 0000000D            

PR$_SSP        = 00000002            

PR$_TBIA       = 00000039            

PR$_TBIS       = 0000003A            

PR$_TODR       = 0000001B            

PR$_TXCS       = 00000022            

PR$_TXDB       = 00000023            

PR$_USP        = 00000003            

PR$_WCSA       = 0000002C            

PR$_WCSD       = 0000002D            

SCH$GL_CURPCB    ********   X   03   

SCH$LOCKW        ********   X   03   

SCH$UNLOCK       ********   X   03   

UNLOCK_IODB      00000017 RG    03   





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

$LOCKEDC1$       00000031      03     NOPIC   USR   CON   REL   LCL NOSHR   EXE   RD  NOWRT BYTE  

LOCKDB          - LOCK AND UNLOCK I/O DATA BASE                  22-AUG-1978 00:45:10   VAX-11 MACRO X0.3-11               Page   5

PROGRAM SECTION SYNOPSIS                                                                                                         (3)







THERE WERE NO ERRORS OR WARNINGS.

25802. BYTES LEFT IN FREE MEMORY POOL.

720. BYTES OF RECLAIMED MEMORY.

OBJ$:LOCKDB,LIS$:LOCKDB/-SP=EXECML$/ML,M1/ML,M2/ML,SRC$:LOCKDB

27 MLB DIR RDS - 102 GETS TO DEFINE 8 MACROS. 5 INTER. FILE WRITES. 

