Set Invocation Exit (SETIEXIT)


Op Code (Hex) Operand 1 Operand 2

0252 Invocation exit program Argument list

Operand 1: System pointer.

Operand 2: Operand list or null.

Description  This instruction allows the external entry point of the program specified by operand 1 to be given control when the requesting invocation is destroyed due to normal exception handling actions, or due to any thread termination. Normal exception handling actions are considered to be those actions performed by the Return From Exception (RTNEXCP) or the Signal Exception (SIGEXCP) instructions.

Operand 1 is a system pointer addressing the program that is to receive control. The operand 1 system pointer must be in either the static or automatic storage of the program invoking this instruction.

Operand 2 specifies an operand list that identifies the arguments to be passed to the invocation exit program being called. If operand 2 is null, no arguments are passed to the invocation.

No operand verification takes place when this instruction is executed. Nor are copies made of the operands, so changes made to the operand values after execution of this instruction will be used during later operand verification. Operand verification occurs on the original form of the operands when the invocation exit program is invoked. At that time execute authorization verification to the invocation exit program and any contexts referenced for materialization take place. Also, materialization lock enforcement occurs to contexts referenced for materialization.

Operand 1 must point to a non-bound program or a bound program. Operand 1 should not point to a bound service program or a Java™ program or else an error will occur when an attempt is made to invoke the invocation exit program.

If an invocation exit program currently exists for the requesting invocation, it is replaced, and no exception is signaled. The invocation exit set by this instruction is implicitly cleared when the invocation exit program is given control, or the program which set the invocation exit completes execution.

If any invocations are to be destroyed due to normal exception handling actions, then those invocation exit programs associated with the invocations to be destroyed are given control before execution proceeds to the signaled exception handler.

The invocation exit program that is being destroyed is terminated, and its associated invocation execution is terminated. Termination of invocations due to a previous Signal Exception instruction, a Return From Exception instruction, a process termination, or a thread termination, is then resumed.

If a process phase is terminated and the process was not in termination phase, then the invocations are terminated. Invocation exit programs set for the terminated invocations are allowed to run. If an invocation to be terminated is an invocation exit program, then the following occurs:

Invocation exit programs for the remaining invocations to be terminated are then allowed to run.

Authorization Required

Lock Enforcement

Exceptions

06 Addressing

08 Argument/Parameter

10 Damage Encountered

1C Machine-Dependent

20 Machine Support

22 Object Access

2E Resource Control Limit

32 Scalar Specification

36 Space Management

44 Protection Violation