Specifications
Operating System Routines
IOC$LOADTCMAP_DMA, IOC$LOADTCMAP_DMAN
IOC$LOADTCMAP_DMA, IOC$LOADTCMAP_DMAN
Load a set of TURBOchannel map registers for DMA.
Module
[DRIVER]TCDMA_PTA
Input
Inputs for both routines follow:
Location Contents
For IOC$LOADTCMAP_DMA only
R5 Address of UCB
CRB$L_INTD+
VEC$L_ADP
Address of ADP
UCB$W_BCNT Number of bytes in transfer
UCB$W_BOFF Byte offset to start of transfer in first page
UCB$L_SVAPTE System virtual address of PTE for first page of
transfer
UCB$L_CRB Address of CRB
CRB$L_INTD+
VEC$B_NUMREG
Number of map registers allocated
CRB$L_INTD+
VEC$W_MAPREG
Number of first map register allocated
For IOC$LOADTCMAP_DMAN only
R1 Address of the map register descriptor
R2 Address of ADP
R3 System virtual address (SVAPTE) of first page to
transfer
R4 Byte count of the transfer
R5 Byte offset to start of transfer in first page
Output
Outputs for both routines follow:
Location Contents
R1, R2 Destroyed
Synchronization
A driver fork process calls IOC$LOADTCMAP_DMA or IOC$LOADTCMAP_
DMAN at fork IPL, holding the corresponding fork lock (typically IOLOCK8) in
a multiprocessing environment. Either routine returns control to its caller at the
caller’s IPL. The caller retains any spinlocks it held at the time of the call.
3–99