Using the assembler user exit CEEBXITA

CEEBXITA tailors the characteristics of the enclave before its establishment. It must be written in assembler language because an HLL environment is not yet established when the exit is invoked. You cannot code CEEBXITA as an XPLINK application. However, since CEEBXITA is called directly by Language Environment and not by the application, a non-XPLINK CEEBXITA can be statically bound in the same program object with an XPLINK application. CEEBXITA is driven for enclave initialization and enclave termination regardless of whether the enclave is the first enclave in the process or a nested enclave. CEEBXITA can differentiate easily between first and nested enclaves. For more information about nested enclaves, see Using nested enclaves.

CEEBXITA is invoked very early during the initialization process, before enclave initialization is complete. The enclave initialization code recognizes runtime options contained in CEEBXITA.

The assembler user exit is supported with POSIX(ON) and in a threaded environment. Within a given Language Environment process, the following functions are driven on the initial thread:
  • Initialization of the first enclave within a process
  • Termination of the first enclave within a process
  • Termination of the process
For nested enclaves, the following functions are driven:
  • Nested enclave initialization
  • Nested enclave termination

The abend percolation list is applied to all threads in the enclave as specified in the assembler user exit.