A fix is available
APAR status
Closed as new function.
Error description
New Function
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: z/OS Language Environment users of the * * CEL4RO31 interface * * * **************************************************************** * PROBLEM DESCRIPTION: The CEL4RO31 interface has been * * enhanced to provide a subroutine load * * function. In addition, the execute * * and delete functions will handle * * subroutines. * **************************************************************** See problem description.
Problem conclusion
Temporary fix
Comments
The CEL4RO31 service has been enhanced to provide a subroutine load function. In addition, the execute and delete functions will handle subroutines. The following publication must be updated. ================================================================ z/OS Language Environment Vendor Interfaces (SA38-0688) In part Language Environment vendor interfaces for AMODE 31 and AMODE 64 interoperability In chapter Compiler-writer interfaces (CWIs) supported for AMODE 31 and AMODE 64 interoperability In section CEL4RO31 - Prepare and run programs in the AMODE 31 environment Add this paragraph, after the first paragraph and before the Syntax section: This service can perform load, query (for DLLs only), execute and delete functions. These functions can be called individually or in combination. This service can be used to run a function exported from a DLL or a fetchable subroutine. This service does not support running a C, PL/I or assembler main routine. In table Layout for RO31_CB: A fixed-length control block (1) Update field description of version field: A fullword integer which contains the version of RO31_INFO. - Version 1 provides the functions dll load, dll query, execute and delete. - Version 2 provides all the functions from version 1 plus subroutine load. CEL4RO31 will fail if reserved flags are not zero. (2) Update field description of flags field: A fullword field that contains flags to control the behavior of CEL4RO31: Byte 1 - Bit0: dll load flag - Load DLL and return handle. - Bit1: dll query flag - Locate exported function in DLL identified by handle and return function descriptor. - Bit2: function execution flag - Invoke the program identified by the func_desc field. - Bit3: delete flag - Delete the module identified by the handle field. - Bit4: subroutine load flag - Load the subroutine and return the handle and the function descriptor. This type of load is like invoking the CEEFETCH assembler macro with SCOPE=ENCLAVE and SEARCH=MVS. - Bit5-7: reserved Byte 2-Byte 4 reserved All reserved flags must be zero. (3) Change the dll_handle field name to handle. Update field description: A fullword field that contains the handle of the target program: - Output: * If the dll load flag is on, CEL4RO31 will load the target DLL and save the DLL handle in this field as output. * If the subroutine load flag is on, CEL4RO31 will load the target subroutine and save the handle in this field as output. - Input: * If the dll query flag is on, CEL4RO31 will query target function based on this DLL handle. * If the delete flag is on, CEL4RO31 will delete target module identified by this handle. (4) Update field description of func_desc field: A fullword field which contains the function descriptor of target program - Output: * If the dll query flag is on, CEL4RO31 will save the function descriptor of target program to this field as output. * If the subroutine load flag is on, CEL4RO31 will save the function descriptor of target program to this field as output. - Input: * If the function execution flag is on, CEL4RO31 will take the function descriptor of target program from this field as input. (5) Add the following return codes to the field description of retcode field: 8 - dll load flag and subroutine load flag are mutually exclusive. No processing is performed. 9 - dll query flag can not be set with subroutine load flag. No processing is performed. 10 - reserved flag bits are not all zero. No processing is performed. 11 - One or more flags are set that are not supported for the version specified. No processing is performed. 12 - The version specified is not valid. No processing is performed. 13 - Subroutine load failed. 14 - Subroutine load failed. The module is not a subroutine. 15 - Delete failed for target subroutine. 16 - Delete failed. Handle was not recognized. In figure RO31_CB flag 1 (1) Update the figure as below: '0.......'B CEL4RO31 will not load target DLL '1.......'B CEL4RO31 will load target DLL '.0......'B CEL4RO31 will not query target function '.1......'B CEL4RO31 will query target function '..0.....'B CEL4RO31 will not execute target function '..1.....'B CEL4RO31 will execute target function '...0....'B CEL4RO31 will not delete target module '...1....'B CEL4RO31 will delete target module '....0...'B CEL4RO31 will not load target subroutine '....1...'B CEL4RO31 will load target subroutine '.....000'B Reserved, must all be zero In Usage Notes: (1) Add the following new notes: - The dll load flag and subroutine load flag are mutually exclusive. Only one type of load can be requested. - The dll query flag and subroutine load flag are mutually exclusive. The dll query function requires a handle from a dll load as input.
APAR Information
APAR number
PH56800
Reported component name
LE BASE FOR Z/O
Reported component ID
568819801
Reported release
7D0
Status
CLOSED UR1
PE
NoPE
HIPER
NoHIPER
Special Attention
YesSpecatt / New Function / Xsystem
Submitted date
2023-09-07
Closed date
2023-12-06
Last modified date
2024-02-09
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UI94729 UI94730
Modules/Macros
CEELDLL CELQRO31
| SA380688XX |
Fix information
Fixed component name
LE BASE FOR Z/O
Fixed component ID
568819801
Applicable component levels
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
[{"Business Unit":{"code":"BU011","label":"Systems - zSystems software"},"Product":{"code":"SG19O"},"Platform":[{"code":"PF054","label":"z Systems"}],"Version":"7D0"}]
Document Information
Modified date:
11 February 2024