The LXFRE macro frees one or more linkage indexes. You cannot free a linkage index that was reserved with the SYSTEM option. (See the LXRES macro). Before issuing the LXFRE macro, disconnect all entry tables associated with the linkage index, unless you specify FORCE=YES. If you do not disconnect the entry tables and do not specify FORCE=YES, linkage indexes are not freed and the routine is abnormally terminated.
LXRES
These are the requirements for the caller:
Environmental factor | Requirement |
---|---|
Minimum authorization: | Supervisor state or PKM 0-7 |
Dispatchable unit mode: | Task or SRB |
Cross memory mode: | Any PASN, any HASN, any SASN |
AMODE: | 24- or 31-bit |
ASC mode: | Primary |
Interrupt status: | Enabled for I/O and external interrupts |
Locks: | No locks held |
Control parameters: | Must be in primary address space |
None.
None.
After the caller issues the macro, the macro might use some registers as work registers or might change the contents of some registers. When the macro returns control to the caller, the contents of these registers are not the same as they were before the macro was issued. Therefore, if the caller depends on these registers containing the same value before and after issuing the macro, the caller must save these registers before issuing the macro and restore them after the system returns control.
None.
The standard form of the LXFRE macro is written as follows:
Syntax | Description |
---|---|
name | name: Symbol. Begin name in column 1. |
␢ | One or more blanks must precede LXFRE. |
LXFRE | |
␢ | One or more blanks must follow LXFRE. |
LXLIST=lx list addr | lx list addr: RX-type address or register (2) - (12). |
ELXLIST=elx list addr | elx list addr: RX-type address or register (2) - (12). |
,FORCE=NO | Default: FORCE=NO |
,FORCE=YES | |
,RELATED=value | value: Any valid macro keyword specification. |
The parameters are explained as follows:
elx list addr specifies the address of an area that contains extended linkage index (LX) values. The first word in the list must contain the number (1 to 32) of LXs values to be freed. Each subsequent eight bytes contains an extended linkage index value in the form returned by the LXRES macro: a 4-byte sequence number followed by an LX value. If the sequence number in one of the eight-byte sections is incorrect, the system issues abend X'052' with reason code X'0216'.
052
053
See z/OS MVS System Codes for an explanation and programmer responses for this code.
When LXFRE macro returns control to your program, GPR 15 contains a hexadecimal return code and GPR 0 contains a hexadecimal reason code.
Return Code | Meaning and Action |
---|---|
00 | Meaning: The specified linkage indexes
were freed. No entry tables were connected. Action: None. |
04 | Meaning: The specified linkage indexes
were freed. Entry tables were connected, but FORCE was specified and
was successfully executed. Action: None. |
08 | Meaning: Some of the specified linkage
indexes were freed. Entry tables were connected. FORCE was specified
but one or more of the necessary disconnects failed. Action: None required. |
For examples of the use of this and other cross memory macros, see the chapter on cross memory communication in z/OS MVS Programming: Extended Addressability Guide.