Specifications

Operating System Routines
IOC$RELDATAP
IOC$RELDATAP
Releases a UNIBUS adapters buffered data path.
Module
IOSUBNPAG
Macro
RELDPR
Input
Location Contents
R5 Address of UCB
UCB$L_CRB Address of CRB
CRB$L_INTD+
VEC$L_ADP
Address of ADP
CRB$L_INTD+
VEC$B_DATAPATH
Data path specifier; VEC$V_PATHLOCK set if the
data path has been permanently allocated to the
controller
ADP$L_DPQFL Head of queue of UCBs waiting for a UNIBUS
adapter buffered data path
ADP$W_DPBITMAP Data path bit map
Output
Location Contents
R0, R1, R2 Destroyed
ADP$W_DPBITMAP Bit representing data path set if the path is not
allocated to another driver fork process
CRB$L_INTD+
VEC$B_DATAPATH
Bits 0 through 4 cleared if the path is not
permanently allocated
Synchronization
A driver fork process calls IOC$RELDATAP at fork IPL, holding the
corresponding fork lock in a multiprocessing environment. IOC$RELDATAP
returns control to its caller after resuming execution of any other fork processes
waiting for a buffered data path.
Description
A driver fork process must own a UNIBUS buffered data path when it calls
IOC$RELDATAP.
IOC$RELDATAP obtains the number of the allocated data path from bits
0 through 4 of the data path specifier. If VEC$V_PATHLOCK is set in the
specifier, the data path has been permanently allocated to the controller and
IOC$RELDATAP returns to its caller.
3–117