Previous Topic: INMC Security Exit Support

Next Topic: Primary Exit


INMC Security Exit

You must write a primary and secondary exit for each system that is to be controlled by the INMC security exit when connected by an INMC link.

The exits must be assembled and linked to form an executable load module and must be placed in a load library accessible to your product region during execution.

When the exit is called, standard assembler language linkage conventions apply.

When invoked, the exit operates under your product region’s main task, and therefore extensive processing, I/O operations, or WAITs issued within the exit can impact the overall performance of the system.

Identify the Primary Exit

One INMC primary exit is available for any one region and must be identified.

To identify the primary exit, include the following command in the INIT initialization procedure or issue the command before a link is activated:

SYSPARMS INMCEX01=exitname
exitname

Is the load module of the primary exit.

When an INMC link is activated, INMC attempts to load a copy of the exit. If the load fails for any reason it is regarded as a security exposure and the link is disabled automatically. Write the exit to be reentrant if possible because a load is issued for each link that is activated.

Identify the Secondary Exit

One INMC secondary exit is available for any one system and must be identified.

To identify the secondary exit, include the following command in the INIT initialization procedure or issue the command before a link is activated:

SYSPARMS INMCEX02=exitname
exitname

Is the load module of the secondary exit.

When an INMC link is activated, INMC attempts to load a copy of the exit. If the load fails for any reason the primary exit of the remote system is notified that no secondary exit exists in this system. In this case the remote primary exit decides whether to allow link activation.

Change Exit Names Dynamically

The name of the load module that forms either the primary or secondary INMC exit can be changed dynamically at any time.

To change an exit name, reissue one of the following commands to identify the new name:

SYSPARMS INMCEX01=new_primary_exitname
SYSPARMS INMCEX02=new_secondary_exitname

To disable an exit at any time, issue one of the following commands:

SYSPARMS INMCEX01=NONE
SYSPARMS INMCEX02=NONE

Registers on Entering INMC Exits

Both primary and secondary exits are called using conventional linkage. The registers on entry to either exit contain values as follows:

Register

Value

0

Unpredictable

1

Address of parameter list

2

Unpredictable

3

Unpredictable

4

Unpredictable

5

Unpredictable

6

Unpredictable

7

Unpredictable

8

Unpredictable

9

Unpredictable

10

Unpredictable

11

Unpredictable

12

Unpredictable

13

Address of standard save area

14

Product region return address

15

Entry point of INMC primary or secondary exit

The exit must save registers on entry and perform standard save area linkage. On return, registers must be restored and control returned to the address held in Register 14 on entry.