A SERVICE OF

logo

Programming Release Notes
5.10 Privileged Data Structures Updates
5.10.5 UCB/DDB Updates
V8.2
A number of updates have been made to the UCB and DDB structures.
The list of UCBs associated with a DDB is currently a singularly linked list.
When creating and deleting a UCB, this list must be walked until the appropriate
location is found. For OpenVMS Version 8.2, UCBs are now linked to the DDB
with a double linked list. In addition, the DDB maintains a seed pointer to
where the search should start when creating a new unit to allow for faster device
creation. Drivers that manipulate their unit seed pointer in a template UCB will
not be able to take advantage of the faster device creation.
Any code that manipulates the DDB list of UCBs will no longer work correctly.
HP highly recommends that you use the provided internal routines for linking
and unlinking UCBs. Code-walking the list of UCB forward continues to work
correctly.
The UCB$W_UNIT eld is currently a 16-bit word eld. There are now 32-bits
allocated for this eld. The UCB$W_UNIT eld will still be maintained, so no
source code changes are necessary. In a future release, OpenVMS might support
larger unit numbers. This would be done only for drivers that indicate they can
support this feature.
Byte and Word elds in the terminal driver’s UCB extension are now aligned on
longword boundaries.
5.10.6 PCB$T_TERMINAL Size Increase
V8.2
The Process Control Block (PCB) structure contains a eld PCB$T_TERMINAL,
which is 8 bytes to hold the device name for an interactive process (such as
LTA123:, RTA7:, NVA456: and so forth). This eld is a counted ASCII string,
with the rst byte being the length of the string and the remaining 7 bytes
holding the device name. With a 3-letter device name, only four digits can
be used to hold the unit number, and the colon would be stripped off for unit
numbers greater than 999. For OpenVMS Version 8.2, this eld has been
increased to 16 bytes to hold device names with larger unit numbers.
If you fetch this eld using a call to $GETJPI with the JPI$_TERMINAL item
code, you are not impacted, but you might want to increase the buffer passed to
the system service to hold up to 16 bytes.
5.10.7 Per-Thread Security Impacts Privileged Code and Device Drivers
Permanent Change
The method used for attaching a security prole to an I/O Request Packet (IRP)
changed with Version 7.2.
In versions of OpenVMS prior to Version 7.2, the IRP structure contained the
address of the processwide Access Rights Block (ARB) security structure of the
requestor. Beginning with OpenVMS Alpha Version 7.2, the address of the new
security prole structure (Persona Security Block, or PSB) was added to the IRP
as a functional replacement of the ARB address.
The I/O subsystem maintains its access to the PSB through a reference counter
within the PSB. The I/O subsystem increments this reference counter at the time
of IRP creation and decrements the counter at I/O postprocessing of that IRP.
When this counter reaches zero, the PSB structure is deallocated.
5–8 Programming Release Notes