; Mesa-NovaDefs.asm; edited by Johnsson, January 18, 1978 2:21 PM
; structure of monitor locks
lockqueue = 0 ; lock: {locked, unlocked},
; queue: POINTER [0..77777B] TO PSB
; structure of PSBs ; PSB: TYPE = RECORD [
link = 0 ; link: PSBptr, -- must be 0 !!
cleanUpLink = 1 ; cleanUpLink: PSBptr,
timeout = 2 ; timeout: INTEGER
bitsandpriority = 3 ; enterfailed, detached: BOOLEAN,
; fill: [0..37B],
state = 600 ; state: {frameReady, frameTaken, dead, alive}
timeoutAllowed = 100 ; timeoutAllowed: BOOLEAN,
abortPending = 40 ; abortPending: BOOLEAN,
timeoutPending = 20 ; timeoutPending: BOOLEAN,
waitingOnCV = 10 ; waitingOnCV: BOOLEAN,
priority = 7 ; priority: [0..7],
frame = 4 ; frame: FrameHandle]
lPSB = 5
; structure of StateVector
stk0 = 0
stkp = 10
dest = 11
source = 12
lStateVector = 11.
; structure of Frame
pc = 1
; fixed addresses
SDC = 20
currentPSB = 21
readyList = 22
currentState = 23
bootPageTable = 24
Emulate = 25
oSTOP = 1
oME = 4
oMRE = 5
oMXW = 6
oMXD = 7
oNOTIFY = 10
oBCAST = 11
oREQUEUE = 12
CVA = 40 ; Array of pointers to Naked CVs
ACTIVE = 453 ; Active interrupt mask
INTPC = 500 ; Saved PC on interrupt