GDSX Manual

Design and Development
Extended General Device Support (GDSX) Manual134303
2-89
I/O Involving $RECEIVE
process ID (assigned to rcb.processid) and file number (assigned to rcb.tcp^file) of the
requester. After this data is hashed and the appropriate RCB list is searched, the proper
RCB can be located.
Among the entries in the RCB are the following:
Then rcb.tcbaddr is used to locate the proper TCB. An IOCB is allocated (if none is
currently available, the request is referred to the listener task, which may wait for an
IOCB). The IOCB is set up as follows:
rcb.link[0:1] List linkage for available RCBs and for RCBx
corresponding to the same hash bucket
rcb.iocbh Address of first IOCB (actually iocb.fcblink)
representing a request from this opener
rcb.iocbt Address of last IOCB (actually iocb.fcblink)
representing a request from this opener
rcb.tcbaddr Address of TCB for task associated with this
opener
rcb.pri^process^handle[0:9]
rcb.p^phandle[0:9]
= pri^process^handle
Process handle for primary
rcb.processid[0:3] = p^phandle C-series process ID of this opener
rcb.ppid PID of primary opener
rcb.bpid PID of backup opener (0 if none)
rcb.tcp^file = pfile Opener’s file number
rcb.flags Opener’s flags parameter
rcb.syncdepth Opener’s sync depth parameter
rcb.owner Opener’s process access ID
iocb.iocnt Count transferred from AWAITIO
iocb.cnt Read count from RECEIVEINFO
iocb.tcbaddr Address of TCB
iocb.file 0
iocb.msgtag Message tag from RECEIVEINFO
iocb.rcbaddr Address of requester control block
iocb.err 0 or FESYSMESS