Chapter Contents

Previous

Next
Inter-User Communications Vehicle (IUCV) Functions

IUCV Communications Overview

IUCV is a communications facility that enables programs running in a virtual machine to communicate with programs in other virtual machines. An IUCV program also can send data to or receive data from a CP system service or communicate asynchronously with itself. IUCV allows any amount of data to be transferred during a single transaction.

IUCV transfers data in blocks known as messages. Messages travel from a source communicator to a target communicator along a route called the message path. Each communicator can have many paths and can be a source communicator on some paths and a target communicator on others simultaneously.

When you write a program that permits IUCV communication, you invoke IUCV functions to perform the following basic IUCV tasks:

Additional IUCV functions also perform these tasks:

IUCV recognizes no entity smaller than a virtual machine. In order for several programs in a CMS virtual machine to use IUCV at the same time, CMS provides supporting IUCV routines that manage IUCV paths and route messages to the responsible programs. CMS IUCV maintains a table of IUCV programs and associates a name (provided by the program) with each IUCV path active in the virtual machine.

Programs written in assembler invoke IUCV functions via an instruction known as the IUCV macro instruction. The IUCV macro instruction specifies the IUCV function requested and a parameter list that contains the information needed to perform it. CMS IUCV services are provided by two assembler macros called HNDIUCV and CMSIUCV. HNDIUCV provides support for IUCV initialization and termination. CMSIUCV handles the connection to the communicating program. The CMSIUCV and HNDIUCV macros require that the program provide a name for CMS to use to keep track of IUCV paths. If a CMS IUCV macro in turn invokes an IUCV macro instruction, an IUCV parameter list also is required.

All SAS/C IUCV functions invoke either the IUCV macro instruction or one of the CMS IUCV macros. When a SAS/C function uses CMS IUCV support, the program must provide a name parameter and possibly an IUCV parameter list. When a SAS/C function invokes the IUCV macro instruction directly, the IUCV parameter list must be provided.

The SAS/C functions are described in detail in the following pages, including specification of their parameters and the CMS IUCV service or IUCV macro invoked. The <cmsiucv.h> header file, providing structure definitions for the IUCV parameter lists and external interrupt data, also is described.

To summarize the IUCV functions and tasks involved, the following table shows IUCV functions as implemented by the library. Listing the macro and parameter involved in the function call illustrates how the library interfaces with IUCV and CMS.

SAS/C Function Purpose IUCV or CMS Macro
iucvset Initialize IUCV communications Invoke HNDIUCV macro with SET parameter
iucvacc Accept a pending connection Invoke CMSIUCV macro with ACCEPT parameter
iucvconn Request that a path be established Invoke CMSIUCV macro with CONNECT parameter
iucvsevr Terminate an existing path Invoke CMSIUCV macro with SEVER parameter
iucvclr Terminate IUCV communications Invoke HNDIUCV macro with CLR parameter
iucvrply Respond to a message Invoke the IUCV macro instruction for REPLY
iucvrecv Accept a message Invoke the IUCV macro instruction for function RECEIVE
iucvrej Refuse a message Invoke the IUCV macro instruction for function REJECT
iucvsend Send a message Invoke the IUCV macro instruction for function SEND
iucvqs Temporarily suspend communication Invoke the IUCV macro instruction for function QUIESCE
iucvresm Restore communication after a QUIESCE Invoke the IUCV macro instruction for function RESUME
iucvtcmp Determine if a message has been completed Invoke the IUCV macro instruction for function TEST COMPLETION
iucvpurg Terminate a message Invoke the IUCV macro instruction for function PURGE


Chapter Contents

Previous

Next

Top of Page

Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.