Specifications

Operating System Routines
IOC$REQPCHANH, IOC$REQPCHANL, IOC$REQSCHANH, IOC$REQSCHANL
IOC$REQPCHANH, IOC$REQPCHANL,
IOC$REQSCHANH, IOC$REQSCHANL
Request a controller’s primary or secondary data channel and, if unavailable,
place process in channel wait queue.
Module
IOSUBNPAG
Macro
REQPCHAN, REQSCHAN
Input
Location Contents
R5 Address of UCB
00(SP) Return PC of caller
04(SP) Return PC of caller’s caller
UCB$L_CRB Address of CRB
CRB$L_LINK Address of secondary CRB (IOC$REQSCHANH and
IOC$REQSCHANL only)
CRB$B_MASK CRB$V_BSY set if the channel is busy
CRB$L_INTD+
VEC$L_IDB
Address of IDB
CRB$L_WQFL Head of queue of UCBs waiting for the controller
channel
CRB$L_WQBL Tail of queue of UCBs waiting for the controller
channel
IDB$L_CSR Address of device CSR
Output
Location Contents
R0, R1, R2 Destroyed
R4 Address of device CSR
IDB$L_OWNER Address of UCB
CRB$L_WQFL Updated
CRB$L_WQBL Updated
Synchronization
A driver fork process calls IOC$REQPCHANH, IOC$REQPCHANL,
IOC$REQSCHANH, or IOC$REQSCHANL holding the corresponding fork
lock in a multiprocessing environment.
3–137