IORB (I/O Request Block Definition) Macro

The macro generates an IORB (input/output request block).

The block is generated when your program is being assembled. For the layout and contents of an IORB, see Table 1 in this topic.

Table 1. Layout and Contents of the I/O Request Block (IORB)
Offset (In Hex) Length (In Hex) Contents
0 2 Residual count (same as for a CCB; see Table 1 in the topic Format of the CCB).
2 2 Transmission information (same as for a CCB; see Table 1 in the topic Format of the CCB).
4 2 CSW status bits (same as for a CCB; see Table 1 in the topic Format of the CCB).
6 7 Reserved.
0D 3 CSW address in CSW (same as for a CCB; see Table 1 in the topic Format of the CCB).
10 10 Reserved.

The block is an alternative to the CCB: instead of specifying a CCB in the EXCP macro, the address of an IORB is given.

Format

Read syntax diagramSkip visual syntax diagramnameIORB DSECT=YES
Read syntax diagramSkip visual syntax diagramnameIORB CCW= name1,DEVICE=SYSxxx,ECB= name2,IOFLAG=(,POSTDEPOSTERRSKIPERPFORMAT1)1
Notes:
  • 1 Each option can be specified once.
Note: The operands FIXLIST and FIXFLAG are obsolete; for compatibility reasons they are, however, still accepted.

Requirements for the caller

RMODE:
24

Parameters

CCW=name1
This operand gives the name of the first CCW used with the IORB. This name must be the same as the name specified in the assembler CCW statement that builds the CCW.
DEVICE=SYSxxx
This operand specifies the logical unit for the actual I/O unit with which this IORB is associated.
DSECT=YES
If the operand is specified, it should be the only one. Any other operands that you specify are ignored and an MNOTE is generated by the assembler.

Specifying DSECT=YES causes the assembler to generate, as a DSECT structure, the IORB and the meaning of its fields.

ECB=name2
This operand specifies the address of the ECB to be posted when I/O is complete. The traffic bit (byte 2, bit 0) of the ECB must have been cleared before issuing the EXCP macro. The ECB area must be included in the fix list if the ECB operand is used.
Note: If FIXFLAG=(FIXED) is specified, the ECB must have be fixed in storage by a PFIX macro.
IOFLAG=(option,...)
A list of options can be specified which apply to I/O interrupt handling:
POSTDE
To indicate that device end is to be posted.
POSTERR
To indicate that an irrecoverable I/O error is to be accepted.
SKIPERP
To indicate that error recovery by the system is to be skipped.
FORMAT1
To indicate that the CCW is a format-1 CCW.