Format of the REXX vector of external entry points
The REXX vector of external entry points is a control block that contains the addresses of REXX programming routines and replaceable routines. The environment block points to the vector. Table 1 shows the format of the vector of external entry points. TSO/E provides a mapping macro, IRXEXTE, for the vector. The mapping macro is in SYS1.MACLIB.
The vector allows you to easily access the address of a particular TSO/E REXX routine to call the routine. The table contains the number of entries in the table followed by the entry points (addresses) of the routines.
Each REXX external entry point has an alternate entry point to permit FORTRAN programs to call the entry point. The external entry points and their alternates are:
| Primary entry point name | Alternate entry point name |
|---|---|
| IRXINIT | IRXINT |
| IRXLOAD | IRXLD |
| IRXSUBCM | IRXSUB |
| IRXEXEC | IRXEX |
| IRXINOUT | IRXIO |
| IRXJCL | IRXJCL (same) |
| IRXRLT | IRXRLT (same) |
| IRXSTK | IRXSTK (same) |
| IRXTERM | IRXTRM |
| IRXIC | IRXIC (same) |
| IRXUID | IRXUID (same) |
| IRXTERMA | IRXTMA |
| IRXMSGID | IRXMID |
| IRXEXCOM | IRXEXC |
| IRXSAY | IRXSAY (same) |
| IRXERS | IRXERS (same) |
| IRXHST | IRXHST (same) |
| IRXHLT | IRXHLT (same) |
| IRXTXT | IRXTXT (same) |
| IRXLIN | IRXLIN (same) |
| IRXRTE | IRXRTE (same) |
For the replaceable routines, the vector provides two addresses for each routine. The first address is the address of the replaceable routine the user supplied for the language processor environment. If a user did not supply a replaceable routine, the address points to the default system routine. The second address points to the default system routine. Replaceable routines and exits describes replaceable routines in detail.
| Offset (decimal) | Number of bytes | Field name | Description |
|---|---|---|---|
| 0 | 4 | ENTRY_COUNT | The total number of entry points included in the vector. The number is 26. |
| 4 | 4 | IRXINIT | The address of the initialization routine, IRXINIT. |
| 8 | 4 | LOAD_ROUTINE | The address of the user-supplied exec load replaceable routine for the language processor environment. This is the routine that is specified in the EXROUT field of the module name table. If a replaceable routine is not specified, the address points to the system-supplied exec load routine, IRXLOAD. |
| 12 | 4 | IRXLOAD | The address of the system-supplied exec load routine, IRXLOAD. |
| 16 | 4 | IRXEXCOM | The address of the variable access routine, IRXEXCOM. |
| 20 | 4 | IRXEXEC | The address of the exec processing routine, IRXEXEC. |
| 24 | 4 | IO_ROUTINE | The address of the user-supplied I/O replaceable routine for the language processor environment. This is the routine that is specified in the IOROUT field of the module name table. If a replaceable routine is not specified, the address points to the system-supplied I/O routine, IRXINOUT. |
| 28 | 4 | IRXINOUT | The address of the system-supplied I/O routine, IRXINOUT. |
| 32 | 4 | IRXJCL | The address of the IRXJCL routine. |
| 36 | 4 | IRXRLT | The address of the IRXRLT (get result) routine. |
| 40 | 4 | STACK_ROUTINE | The address of the user-supplied data stack replaceable routine for the language processor environment. This is the routine that is specified in the STACKRT field of the module name table. If a replaceable routine is not specified, the address points to the system-supplied data stack routine, IRXSTK. |
| 44 | 4 | IRXSTK | The address of the system-supplied data stack handling routine, IRXSTK. |
| 48 | 4 | IRXSUBCM | The address of the host command environment routine, IRXSUBCM. |
| 52 | 4 | IRXTERM | The address of the termination routine, IRXTERM. |
| 56 | 4 | IRXIC | The address of the trace and execution control routine, IRXIC. |
| 60 | 4 | MSGID_ROUTINE | The address of the user-supplied message ID replaceable routine for the language processor environment. This is the routine that is specified in the MSGIDRT field of the module name table. If a replaceable routine is not specified, the address points to the system-supplied message ID routine, IRXMSGID. |
| 64 | 4 | IRXMSGID | The address of the system-supplied message ID routine, IRXMSGID. |
| 68 | 4 | USERID_ROUTINE | The address of the user-supplied user ID replaceable routine for the language processor environment. This is the routine that is specified in the IDROUT field of the module name table. If a replaceable routine is not specified, the address points to the system-supplied user ID routine, IRXUID. |
| 72 | 4 | IRXUID | The address of the system-supplied user ID routine, IRXUID. |
| 76 | 4 | IRXTERMA | The address of the termination routine, IRXTERMA. |
| 80 | 4 | IRXSAY | The address of the SAY instruction routine, IRXSAY. |
| 84 | 4 | IRXERS | The address of the external routine search routine, IRXERS. The IRXERS routine is a REXX compiler programming routine and is described in z/OS TSO/E Customization. |
| 88 | 4 | IRXHST | The address of the host command search routine, IRXHST. The IRXHST routine is a REXX compiler programming routine and is described in z/OS TSO/E Customization. |
| 92 | 4 | IRXHLT | The address of the halt condition routine, IRXHLT. |
| 96 | 4 | IRXTXT | The address of the text retrieval routine, IRXTXT. |
| 100 | 4 | IRXLIN | The address of the LINESIZE built-in function routine, IRXLIN. |
| 104 | 4 | IRXRTE | The address of the exit routing routine, IRXRTE. The IRXRTE routine is a REXX compiler programming routine and is described in z/OS TSO/E Customization. |