Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Interface establishment and cancelation

The interface to the job entry point of a subsystem is implemented in one of the following ways:

  1. implicitly and globally by linkage (this is possible only for interfaces to subsystems that have already been loaded or between subsystems that are loaded at the same time)

  2. implicitly and task-specifically via

    • subsystem-specific SVC, ISL, bISL or system exit routines

    • in the case of nonprivileged subsystems, BLS interfaces (BIND macro, START-PROGRAM, LOAD-PROGRAM and START-<product-name>, autolink)

  3. explicitly and task-specifically via internal system macros ($ESMCON and $ESMCCS).

Establishing an interface to a subsystem includes:

  1. generating a subtask following a corresponding internal system call ($ESMCCS)

  2. attachment to the memory pool, if required

  3. If a subsystem was defined with MEMORY-CLASS=*BY-SLICE, the private area is copied into the local address space (user address space). When the subsystem is started for the first time, DSSM informs the BLSSERV subsystem that the copy in the private user address space can be accessed with the VSVI1 macro.

  4. transferring the address to the task or calling the subsystem code

  5. setting the subsystem-specific interface marker

  6. incrementing the task-specific interface counter (except when defining the subsystem with the attribute CONNECTION-SCOPE=*FREE).

It is also possible to set up an interface for job entries which the subsystem manages itself.

A relation can be canceled in one of these ways:

  • implicitly and task-specifically

    • by program/task termination

    • after a return from the subsystem job entry point if this was defined with the attribute MODE=*SVC/*ISL and CONNECTION-SCOPE=*CALL

    • after deactivation of subsystems with CONNECTION-SCOPE=*OPTIMAL

  • explicitly and task-specifically via an internal system macro on termination of an SVC routine ($ESMDCN)

  • implicitly and subsystem-specifically on deactivation of a subsystem which was defined with the attribute CONNECTION-SCOPE=*FREE.

Canceling a relation includes:

  • detachment from the memory pool

  • If the subsystem was defined with MEMORY-CLASS=*BY-SLICE, the part in the user address space of the connected task is unloaded.
    When the last connection is shut down, DSSM informs the BLSSERV subsystem that this private part can no longer be accessed.

  • resetting the task-specific interface marker

  • decrementing the subsystem-specific interface counter (except for subsystems defined with the attribute CONNECTION-SCOPE=*FREE)

  • the “detach” function in the case of an explicit call.

The address supplied to the task at the time of interface setup can no longer be used.