z/OS DFSMSdfp Advanced Services
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Channel-End Appendage

z/OS DFSMSdfp Advanced Services
SC23-6861-01

This appendage is entered when a channel end (CHE), unit exception (UE) with or without channel end or when channel end with wrong-length record (WLR) occurs without any other abnormal-end conditions.

By using the return address in register 14 to return control to the system, the channel program is posted complete, and its request element is made available. In the case of unit exception or wrong-length record, the ERP is performed before the channel program is posted complete, and the IOBIOERR flag (X'04') in IOBFLAG1 is set on. The CSW status can be obtained from the IOBCSW field.

If the appendage takes care of the wrong-length record or unit exception or both, it can turn off the IOBIOERR (X'04') flag in IOBFLAG1 and return normally. The event will then be posted complete (completion code X'7F' under normal conditions, taken from the high-order byte of the IOBECBCC field). If the appendage returns normally without resetting the IOBIOERR flag to zero, the request will be routed to the associated device ERP. If the ERP could not correct the error, the ABE appendage will be entered with the completion code in IOBECBCC set to X'41'. (See the first bullet in Abnormal-End Appendage.)

You can use the following optional return addresses:
  • Contents of register 14 plus 4: The channel program is not posted complete, but its request element is made available. You can post the channel program by using the calling sequence described under the SIO appendage. This is especially useful to post an ECB other than the ECB in the input/output block.
  • Contents of register 14 plus 8: The channel program is not posted complete, and its request element is placed back on the request queue so that a channel program at the same or different address can be executed. For correct execution of the channel program, reinitialize the IOBFLAG1, IOBFLAG2, and IOBFLAG3 fields of the input/output block and set the error counts field to zero. As an added precaution, clear the IOBSENS0, IOBSENS1, and IOBCSW fields. You can change IOBSTART before returning. If the device is DASD, you can change the IOBSEEK field but the first byte must refer to an extent with the same UCB address. The system will call appendages, beginning with the SIO appendage, as if this were a new EXCP or EXCPVR request. Note that the EXCPVR page fix appendage will not be called again.
    The appendage can request that a different type of channel program be started. For example:
    • The original request was for a zHPF channel program but the device is no longer enabled for zHPF or does not support the zHPF capabilities required by the new channel program.
    • The original request was for a non-zHPF channel program but the new I/O request allows a zHPF channel program to be used.
    The channel program type may be changed from non-zHPF to zHPF only if the caller passed an IOBE to EXCP. If the channel program type is changed, the appendage must set or reset the IOBEFMT1 and IOBEZHPF bits correctly to reflect the type of channel program. For example, if the original channel program was a format-1 CCW channel program and the new channel program is a zHPF channel program, then the IOBEFMT1 bit must be reset and the IOBEZHPF bit must be set.
  • Contents of register 14 plus 12: The channel program is not posted complete, and its request element is not made available. (Use this return only if the appendage has passed the request queue element to the exit effector for use in scheduling an asynchronous routine. For information on asynchronous exit routines, see z/OS MVS Programming: Authorized Assembler Services Guide.)

Registers 10 through 13 in a CHE appendage can be used without saving and restoring their contents.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014