Specifications
Operating System Routines
IOC$ALOXBIMAP, IOC$ALOXBIMAPN
Description
IOC$ALOXBIMAP and IOC$ALOXBIMAPN allocate a contiguous set of XBI+
map registers and record the allocation in the ADP and CRB. These routines
differ in the way in which they determine the number and location of the map
registers they allocate:
• IOC$ALOXBIMAP calculates the number of map registers required using the
values contained in UCB$W_BCNT and UCB$W_BOFF.
• IOC$ALOXBIMAPN uses the value in R3 as the number of required registers.
If an odd number of map registers is required, these routines round up this value
to an even multiple of 64.
If XBI+ map registers have been permanently allocated to the controller,
IOC$ALOXBIMAP and IOC$ALOXBIMAPN return a success status indicator
(SS$_NORMAL) without allocating the requested map registers. Otherwise, they
search for the required number of map registers, returning SS$_NORMAL when
they are found. If there are not enough contiguous XBI+ map registers available,
the routines return an error status indicator (SS$_INSFMAPREG).
Device drivers generally obtain XBI+ map registers by calling routine
IOC$REQXBI which calls IOC$ALOXBIMAP to do the actual allocating. If
registers are not available, IOC$REQXBI places the process on the map register
wait queue and does not return to the caller until sufficient registers have been
allocated.
3–82