The CCW channel program you supply is composed of CCWs on doubleword
boundaries. Each channel command word specifies a command to be executed
and, for data transfer commands, the source or destination area. CCW
operation codes are described in the IBM® publications
for each I/O device.
You can specify both data chaining and command chaining by setting
applicable chaining bits in the channel command word and indicating
the type of chaining in the IOB. If an I/O error occurs while your
channel program executes, the corresponding chaining bits in the IOB
need to be set. Otherwise, error recovery could be impossible. The
integrity of your data could be compromised. (See Input/Output Block (IOB) Fields for additional information.) If
you specify both data and command chaining in the same channel command
word, data chaining takes precedence.
The location of the CCWs, IDALs, MIDALs and I/O buffers in virtual
and central storage depend on whether you are using EXCP or EXCPVR,
whether you are using format 0 or 1 CCWs, and whether the device supports
64-bit IDALs or MIDALs. In particular:
- When you use format-0 CCWs, the CCWs and the storage areas pointed
to by the CCWs (IDALs, MIDALs, or I/O buffers) must be in 24-bit storage.
Otherwise, you can use 31-bit storage.
- When the CCW points to an indirect address list (IDAL), each indirect
address list word (IDAW) in the list points to a 31-bit or 64-bit
I/O buffer, depending on whether 31-bit or 64-bit IDAWs are used and
whether the device supports 64-bit IDAWs. 64-bit IDAWs are only supported
for disk and tape devices.
- When the CCW points to a modified indirect address list (MIDAL),
each modified indirect address word (MIDAW) in the list points to
a 64-bit I/O buffer. MIDAWs are only supported for EXCPVR requests
for disk devices and only when running on an IBM System z9® or higher processor.
- For EXCP requests, the system translates your virtual channel
program into a real channel program. During the translation process,
the CCWs are copied to fixed storage, IDALs are created, and the I/O
buffers are page fixed. Therefore, the storage restrictions mentioned
above apply only to the virtual storage locations of the CCWs and
IDALs; the CCWs and IDALs may reside anywhere in central storage.
However, if the I/O buffer resides in 64-bit central storage, the
device must support 64-bit IDAWs or else the system fails the EXCP
request.
- Because the system does translate your channel program for an
EXCPVR request, the storage restrictions mentioned above apply to
both virtual and central storage. For example, if format-0 CCWs are
used, the CCWs and the storage areas pointed to by the CCWs (IDALs,
MIDALs, or I/O buffers) must be in 24-bit virtual and central storage.
However, the IDALS and MIDALS can still point above
the 16MB line.
The following table summarizes the channel program storage requirements
for different types of CCW channel programs:
Table 1. Storage area locations for CCW channel program componentsRequest and format |
Channel Program Component |
Virtual storage location |
Central storage location |
---|
EXCP format
0 |
CCW |
24-bit |
Any |
IDAL |
24-bit |
Any |
I/O Buffer |
- 24-bit if pointed to by CCW
- 31 or 64-bit if pointed to by an IDAW
|
Any |
EXCP format
1 |
CCW |
31-bit |
Any |
IDAL |
31-bit |
Any |
I/O Buffer |
- 31-bit if pointed to by CCW
- 31 or 64-bit if pointed to by an IDAW or MIDAW
|
Any |
EXCPVR
format 0 |
CCW |
24-bit |
24-bit |
IDAL |
24-bit |
24-bit |
MIDAL |
24-bit |
24-bit |
I/O Buffer |
- 24-bit if pointed to by CCW
- 31 or 64-bit if pointed to by an IDAW or MIDAW
|
- 24-bit if pointed to by CCW
- 31 or 64-bit if pointed to by an IDAW or MIDAW
|
EXCPVR
format 1 |
CCW |
31-bit |
31-bit |
IDAL |
31-bit |
31-bit |
MIDAL |
31-bit |
31-bit |
I/O Buffer |
- 31-bit if pointed to by CCW
- 31 or 64-bit if pointed to by an IDAW or MIDAW
|
- 31-bit if pointed to by CCW
- 31 or 64-bit if pointed to by an IDAW or MIDAW
|