The exec block (EXECBLK)

The exec block (EXECBLK) is a control block that describes the exec to be loaded. If the exec is not preloaded, you must build the exec block and pass the address in parameter 1 on the call to IRXEXEC. You need not pass an exec block if the exec is preloaded.

Note: If you want to preload the exec, you can use the system-supplied exec load routine IRXLOAD or your own exec load replaceable routine (see Exec load routine).

TSO/E provides a mapping macro IRXEXECB for the exec block. The mapping macro is in SYS1.MACLIB. Table 1 describes the format of the exec block.

Table 1. Format of the exec block (EXECBLK)
Offset (decimal) Number of bytes Field name Description
0 8 ACRYN An eight-character field that identifies the exec block. It must contain the character string ‘IRXEXECB’.
8 4 LENGTH Specifies the length of the exec block in bytes.
12 4 Reserved.
16 8 MEMBER Specifies the member name of the exec if the exec is in a partitioned data set. If the exec is in a sequential data set, this field must be blank.
24 8 DDNAME Specifies the name of the DD from which the exec is loaded. An exec cannot be loaded from a DD that has not been allocated. The ddname you specify must be allocated to a data set containing REXX execs or to a sequential data set that contains an exec.

If this field is blank, the exec is loaded from the DD specified in the LOADDD field of the module name table (see Module name table). The default is SYSEXEC.

32 8 SUBCOM Specifies the name of the initial host command environment when the exec starts running.

If this field is blank, the environment specified in the INITIAL field of the host command environment table is used. For TSO/E and ISPF, the default is TSO. For a non-TSO/E address space, the default is MVS™. The table is described in Host command environment table.

40 4 DSNPTR Specifies the address of a data set name that the PARSE SOURCE instruction returns. The name usually represents the name of the exec load data set. The name can be up to 54 characters long (44 characters for the fully qualified data set name, 8 characters for the member name, and 2 characters for the left and right parentheses).

If you do not want to specify a data set name, specify an address of 0.

44 4 DSNLEN Specifies the length of the data set name that is pointed to by the address at offset +40. The length can be 0-54. If no data set name is specified, the length is 0.
48 4 EXTNAME_PTR Pointer to the extended execname. This field can be used to pass an execname if greater than eight characters. For example, this field may be used to pass pathname/filename of a UNIX file to a replaceable load routine that handles UNIX file system files (This name is not used by the TSO/E REXX load routine.)

(This field is only valid if PTF for APAR OW28404 is applied.)

52 4 EXTNAME_LEN Length of the extended name pointed to by EXTNAME_PTR, or 0 if no extended name is specified. The maximum length of an extended name is 4096 (x'1000'). Any length larger than this maximum value should be treated as 0 (that is, as no extended name specified).
56 8 Reserved

An exec cannot be loaded from a data set that has not been allocated. The ddname you specify (at offset +24 in the exec block) must be allocated to a data set containing REXX execs or to a sequential data set that contains an exec.

The fields at offset +40 and +44 in the exec block are used only for input to the PARSE SOURCE instruction and are for informational purposes only.

Loading of the exec is done as follows:
  • If the exec is preloaded, loading is not performed.
  • If you specify a ddname in the exec block, IRXEXEC loads the exec from that DD. You also specify the name of the member in the exec block.
  • If you do not specify a ddname in the exec block, IRXEXEC loads the exec from the DD specified in the LOADDD field in the module name table for the language processor environment (see Module name table). The default is SYSEXEC. If you customize the environment values TSO/E provides or use the initialization routine IRXINIT, the DD may be different. See Language processor environments for customizing information.