CSVDYNEX service exit

ICSF provides the CSVDYNEX service exit to generate statistics for all services. The exit is called at the completion of each service.

Purpose and use of the exit

This exit point occurs after the service has finished processing, but before the service returns control to the application program. The intent of this exit is for statistics generation.

Environment of the exits

The exit receive control with these characteristics:
  • Supervisor state
  • Key 0
  • APF-authorized
  • TCB or SRB mode
  • Cross memory mode
  • AR mode
  • AMODE(31)

If the callable service was invoked in AMODE(64) and the exit needs to access the caller's parameters, then it will need to switch to AMODE(64).

The exit can change the characteristics during their processing. However, the exits must return to their caller with the same characteristics as on entry. You must write the exits in the assembler programming language because you are in AR mode and cross memory mode and the addresses of some of the parameters you may access are ALET-qualified. In particular, parameters passed into a service are in the user's address space which you can access with an ALET of 1.

Installing the exit

You install the ICSF service exit by placing the module in LPA or by loading it into ICSF private from one of the ICSF initialization exits. If the exit module is available via the LINKLIST, CSVDYNEX will load it into common storage.

Registering the exit

You register the ICSF service exit by invoking macro CSVDYNEX.
   CSVDYNEX 
          Request=Add                      
          State=Active                     
          ExitName('CSF_SERVICE_EXIT ')    
          ModName('exitname')              
          AddAbendNum(3)                   
          AbendConsec(Yes) Pos(First)      
          Message(Error)                   
          RetCode(CsvRetCode)              
          RsnCode(CsvRsnCode)

Input

Registers on entry:
R0
N/A
R1
Address of IXIB - ICSF exit interface block.
R2 - R12
N/A
R13
Address of 144 byte save area.
R14
Return address.
R15
Entry point address of exit.
AR0
First 4 bytes of 8 byte PARAM area provided by the exit owner on CSVDYNEX ADD.
AR1
Second 4 bytes of 8 byte PARAM area provided by the exit owner on CSVDYNEX ADD.
Table 1. IXIB control block format
Offset (Dec) Number of bytes Description
0 4 Parmlist with a single entry pointing to the IXIB.
4 4 EBCDIC ID.
8 2 Version number of this IXIB.
10 1 Flags
X'80' Bit = 1
Caller is AMODE(31).
X'40' Bit = 1
Caller is AMODE(64).
11 1 Key is in the first 4 bits.
12 4 Address of 2048 byte work area.
16 2 IBM assigned service number.
18 2 Installation service number.
20 4 Reserved.
24 8 Service name.
32 8 Original caller's R1.
40 4 Return code from service.
44 4 Reason code from service.
48 16 STCKE value before service called.
64 16 STCKE value after service called.
80 32 Reserved.
Note: The CSVDYNEX service exit is not documented to allow the changing of parameters or return and reason codes.

Parameters

Each service has a unique parameter list. Parameters 1 through 4 are always the return code, reason code, exit data length, and exit data. For a description of each service's parameter list, see z/OS Cryptographic Services ICSF Application Programmer's Guide.

Return Codes

ICSF issues message CSFM657I for any non-zero return codes from the invocation of CSVDYNEX CALL and disables the exit.