Specifications

Operating System Routines
IOC$APPLYECC
IOC$APPLYECC
Applies an ECC correction to data transferred from a disk device into memory.
Module
IOSUBRAMS
Input
Location Contents
R0 Number of bytes of data that have been transferred,
not including the block to be corrected; this must be
a multiple of 512 bytes
R5 Address of UCB
UCB$W_BCNT Length of transfer in bytes
UCB$W_EC1 Starting bit number of the error burst
UCB$W_EC2 Exclusive OR correction pattern
UCB$L_SVPN Address of system PTE for a page that is available
for use by driver
UCB$L_SVAPTE System virtual address of PTE that maps the
transfer
Output
Location Contents
R0, R1, R2 Destroyed
UCB$W_DEVSTS UCB$V_ECC set to indicate that an ECC correction
was made
Synchronization
IOC$APPLYECC executes at the callers IPL, obtains no spinlocks, and returns
control to its caller at its callers IPL.
Description
IOC$APPLYECC corrects data transferred from a disk device to memory by
performing an exclusive-OR operation on the data and applying a correction
pattern from the UCB. IOC$APPLYECC also sets a UCB bit (UCB$V_ECC in
UCB$W_DEVSTS) to indicate that it has made an ECC correction.
Note that, to use this routine, the driver must define the local UCB disk
extension, as described in Section 1.19.
3–85