Comments from MUSIC/SP source module $sys:iucv.s : * * IUCV - MUSIC IUCV INTERFACE AND TCP/IP (SOCKETS) SUPPORT * * This module handles the IUCV requests from applications, keeps * track of what application owns a conversation and passes the * external interrupts to the appropriate application. * * During system initialization, a DECLARE_BUFFER is issued to * define MUSIC's IUCV external interrupt buffer. There is only * one of these for the MUSIC virtual machine. When a task issues * a DECLARE_BUFFER to initiate IUCV, it is basically treated as a * NOP operation. When an external interrupt arrives that applies * to that task, the interrupt handler passes the information to * task via the inter-task communications queue. This information * can be retrieved using the QRD routine. This handling of the * external interrupt buffer data makes the MUSIC implimentation * a bit different from CMS. * * When a task issues a CONNECT function the assigned PATHID is * saved with the TCB number the PATHID_TABLE. When an external * interrupt occurs, this table is used to find the TCB number of * MUSIC task that is to receive the interrupt information. * * If an outside task is to initiate a connection with a MUSIC task * it must know the resource name associated with the MUSIC task. * The MUSIC task sets the resource name in the ENQ table. So when * an interrupt comes in requesting a connection, the TCB number of * MUSIC task is retrieved from the ENQ_TABLE. * * In addition to executing the IUCV instructions and passing on * interrupts this module must also deal with MUSIC's virtual * storage. The request parameters are copied from the user region * to system storage before the request is made. The results are * copied back afterwards. If a request involves data buffers, * these are allocated in the system area and the virtual addresses * replaced by real addresses. Once the request is complete, the * data is copied to the user's virtual storage. * * * Note on addresses passed to IUCV: * All addresses passed to VM IUCV (registers, in parm list, * in address lists, etc.) must be REAL addresses (i.e. real to * MUSIC). * * * Assumptions and Limitations of this Support * ------------------------------------------- * * This module does not support general IUCV. It supports * what is needed for communication between MUSIC and the TCPIP * virtual machine, for support of TCP/IP socket routines. * This is mainly IUCV Connect, Send, and Sever requests. * For TCP/IP, MUSIC acts as the "source communicator". * Some other IUCV requests may work, but have not been tested. *