Specifications
Device Driver Entry Points
Cloned UCB Routine
Cloned UCB Routine
Performs device-specific initialization and verification of a cloned UCB.
Specified in
Specify the address of a cloned UCB routine in the cloneducb argument of the
DDTAB macro. The macro places this address into DDT$L_CLONEDUCB. Only
drivers for template devices, such as mailboxes, specify a cloned UCB routine.
Called by
EXE$ASSIGN calls the driver’s cloned UCB routine when an Assign I/O Channel
system service request ($ASSIGN) specifies a template device (that is, bit
UCB$V_TEMPLATE in UCB$L_STS is set).
Synchronization
A cloned UCB routine executes at IPL$_ASTDEL, holding the I/O database mutex
(IOC$GL_MUTEX).
Context
A cloned UCB routine executes in kernel mode in process context.
Register usage
A cloned UCB routine must preserve the contents of R2 and R4.
Input
Location Contents
R0 SS$_NORMAL
R2 Address of cloned UCB
R3 Address of DDT
R4 Address of current PCB
R5 Address of template UCB
UCB$L_FQFL(R2) Address of UCB$L_FQFL(R2)
UCB$L_FQBL(R2) Address of UCB$L_FQFL(R2)
UCB$L_FPC(R2) 0
UCB$L_FR3(R2) 0
UCB$L_FR4(R2) 0
UCB$W_BUFQUO(R2) 0
UCB$L_ORB(R2) Address of cloned ORB
UCB$L_LINK(R2) Address of next UCB in DDB chain
UCB$L_IOQFL(R2) Address of UCB$L_IOQFL(R2)
UCB$L_IOQBL(R2) Address of UCB$L_IOQFL(R2)
UCB$W_UNIT(R2) Device unit number
4–6