__CEEYSORT — call DFSORT for AMODE 64 applications
Purpose
This CWI interface establishes an exit DSA and call DFSORT.
Syntax
void __CEEYSORT (__sort_plist_t *sort_plist, int32_t *ret_code [_FEEDBACK *fc])
- sort_plist
- The address of the parameter list that is used to build the 64-bit Invocation Parameter List
that is passed to DFSORT. It externalizes only those parameters that Language Environment externalizes. The other DFSORT parameters are
set by __CEEYSORT.
The parameter list contains the following fields:
- int64_t __sort_version
- Version of sort_plist, must be 1.
- __sort_e15_t *__sort_e15
- Address of the function descriptor for the routine that Language Environment must call during the DFSORT E15 user exit, or zero. When this value is nonzero, Language Environment will specify an AMODE 64 E15 user exit in the DFSORT 64-bit invocation parameter list.
- __sort_e32_t *__sort_e32
- Address of the function descriptor for the routine that Language Environment must call during the DFSORT E32 user exit, or zero. When this value is nonzero, Language Environment will specify an AMODE 64 E32 user exit in the DFSORT 64-bit invocation parameter list.
- __sort_e35_t *__sort_e35
- Address of the function descriptor for the routine that Language Environment must call during the DFSORT E35 user exit, or zero. When this value is nonzero, Language Environment will specify an AMODE 64 E35 user exit in the DFSORT 64-bit invocation parameter list.
- char *__sort_ctl
- Address of control statement area, or zero. This value is copied unchanged into the DFSORT 64-bit invocation parameter list.
- void *__sort_uc
- Address of the caller’s user exit constant, or zero. This value is copied unchanged into the DFSORT 64-bit invocation parameter list.
- void *__sort_alseq
- Address of ALTSEQ translation table, or zero. This value is copied unchanged into the DFSORT
64-bit invocation parameter list.
When
__sort_e15,__sort_e32, or__sort_e35is nonzero, Language Environment invokes DFSORT with its own routine specified as the corresponding user exit. That routine will handle transforming from the linkage conventions used by DFSORT to those used by Language Environment and back again. It will call the routine specified in thesort_plistto perform the actual processing for the user exit. The parameters for that routine map to the inputs and outputs for the DFSORT user exit. It is the caller's responsibility to adhere to the DFSORT interface, as described in z/OS DFSORT Application Programming Guide.__sort_e15and__sort_e32are mutually exclusive. One of them must be zero.
- ret_code
- The return code from the DFSORT invocation which is contained within R15 upon return from DFSORT. Refer to the DFSORT library for detailed information on the return codes. It is the CEEYSORT caller's responsibility to manage the DFSORT return code. For example, COBOL would save it in the SORT-RETURN special register.
- fc
- Specifies an optional 16-byte condition token, passed by reference, where the CWI will place a
feedback code.The feedback code from the service indicates how the service performed and not the DFSORT invocation. The following feedback codes are possible:
Table 1. Feedback codes Feedback code Severity Message number Message text CEE000 0 Not applicable The service completed successfully. CEE3DC 3 3500 Not enough storage available to load SORT64. CEE3DD 3 3501 The module SORT64 was not found. CEE3DF 3 3,503 Load service request for module SORT64 was unsuccessful. CEE35K 2 3,252 Attempt to invoke __CEEYSORT from within a DFSORT exit. CEE35P 2 3,257 The version field does not contain a supported value. CEE35Q 2 3,258 The DFSORT E15 and E32 user exits are mutually exclusive. CEE35R 2 3,259 Invoking DFSORT is not supported when the POSIX(ON) runtime option is specified.
Usage notes
- Note the following restrictions:
- DFSORT is not supported in a POSIX(ON) environment.
- Language Environment only supports E15, E35, and E32 exits.
- Identifying restrictions on DFSORT invocation on a per-HLL basis is the responsibility of the particular HLL.
- Invocation of DFSORT from within a DFSORT user exit is not supported in Language Environment.
- A new enclave is not created when calling DFSORT. __CEEYSORT restores the program mask from the value in the CAA upon return from the call.
- The sort user exit routines __sort_e15, __sort_e32 and __sort_e35 are called using 64-bit XPLINK linkage conventions.