Google
 

Trailing-Edge - PDP-10 Archives - SRI_NIC_PERM_SRC_1_19910112 - 7/ap23-mon/enqpar.mac
There are 13 other files named enqpar.mac in the archive. Click here to see a list.
; UPD ID= 8512, RIP:<7.MONITOR>ENQPAR.MAC.5,   9-Feb-88 15:20:25 by GSCOTT
;TCO 7.1218 - Update copyright date.
; UPD ID= 299, RIP:<7.MONITOR>ENQPAR.MAC.4,  16-Nov-87 15:12:46 by MCCOLLUM
;TCO 7.1138 - Put VRPA back into ENQSRV and put EQ%ENA into STG
; UPD ID= 270, RIP:<7.MONITOR>ENQPAR.MAC.3,   6-Nov-87 11:59:21 by LOMARTIRE
;TCO 7.1115 - Move VRPA to here so CFSSRV can see bit VPRTY
; UPD ID= 160, RIP:<7.MONITOR>ENQPAR.MAC.2,  19-Oct-87 17:12:32 by LOMARTIRE
;TCO 7.1072 - Add support for cluster-wide ENQ

;	COPYRIGHT (c) DIGITAL EQUIPMENT CORPORATION 1988.
;	ALL RIGHTS RESERVED.
;
;	THIS SOFTWARE IS FURNISHED UNDER A  LICENSE AND MAY BE USED AND  COPIED
;	ONLY IN  ACCORDANCE  WITH  THE  TERMS OF  SUCH  LICENSE  AND  WITH  THE
;	INCLUSION OF THE ABOVE  COPYRIGHT NOTICE.  THIS  SOFTWARE OR ANY  OTHER
;	COPIES THEREOF MAY NOT BE PROVIDED  OR OTHERWISE MADE AVAILABLE TO  ANY
;	OTHER PERSON.  NO  TITLE TO  AND OWNERSHIP  OF THE  SOFTWARE IS  HEREBY
;	TRANSFERRED.
;
;	THE INFORMATION IN THIS  SOFTWARE IS SUBJECT  TO CHANGE WITHOUT  NOTICE
;	AND SHOULD  NOT  BE CONSTRUED  AS  A COMMITMENT  BY  DIGITAL  EQUIPMENT
;	CORPORATION.
;
;	DIGITAL ASSUMES NO  RESPONSIBILITY FOR  THE USE OR  RELIABILITY OF  ITS
;	SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY DIGITAL.

	SUBTTL	ENQPAR -- Parameters for ENQ

	SEARCH MONSYM,MACSYM,PROLOG

	UNIVERSAL ENQPAR

	SALL
	Subttl	Table of Contents

;		     Table of Contents for ENQPAR
;
;				  Section		      Page
;
;
;    1. Storage for ENQ/DEQ  . . . . . . . . . . . . . . . . .   4
;        1.1    Parameter Definitions  . . . . . . . . . . . .   5
;        1.2    ENQ/DEQ Flags in ENQFLG  . . . . . . . . . . .   6
;    2. End of ENQPAR  . . . . . . . . . . . . . . . . . . . .   7
	SUBTTL	Storage for ENQ/DEQ

;Structure definitions for ENQ/DEQ.  These were formally located in ENQ.MAC

DEFSTR(ENQLJQ,0,35,36)		;BACK POINTER TO LAST Q FOR JOB
DEFSTR(ENQNJQ,1,35,36)		;FORWARD POINTER TO NEXT Q FOR JOB
DEFSTR(ENQLLQ,2,35,36)		;BACK POINTER TO LAST Q IN LOCK QUEUE
DEFSTR(ENQNLQ,3,35,36)		;FORWARD POINTER TO NEXT Q OF LOCK
DEFSTR(ENQFLG,4,11,12)		;FLAGS OF BLOCK (EITHER LOCK OR Q)
DEFSTR(ENQCHN,4,17,6)		;PSI CHANNEL #, -1 MEANS JOB BLOCKED
DEFSTR(ENQFRK,4,35,18)		;FORK NUMBER OF CREATOR OF Q-BLOCK
DEFSTR(ENQNR,5,17,18)		;# OF RESOURCES REQUESTED
DEFSTR(ENQID,5,35,18)		;ID OF ENQ REQUEST
DEFSTR(ENQLRQ,6,35,36)		;BACK POINTER TO REST OF REQUEST
DEFSTR(ENQFQ,7,35,36)		;FORWARD POINTER TO REST OF REQUEST
DEFSTR(ENQLBP,10,35,36)		;POINTER TO LOCK-BLOCK OF THIS Q
DEFSTR(ENQGRP,11,35,18)		;GROUP NUMBER OF SHARABLE REQUEST
DEFSTR(ENQJFN,12,35,18)		;JFN OF ENQ REQUEST
DEFSTR(ENQNST,12,17,18)		;NEST COUNT
DEFSTR(ENQMSK,13,35,36)		;POINTER TO MASK BLOCK

;NOTE:  ENQLHC and ENQNHC must be defined at offsets 0 and 1 to allow for
;	the fact that both ENQLST and HSHTBL are referenced with those
;	structure definitions.  Also, note that ENQLST is referenced at CHKENQ:
;	in JSYSF.MAC without the structure definition.

