Specifications

Operating System Routines
IOC$PURGDATAP
IOC$PURGDATAP
Purges the buffered data path and logs memory errors that may have occurred
during an I/O transfer.
Module
[SYSLOA]LIOSUBxxx
Macro
PURDPR
Input
Location Contents
R5 Address of UCB
Output
Location Contents
R0 Bit 0 set if success, clear if failure
R1 Contents of data path after purge
R2 Address of start of the I/O bus map registers
R3 Address of CRB
Synchronization
The caller of IOC$PURGDATAP may be executing at fork IPL or above and must
hold the corresponding fork lock in a multiprocessing environment. It returns
control to its caller at the caller’s IPL. The caller retains any spinlocks it held at
the time of the call.
Description
All device drivers that support DMA transfers, including those on VAX
systems that have no buffered data paths (such as the MicroVAX systems),
call IOC$PURGDATAP after a data transfer.
IOC$PURGDATAP performs the following tasks:
Obtains the start of adapter register space using the following chain of
pointers:
UCB$L_CRB CRB$L_INTD+VEC$L_ADP ADP$L_CSR
Extracts the callers data path number (buffered or direct) from the CRB.
Purges the data path if it is a buffered data path. Note that a purge of a
direct data path (data path 0) is legal and always results in success status.
3–112