Using CICS API commands in an early verification routine

An early verification routine can use CICS® application programming interface (API) commands, provided it obeys the following interface rules:
  • The routine must be written in assembler.
  • Entry to the routine must be via the DFHEIENT macro, which saves the caller’s registers and establishes a CICS early verification API environment.
  • Exit from the routine must be via the DFHEIRET macro, which releases the CICS early verification API environment and restores the caller’s registers.
  • The routine must be link-edited with the special security domain API stub, DFHXSEAI, instead of the normal CICS API stub, DFHEAI0. The CICS early verification stub causes linkage to a special interface routine that is aware of the SAF interface linkage requirements, and saves the current CICS command environment. In addition, the standard EXEC interface stub DFHEAI should also be included, immediately before the early verification routine, with an ORDER statement:
      INCLUDE SYSLIB(DFHXSEAI)
      INCLUDE SYSLIB(DFHEAI)
      ORDER   DFHEAI,verify-program,DFHEAI0
      ENTRY   verify-program
The DFHEIENT and DFHEIRET macros are inserted by the CICS translator unless you specify
*ASM XOPTS(NOPROLOG,NOEPILOG)
as the first statement of the program. The DFHEIENT macro assumes that register 15 points to its first executable instruction.

Upon return from the DFHEIENT macro, a CICS storage area mapped by the DFHEISTG macro has been established. The pointer DFHEIBP (and the register specified in the EIBREG parameter of DFHEIENT) contains the address of an EXEC interface block (EIB). DFHEICAP contains the pointer to the original parameter list supplied by the SAF interface.