GDSX Manual
Service Routines
Extended General Device Support (GDSX) Manual–134303
8-45
^LISTEN
iocb returned value
INT(32):value
indicates the outcome of the operation. If a completed I/O specified by the imsg,
i-o-message, or itc-flag parameter settings was found, iocb contains the IOCB
address for the I/O. If the I/O was not found, iocb is set to 0.
imsg input
INT:value
is a flag which, if nonzero, causes ^LISTEN to look for requests from $RECEIVE.
Set to zero if you are looking for completions on other files.
i-o-message input
INT:value
indicates where ^LISTEN is to look for completed I/O operations. The value of
i-o-message is one of the following:
itc-flag input
INT:value
indicates if ^LISTEN is to look for ITC requests. The value of itc-flag is one of the
following:
Considerations
•
The structure of an IOCB is declared in the iocb^template in the DCCBDECS file.
See Appendix C for a listing of this file.
•
When receiving an IOCB from ^LISTEN, the address of the buffer used for the I/O
is located in the IOCB. The IOCB STRUCT contains an INT(32) variable bufaddrx,
which is equivalenced to two words, extaddr and bufaddr. When the buffer is in
extended memory, it can be referenced by bufaddrx. When the buffer is in local
memory, extaddr is zero, and the address is held in bufaddr.
To minimize USCODE complexity, you can consistently use either local or extended
memory. If you wish to use buffers in both areas of memory, you can determine if
-1 ^LISTEN looks for all I/Os except intertask requests and
messages from $RECEIVE
0 ^LISTEN looks for intertask requests or messages from
$RECEIVE
Positive Number The file number where ^LISTEN is to look for completed I/Os
0 ^LISTEN looks for completions on other files
Nonzero Number ^LISTEN looks for ITC requests