[fa.info-vax] Cancelling another process' I/O request

info-vax@ucbvax.ARPA (07/16/85)

From: GKN%OAK.SAINET.MFENET@LLL-MFE.ARPA




Umm, er, ah... boy, does my foot taste good!

As it turns out, if you're willing to ignore FCP/ACP type I/O requests
you CAN cancel another process' current I/O request.  What you have to
do amounts to not a whole lot of code:

        Locate the UCB of the device for which you wish to cancel I/O
        SETIPL to UCB$B_FIPL
        Grab UCB$L_IRP and stick it in R3
        Grab the channel index out of the IRP and stick it in R2
        Grab the PCB out of the IRP and stick it in R4
        Stick your favorite reason code in R8 (CAN$C_CANCEL or _DASSGN)
        Call the driver's cancel I/O routine (DDT$L_CANCEL)

IOC$IOPOST takes care of the stuff that requires process context, as it
turns out.  Oh well, I learned something new this time.

gkn

------------------------------------------
Arpa:   GKN%OAK.SAInet@LLL-MFE
USPS:   Gerard K. Newman
        Science Applications International
        800 Oak Ridge Turnpike
        Oak Ridge, TN 37830
AT&T:   (615) 482-9031