GDSX Manual

Service Routines
Extended General Device Support (GDSX) Manual134303
8-50
NOTIFY^IO^COMPLETION[X]
USCODE task that created the process. Maximum length of the forwarded message
is 60 words.
NOTIFY^IO^COMPLETION[X]
When the processing for an intertask request from a sending task is completed by the
associated receiving task, a call to NOTIFY^IO^COMPLETION[X] by the receiving
task causes the IOCB to be delinked from the receiving task’s TCB and the sending task
is notified that the I/O request is complete or was canceled.
When a DEVICE^HANDLER task under a LINE initiates an I/O to the LINE, an IOCB
is automatically allocated and linked to the TCB for the task and to the FCB of the ITC
file (intertask communication file) just as it would be for a Guardian file. Also, the
IOCB is linked into the associated LINE^HANDLER task’s ITC request queue
(addressed externally by in^queue^file^num). The intertask I/O initiation is completed
by causing a LINE^HANDLER E^ITC event, assuming that the LINE^HANDLER task
has a current ^READUPDATE on its ITC file.
After the LINE^HANDLER task’s call to WAIT^EVENT returns E^ITC, the task calls
^LISTEN (0,0,1). ^LISTEN looks at the task’s ITC request queue. If the queue is not
empty, the first IOCB in the queue is delinked, its state is changed to 6 (active), and its
address is returned.
When the LINE^HANDLER task finishes the request and calls
NOTIFY^IO^COMPLETION[X], the IOCB is delinked from the TCB for the task and
queued on the completed I/O list for the task. Also, the IOCB state is changed to 5
(pending). Finally, the originating (DEVICE^HANDLER) task’s E^IOC event is
caused. This is the same action that takes place when a Guardian I/O operation
completes.
iocb input
is a pointer to an IOCB representing an intertask request from a
DEVICE^HANDLER task.
If buffer is omitted, no field of the IOCB is changed. However, if buffer is present,
iocbp.bufaddr[x] is set to the address of buffer.
CALL NOTIFY^IO^COMPLETION[X] ( iocb !
i
,[ buffer] ); !
i
INT:ref (Use with NOTIFY^IO^COMPLETION.)
INT .EXT:ref (Use with NOTIFY^IO^COMPLETIONX.)