The installation exit for each service gets the address
of the exit parameter block (EXPB) in register 0. ICSF obtains and
initializes an EXP for every service call. Figure 8 illustrates
the contents of register 0, and Table 16 illustrates
the EXPB for the service exits.
Register 1 contains the address of an address list. Each address
in the list points to a parameter. Parameters describes
the service parameter list. The parameters the exit receives are
the same parameters that are passed on the call to the service. For
more information about the parameters for each service, see z/OS Cryptographic Services ICSF Application Programmer’s Guide.
Exit parameter block
Table 16 describes
the contents of the exit control block.
Table 16. EXPB Control Block Format for ServicesOffset (Dec) | Number of Bytes | Description |
---|
0 | 4 | Name.
The name of the control
block. The field contains the character string EXPB. | 4 | 2 | Version.
The version of the control
block. The field contains the character string 01. | 6 | 2 | Length.
The length of the control
block. The value is 40 in decimal. | 8 | 4 | Dynamic area.
The address of a
400-byte area that the exit can use as a dynamic area. | 12 | 4 | Exit area address.
The address
of an 8-byte area for the preprocessing and postprocessing invocations
of the exit to use for communication. ICSF does not check or change
this field. | 16 | 4 | Exit communication area.
A character
string that can be used for communication between preprocessing and
postprocessing invocations of a service exit. | 20 | 4 | Flags.
A flag byte. Each bit
setting (on/off) indicates a particular condition. ICSF sets bit
0 and an exit cannot change that bit. Your exit can set any of the
other bits.
- Bit
- Meaning When Set On/Off
- 0
- Postprocessing invocation./Preprocessing invocation.
- 1
- Reserved.
- 2
- Use the return and reason code that the exit places in register
0 and register 15 as the service's return code/reason code. Do not
use the exit's return code as the service return code in registers
0 and 15.
The exit can pass any valid return code in register 15
and any valid reason code in register 0. If this bit is set on, ICSF uses
these codes as the service's return and reason codes. See Return Codes for more information about using exit return codes.
- 3
- Do not call the postprocessing invocation of the service exit./Call
the postprocessing invocation of the service exit.
- 4
- Bypass the service./Run the service.
- 5
- Use the return and reason code that the exit places in the
service's parameter list./Do not store codes the exit places in the
service's parameter list.
The exit can pass any valid return and
reason code in the first two parameters of the service's parameter
list. Parameters describes the service parameter list.
- 6
- CSFSKRC bypass input label parsing./CSFSKRC parse the input
label.
- 7-31
- Reserved.
| 24 | 4 | Secondary parameter block.
The
address of the secondary parameter block. The exit can use the SPB
to determine the environmental information of the service. For a
description of the SPB, see Secondary parameter block. | 28 | 4 | CCVT.
Address of the Cryptographic
Control Vector Table (CCVT). For a description of the CCVT, see The Cryptographic Communication Vector Table (CCVT). | 32 | 8 | Module name.
The installation
exit's load module name. The field contains the value of the load
module name you specified on the EXIT keyword in the installation
options data set. The field is 8 bytes of characters, and the value
is left-justified and padded with blanks. | Secondary parameter block
Offset +24
of EXPB contains the address of the secondary parameter block (SPB).
The exit can use the SPB to determine the environmental conditions
of the service. Table 17 describes the contents of SPB.
Table 17. SPB Control Block FormatOffset (Dec) | Number of Bytes | Description |
---|
0 | 4 | Name.
The name of the control
block. The field contains the character string SPB. | 4 | 2 | Version.
The version of the control
block. The field contains the character string 04. | 6 | 2 | Length.
The length of the control
block. | 8 | 4 | CCVT.
The address of the Cryptographic
Communication Vector Table (CCVT). For a description of the CCVT,
seeThe Cryptographic Communication Vector Table (CCVT). | 12 | 4 | Signal Information Word.
Bytes
1-2 Reserved.
Bytes 3-4 of the field contain
the installation-assigned code number for an installation-defined
service. | 16 | 4 | Flags and Indicators. Each byte of
this field is either an indicator byte or contains flag bits. The
contents of each byte in the field are:
Byte 1—PSW key. This
byte contains the original caller's program status word key. The first
four bits are the key and the remaining four bits are zeros.
Byte
2—Caller's state. Each bit in byte 2 indicates a condition of
the caller's state.
- Bit
- Meaning When Set On
- 0
- ICSF was entered via SVC entry from a PCF compatibility macro.
- 1
- Original caller in AMODE(31).
- 2
- Original caller in AR mode.
- 3
- Original caller in SRB mode.
- 4
- Original caller in supervisor state or system key.
-
- 5
- Original caller in AMODE(64).
- 6-7
- Reserved.
Byte 3—Flag byte 1. The first flag byte. Each bit
that is set on indicates a particular condition.
Note:
These
bits are informational. Do not change bits 0 and 1.
- Bit
- Meaning When Set On
- 0
- The service is using a “storage access" crypto instruction.
- 1
- Key record found in in-store KDS during delete operation.
- 2
- The recovery routine should not retry.
- 3 and 4
- Reserved
- 5
- Hardware initialization in process.
- 6
- NQAP in progress.
- 7
- Reserved
Byte 4—Flag byte 2
- Bit
- Meaning When Set On
- 0
- The service parameter list has a position for a return code.
- 1
- The service parameter list has a position for a reason code.
- 2
- In-store CKDS record format is variable length.
- 3
- The caller has no exit data.
- 4
- Change master key processing holds global AP latch
- 5-7
- Reserved
| 20 | 4 | Protected storage pointer. | 24 | 4 | Auxiliary SPB Pointer | 28 | 4 | EDC buffer pointer. | 32 | 4 | EDC buffer length. | 36 | 4 | Address of XPB. | 40 | 8 | ID for latch manager. | 48 | 4 | Address for ERPB. | 52 | 8 | Original caller's register 1. | 60 | 4 | Address of CPRB request storage. | 64 | 4 | Length of CPRB request storage. | 68 | 4 | Address of CPRB reply storage. | 72 | 4 | Length of CPRB reply storage. | 76 | 4 | CCPS address. | 80 | 4 | Serialization block address. | 84 | 4 | Recovery token. | 88 | 8 | Recovery footprint for hash tables. | 96 | 4 | Pointer to ICSF/C resource owning object. | 100 | 4 | Pointer to metal C stack. | 104 | 2 | Entry point index of metal C caller. | 106 | 2 | Flags and indicators
Byte 1 - Reserved for
dump processing which will be overwritten when being copied.
- Bit
- Meaning When Set On
- 0
- Dump CKDS in-store
- 1
- Dump PKDS in-store
- 2
- Dump TKDS in-store and session objects
- 3-7
- Reserved
Byte 2 - Reserved | 108 | 4 | ASCB of SPB owner. | 112 | 4 | Register 14 from CSFMIREC. | 116 | 4 | Address of MSTB. | 120 | 24 | Reserved. | Parameters
Each service has a unique parameter list. Parameters 1-4
are always the return code, reason code, exit data length, and exit
data. The other parameters differ with each service. The installation
exit gets passed the address of the service parameter list in Register
1. For a description of each service's parameter list, refer to z/OS Cryptographic Services ICSF Application Programmer’s Guide.
|