z/OS TSO/E REXX Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Parameters

z/OS TSO/E REXX Reference
SA32-0972-00

You can pass the address of an environment block in register 0. In register 1, you pass the address of a parameter list, which consists of a list of addresses. Each address in the parameter list points to a parameter.

The first seven parameters are required. Parameter 8 and parameter 9 are optional. The high-order bit of the last address in the parameter list must be set to 1 to indicate the end of the parameter list. If IRXINIT does not find the high-order bit set on in either the address for parameter 7 or in the address of one of the optional parameters from 8 to 11, IRXINIT does not initialize the environment and returns with a return code of 20 and a reason code of 27. See Output parameters for more information.

Table 1 describes the parameters for IRXINIT. For general information about passing parameters, see Parameter lists for TSO/E REXX routines.

Table 1. Parameters for IRXINIT
Parameter Number of bytes Description
Parameter 1 8 The function IRXINIT is to perform:
INITENVB
To initialize a new environment.
FINDENVB
To obtain the address of the environment block for the current non-reentrant environment. IRXINIT returns the address of the environment block in register 0 and in parameter 6. IRXINIT does not initialize a new environment.
CHEKENVB
To validate that a given address is a REXX ENVBLOCK address. CHEKENVB will return a return code to indicate that the ENVBLOCK address was initialized:
  • under the current task
  • under a parent task
  • elsewhere in the address space

If IRXINIT CHEKENVB was called with an incorrect ENVBLOCK address in register 0, IRXINIT will return the current, non-reentrant ENVBLOCK address in parameter 6. IRXINIT does not initialize a new environment.

Parameter 2 8 The name of a parameters module that contains the values for initializing the new environment. The module is described in Parameters module and in-storage parameter list.

If the name of the parameters module is blank, IRXINIT assumes that all fields in the parameters module are null.

IRXINIT provides two ways in which you can pass parameter values; the parameters module and the address of an in-storage parameter list, which is parameter 3. A complete description of how IRXINIT computes each parameter value and the flexibility of passing parameters is described in How IRXINIT determines what values to use for the environment.

Parameter 3 4 The address of an in-storage parameter list, which is an area in storage containing parameters that are equivalent to the parameters in the parameters module. The format of the in-storage list is identical to the format of the parameters module. Parameters module and in-storage parameter list describes the parameters module and in-storage parameter list.

For parameter 3, you can specify an address of 0 for the address of the in-storage parameter list. However, the address in the address list that points to this parameter cannot be 0.

If the address of parameter 3 is 0, IRXINIT assumes that all fields in the in-storage parameter list are null.

Parameter 4 4 The address of a user field. IRXINIT does not use or check the user field pointed to by this address. You can use this parameter and the user field to which it points for your own processing. If the value of this parameter is X'80000000', the address of the user field is inherited from the previous environment. Otherwise, the value of this parameter is used as specified. The resulting user field address is available in ENVBLOCK_USERFIELD.
Parameter 5 4 Reserved. This parameter must be set to 0, but the address that points to this parameter cannot be 0.
Parameter 6 4 IRXINIT uses this parameter for output only. The parameter contains the address of the environment block. If you use the FINDENVB function (parameter 1) to locate an environment, parameter 6 contains the address of the environment block for the current non-reentrant environment. If you use the INITENVB function (parameter 1) to initialize a new environment, IRXINIT returns the address of the environment block for the newly created environment in parameter 6.

For either FINDENVB or INITENVB, IRXINIT also returns the address of the environment block in register 0. Parameter 6 lets high-level languages obtain the environment block address to examine information in the environment block.

For CHEKENVB this parameter will return the current, non-reentrant environment if the ENVBLOCK address in register 0 is not found (that is, return code 12 is returned from IRXINIT).

Parameter 7 4 IRXINIT uses this parameter for output only. IRXINIT returns a reason code for the IRXINIT routine in this field that indicates why the requested function did not complete successfully. Table 1 describes the reason codes that IRXINIT returns.
Parameter 8 4 Parameter 8 is an optional parameter that lets you specify how REXX obtains storage in the language processor environment. Specify 0 if you want the system to reserve a default amount of storage workarea.

If you want to pass a storage workarea to IRXINIT, specify the address of an extended parameter list. The extended parameter list consists of the address (a fullword) of the storage workarea and the length (a fullword) of the workarea, followed by X'FFFFFFFFFFFFFFFF'. For more information about parameter 8 and storage, see Specifying how REXX obtains storage in the environment.

Although parameter 8 is optional, it is suggested that you specify an address of 0 if you do not want to pass a storage workarea to IRXINIT.

Parameter 9 4 A 4-byte field that IRXINIT uses to return the return code.

The return code parameter is optional. If you use this parameter, IRXINIT returns the return code in the parameter and also in register 15. Otherwise, IRXINIT uses register 15 only. If the parameter list is incorrect, the return code is returned in register 15 only. Return codes describes the return codes.

If you do not want to use the return code parameter, you can end the parameter list at a preceding parameter. Set the high-order bit on in the preceding parameter's address. For more information about parameter lists, see Parameter lists for TSO/E REXX routines.

Parameter 10 4 Parameter 10 is an optional parameter that is the address of a pointer to the TSO/E environment control table (ECT) under which the REXX environment is to be initialized.

This field is only used when initializing a REXX environment that is integrated into TSO/E. In all other cases, including initializing a non-integrated environment and finding the current environment, this parameter is ignored, if specified.

Valid values for this parameter are:
  • ECT address = the caller's current ECT
  • '00000000'X - IRXINIT assumes that the primary ECT, the ECT created at TSO/E logon time or TMP initialization, is the caller's current ECT. When this parameter contains '00000000'X upon input, the field is updated to contain the address of the primary ECT.

When parameter 10 is not specified and you are initializing a REXX environment that is integrated into TSO/E, the ECT created at TSO/E logon time or TMP initialization is assumed.

Parameter 11 4 Parameter 11 is an optional parameter that is the address of a message buffer (MSGBUF) in which IRXINIT can return an error message if IRXINIT completes with return code 20.
The MSGBUF consists of a fullword length header field (MSGHDR) followed by the message text return area (MSGTEXT). The MSGHDR word is divided into two halfword length fields:
  • The first halfword, MSGTLEN, is used by the caller to pass the length of the MSGTEXT area, excluding the length of the 4-byte header. This value is not changed by IRXINIT.
  • The second halfword, MSGRLEN, is used by IRXINIT to indicate the actual length of the message text returned in the MSGTEXT area, or 0 if none. (The caller should initialize this halfword to 0 before calling IRXINIT).

If a message buffer address is passed and IRXINIT encounters an error for which a message is returned, no message is issued by IRXINIT. Instead, IRXINIT just returns the message.

If parm11 is 0, or if this parameter is not passed because fewer than 11 parameters are passed, and if IRXINIT completes with return code 20, a message will be issued to the TSO/E user and/or to the CONSOLE containing information about the error. (This is the default for callers not using this parameter).

If the caller of IRXINIT does not want IRXINIT to issue an error message nor return a message when an error occurs, specify parm11 pointing to a buffer with a length header word of X'00000000'. This indicates a buffer of length 0 is passed, so no message will be returned and no message will be issued if an error should occur.

If a MSGBUF buffer is passed, the MSGTEXT area should be at least 124 bytes long. If the message being returned is longer than the message buffer space provided, it will be truncated to the size of the buffer provided.

Messages issued or returned by IRXINIT are not translated by MMS message processing.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014