Specifications

3
Allocating Map Registers and Other Counted
Resources
Because AXP systems do not support the UNIBUS, Q22–bus, and MASSBUS
adapters, the OpenVMS AXP operating system does not provide the following
adapter-specific routines and macros that allocate and manage adapter map
registers:
IOC$ALOALTMAP, IOC$ALOALTMAPN, and IOC$ALOALTMAPSP
IOC$ALOUBAMAP and IOC$ALOUBAMAPN
IOC$LOADALTMAP (LOADALT macro)
IOC$LOADMBAMAP (LOADMBA macro)
IOC$LOADUBAMAP and IOC$LOADUBAMAPA (LOADUBA macro)
IOC$RELALTMAP (RELALT macro)
IOC$RELMAPREG (RELMPR macro)
IOC$REQALTMAP (REQALT macro)
IOC$REQMAPREG (REQMPR macro)
Instead, for AXP I/O subsystems that provide map registers, such as the
TURBOchannel I/O processor for DEC 3000 AXP Model 500 systems, OpenVMS
AXP provides a set of a routines that can manage the allocation of any resource
that shares the following attributes of a set of map registers:
The resource consists of an ordered set of items.
The allocator can request one or more items. When requesting multiple
items, the requester expects to receive a contiguous set of items. Thus,
allocated items can be described by a starting number and a count.
Allocation and deallocation of the resource are common operations and, thus,
must be efficient and quick.
A single deallocation may allow zero or more stalled allocation requests to
proceed.
OpenVMS VAX systems record information relating to the availability and use of
map registers in a set of arrays and fields within the adapter control block (ADP).
OpenVMS AXP employs two new data structures for this purpose:
•Acounted resource allocation block (CRAB), created by the OpenVMS
adapter initialization routine, that describes a specific counted resource. The
routine stores the address of the CRAB associated with a given adapter in
ADP$L_CRAB.
3–1