GDSX Manual
Service Routines
Extended General Device Support (GDSX) Manual–134303
8-47
^LISTEN
Where multiple I/O operations of this type are outstanding simultaneously on a
LINE file, a loop should be executed as shown in the following example:
WHILE (@IOCB := ^LISTEN(0, LINE, 0)) DO
BEGIN
.
handle I/O completion
.
END;
•
For an intertask message (itc-flag is a nonzero value) the IOCB is as follows:
If the operation is a CONTROL:
If the operation is a SETMODE:
If the operation is a WRITE, READ, or WRITEREAD:
iocb.histag Nowait tag from when I/O was initiated
iocb.file File number
iocb.err Guardian file error
iocb.state 6 = I/O active
iocb.optype Type of operation:
1 = CONTROL
2 = SETMODE
3 = WRITE
4 = READ
5 = WRITEREAD
iocb.histag DEVICE^HANDLER’s nowait tag
iocb.tcbaddr Address of DEVICE^HANDLER’s TCB
iocb.file User task’s pseudo-file number
iocb.openid Open ID assigned by USER^START
iocb.control^op CONTROL operation (operation)
iocb.control^param Value of operation (param)
iocb.setmode^funct SETMODE function (function)
iocb.setmode^p1 SETMODE parameter (param1)
iocb.setmode^p2 SETMODE parameter (param2)
iocb.iocnt Write count if WRITE or WRITEREAD
iocb.cnt Read count if READ or WRITEREAD
iocb.bufaddr[x] Address of DEVICE^HANDLER’s buffer