DEFSTR(ENQLHC,0,35,36)		;BACK POINTER TO LAST LOCK IN HASH LIST
DEFSTR(ENQNHC,1,35,36)		;FORWARD PNTR TO NEXT LOCK ON HASH LIST
;DEFSTR(ENQLLQ,2,35,36)		;BACK POINTER TO LAST Q IN LOCK QUEUE
;DEFSTR(ENQNLQ,3,35,36)		;FORWARD POINTER TO NEXT Q OF LOCK
;DEFSTR(ENQFLG,4,11,12)		;FLAGS OF BLOCK (EITHER LOCK OR Q)
DEFSTR(ENQLVL,4,35,18)		;LEVEL NUMBER OF LOCK
DEFSTR(ENQTR,5,17,18)		;TOTAL # OF RESOURCES IN POOL
DEFSTR(ENQRR,5,35,18)		;# OF RESOURCES REMAINING IN POOL
DEFSTR(ENQTS,6,35,36)		;TIME STAMP OF LAST REQUEST TO BE LOCKED
DEFSTR(ENQFBP,7,35,36)		;POINTER TO FREE Q-BLOCK
DEFSTR(ENQLT,10,35,36)		;LONG TERM LOCK LIST FOR SYSTEM
	.ENQLT==10		;OFFSET OF LOCK LIST ELEMENT
DEFSTR(ENQOFN,11,17,18)		;OFN, -2, -3, OR 400000+JOB NUMBER
DEFSTR(ENQLEN,11,35,18)		;LENGTH OF LOCK-BLOCK
DEFSTR(ENQNMS,12,17,18)		;NUMBER OF WORDS IN THE MASK BLOCK
   IFN CLEQIN,<			;[7.1072] 
DEFSTR(ENQHSH,12,35,18)		;[7.1072] HASH VALUE FOR LOCK-BLOCK
DEFSTR(ENQAFP,13,35,36)		;[7.1072] FORWARD POINTER FOR LB ACTION LIST
DEFSTR(ENQABP,14,35,36)		;[7.1072] BACKWARD POINTER FOR LB ACTION LIST
DEFSTR(ENQTXT,15,35,36)		;[7.1072] FIRST WORD OF TEXT OR USER CODE
	.ENTXT==15		;[7.1072] INDEX INTO LOCK-BLOCK FOR TEXT BLOCK
   >				;[7.1072] 
   IFE CLEQIN,<			;[7.1072] 
DEFSTR(ENQTXT,13,35,36)		;FIRST WORD OF TEXT OR USER CODE
	.ENTXT==13		;INDEX INTO LOCK-BLOCK FOR TEXT BLOCK
   >				;[7.1072] 
DEFSTR(ENQOTA,ENQQOT,8,9)	;ENQ/DEQ QUOTA
DEFSTR(ENQCNT,ENQQOT,17,9)	;COUNT OF REQUESTS QUEUED UP
	SUBTTL Storage for ENQ/DEQ -- Parameter Definitions

	QBLEN==14		;LENGTH OF Q-BLOCK
   IFN CLEQIN,<			;[7.1072] 
	LBLEN==15		;[7.1072] LENGTH OF LOCK-BLK NOT COUNTING ENQTXT
   >				;[7.1072] 
   IFE CLEQIN,<			;[7.1072] 
	LBLEN==13		;LENGTH OF LOCK-BLK NOT COUNTING ENQTXT
   >				;[7.1072] 
	ENQMXW==^D50		;MAXIMUM # OF WORDS IN TEXT STRING
   IFN CLEQIN,<			;[7.1072] If cluster ENQ support present
	ENQMFN==4		;[7.1072] MAX ENQ FUNCTION CODE
   >
   IFE CLEQIN,<			;[7.1072] If cluster ENQ support not present
	ENQMFN==3		;[7.1072] MAX ENQ FUNCTION CODE
   >
	DEQMXF==1		;MAX DEQ FUNCTION CODE
	ENQCMF==2		;MAX ENQC FUNCTION CODE
	ENQSTQ==^D50		;STANDARD ENQ/DEQ QUOTA
	.ENQRL==3		;LENGTH OF A LOCK REQUEST
	.ENQHL==2		;# OF HEADER WORDS IN ARGUMENT BLOCK
	.ENWCH==77		;FORK IS WAITING FOR CALL TO WAKFRK
	LVLLEN==11		;LENGTH OF LEVEL NUMBER FIELD
	SUBTTL Storage for ENQ/DEQ -- ENQ/DEQ Flags in ENQFLG

	EN.LB==1		;THIS IS THE LOCK-BLOCK
	EN.EXC==2		;REQUEST IS EXCLUSIVE
	EN.TXT==4		;THIS LOCK HAS A TEXT STRING IDENTIFIER
	EN.LOK==10		;THIS Q-BLOCK HAS THE LOCK LOCKED
	EN.INV==20		;THIS Q-BLOCK IS INVISIBLE
	EN.LTL==40		;LONG TERM LOCK
	EN.NOV==100		;[7.1072] No vote required for this Lock-Block
				;[7.1072] Set during caching and for -1 locks.
	EN.CLL==200		;[7.1072] This is a cluster-wide Q-Block ...
				;[7.1072] ... or a cluster-wide file Lock-Block
	EN.SDO==400		;[7.1072] Scheduling pass needed on Lock-Block
 	SUBTTL	End of ENQPAR
	END