Specifications
Operating System Routines
IOC$ALOVMEMAP_PIO
IOC$ALOVMEMAP_PIO
Alocates a set of VME PIO map registers.
Module
[DRIVER]VMEPIO_XMI, VMEPIO_TC
Input
Location Contents
R3 Number of map registers to allocate
UCB$L_CRB Address of CRB
CRB$L_INTD+
VEC$L_ADP
Address of ADP
ADP$W_MR2NREGAR,
ADP$W_MR2FREGAR,
ADP$L_MR2ACTMDR
Map register descriptor arrays
Output
Location Contents
R0 SS$_NORMAL or SS$_INSFMAPREG
R1 Destroyed
R2 Address of ADP
CRB$L_INTD+
VEC$B_NUMALT
Number of map registers allocated.
ADP$W_MR2NREGAR,
ADP$W_MR2FREGAR,
ADP$L_MR2ACTMDR
Updated
Synchronization
The caller of IOC$ALOVMEMAP_PIO must be executing at fork IPL or above
and must hold the corresponding fork lock in a multiprocessing environment.
IOC$ALOVMEMAP_PIO returns control to its caller at the caller’s IPL. The
caller retains any spinlocks it held at the time of the call.
Description
IOC$ALOVMEMAP_PIO allocates a contiguous set of VME PIO map registers
and records the allocation in the VMEbus adapter ADP and CRB.
IOC$ALOVMEMAP_PIO searches the map register descriptor arrays for the
required number of map registers. If there are not enough contiguous map
registers available, the routine returns an error status of SS$_INSFMAPREG to
its caller.
3–79