Specifications
System Macros Invoked by Drivers
DPTAB
DPT$M_SMPMOD Indicates that the driver has been designed to execute
within a multiprocessing environment. Use of any
of the multiprocessing synchronization macros
(DEVICELOCK/DEVICEUNLOCK, FORKLOCK
/FORKUNLOCK, or LOCK/UNLOCK) automatically
sets this flag, as long as the code using the macro
resides in the same module as the invocation of
DPTAB.
DPT$M_XPAMOD Indicates that the driver can operate on a system
with extended physical addressing. When the system
is operating with extended addressing, SYSGEN will
not load the device driver unless this bit is set.
DPT$M_XVAMOD Indicates that the driver can operate on a system
with extended virtual addressing.
ucbsize
Size in bytes of each UCB the driver-loading procedure creates for devices
supported by the driver. This required argument allows drivers to extend the
UCB to store device-dependent data describing an I/O operation. Figure 1–23
describes the system-defined extensions to the UCB and discusses how a driver
defines a device-specific extension.
[unload]
Address of the driver routine invoked by the SYSGEN RELOAD command before
it unloads an old version of the driver to load a new version. The driver-loading
procedure calls this routine before reinitializing all controllers and device units
associated with the driver.
[maxunits=8]
Maximum number of units that this driver supports on a controller. This field
affects the size of the IDB created by the driver-loading procedure. If you omit
the maxunits argument, the default is eight units. You can override the
value specified in the DPT by using the /MAXUNITS qualifier to the SYSGEN
CONNECT command.
[defunits=1]
Maximum number of UCBs to be created by SYSGEN’s AUTOCONFIGURE
command (one for each device unit to be configured). The unit numbers assigned
are zero through defunits–1.
If you do not specify the deliver argument, AUTOCONFIGURE creates the
number of units specified by defunits. If you specify the address of a unit
delivery routine in the deliver argument, AUTOCONFIGURE calls that routine
to determine whether to create each UCB automatically.
[deliver]
Address of the driver unit delivery routine. The unit delivery routine determines
which device units supported by this driver the SYSGEN AUTOCONFIGURE
command should configure automatically. If you omit the deliver argument,
the AUTOCONFIGURE command creates the number of units specified by the
defunits argument.
2–22