Specifications
Data Structures
1.19 Unit Control Block (UCB)
The driver-loading procedure initializes some static UCB fields when it creates
the block. The operating system and the device drivers can read and modify all
nonstatic fields of the UCB. The UCB fields that are present for all devices are
illustrated in Figure 1–23 and described in Table 1–22. The length of the basic
UCB is defined by the symbol UCB$K_LENGTH.
Figure 1–22 Composition of Extended Unit Control Blocks
ZK−6620−GE
(UCB$K_ERL_LENGTH)
ExtensionError Log
(UCB$K_MB_LENGTH)
ExtensionMailbox
(UCB$K_NI_LENGTH)
NI Extension
(UCB$K_LCL_TAPE_LENGTH)
ExtensionLocal Tape
(UCB$K_LCL_DSK_LENGTH)
Local Disk Extension
ExtensionMSCP Disk/Tape
UCB$K_MSCP_TAPE_LENGTH)
(UCB$K_MSCP_DISK_LENGTH,
Legend:
Bold boxes indicate UCB extensions
reserved for Digital.
Extension
MailboxNetwork
Base UCB
(UCB$K_LENGTH)
(UCB$K_2P_LENGTH)
ExtensionDual−Path
Extension
DriverTerminal
A device driver can further extend a UCB by using the $DEFINI, $DEF,
$DEFEND, and _VIELD macros. For instance:
$DEFINI UCB
.=UCB$K_LCL_DISK_LENGTH
$DEF UCB$W_XX_FIELD1 .BLKW 1
$DEF UCB$W_XX_FIELD2 .BLKW 1
$DEF UCB$L_XX_FLAGS .BLKL 1
_VIELD UCB,0,<-
<XX_BIT1,,M>,-
<XX_BIT2,,M>,-
>
$DEF UCB$K_XX_LENGTH
$DEFEND UCB
1–84