Specifications
Operating System Routines
EXE$ABORTIO
EXE$ABORTIO
Completes the servicing of an I/O request without returning status to the I/O
status block specified in the request.
Module
SYSQIOREQ
Input
Location Contents
R0 First longword of status for the I/O status block
R3 Address of IRP
R4 Address of current PCB
R5 Address of UCB
IRP$L_IOSB Address of I/O status block
IRP$B_RMOD ACB$V_QUOTA set indicates process-specified AST
pending
PCB$W_ASTCNT Count of available AST queue entries
Output
Location Contents
IRP$L_IOSB Zero
IRP$B_RMOD ACB$V_QUOTA clear
PCB$W_ASTCNT Incremented if ACB$V_QUOTA was set
Synchronization
EXE$ABORTIO executes at its caller’s IPL and raises to fork IPL, acquiring
the associated fork lock in a multiprocessing environment. As a result, its
caller cannot be executing above fork IPL. A driver usually transfers control to
EXE$ABORTIO at IPL$_ASTDEL.
EXE$ABORTIO exits at normal process IPL (IPL 0).
Description
EXE$ABORTIO performs the following actions:
1. Clears IRP$L_IOSB so that no status is returned by I/O postprocessing
2. Clears ACB$V_QUOTA in IRP$B_RMOD to prevent the delivery of any AST
to the process specified in the I/O request
3. Updates the count of available AST entries at PCB$W_ASTCNT, if necessary
4. Inserts the IRP in the local processor’s I/O postprocessing queue
5. If the queue is empty, requests a software interrupt from the local processor
at IPL$_IOPOST
3–12