Define additional job entry points
Function
This statement can be used to define further job entry points for a subsystem in an object module file (SSD object) in addition to those already specified in SET-SUBSYSTEM-ATTRIBUTES, even exceeding the maximum permitted number of 100.
Each ADD-SUBSYSTEM-ENTRIES statement (which can be executed repeatedly for one and the same subsystem) can be used to define up to 100 additional job entry points for a single subsystem.
ADD-SUBSYSTEM-ENTRIES is rejected if no START-SSD-CREATION statement was executed beforehand.
The statement is rejected if the specified subsystem was defined with the SET-SUBSYSTEM-ATTRIBUTES or the MODIFY-SUBSYSTEM-ATTRIBUTES statement with entry points that are to be supplied dynamically (*BY-PROGRAM(...)).
Execution of the statement is aborted
if the subsystem specified by TO-SUBSYSTEM and VERSION is not found in the current SSD object or
if an existing job entry point is to be defined a second time.
An error message is issued.
Format
ADD-SUBSYSTEM-ENTRIES | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Operands
TO-SUBSYSTEM = <structured-name 1..8>(...)
Specifies the name and version of the subsystem for which additional job entry points are to be defined.
VERSION = <c-string 3..8> / <text 3..8>
Specifies the version of the subsystem in the format “[V][n]n.m[ann]”. The text elements have the following meanings:
nn = Main version (numeric)
m = Revision version (numeric)
ann = Update status
(a=letter, release status; nn=numeric, correction status)
SUBSYSTEM-ENTRIES =
Declares additional entry points (job entry points) which are to be associated with the subsystem. Up to 100 job entry points can be defined per statement.
SUBSYSTEM-ENTRIES = list-poss(100): <text 1..8>
Specifies up to 100 job entry points by name; the type of each entry point must be defined in the substructures.
MODE =
Defines the type of a job entry which is defined for the subsystem.
MODE = *LINK
Default value: the job entry cannot be accessed by indirect linkage, but only by using a CONNECT relation through an external linkage editor symbol.
In the case of different versions of the same subsystem which use the same external linkage editor symbol, DSSM automatically sets up a link to the highest loaded version of the subsystem.
MODE = *ISL(...)
The job entry is implemented by indirect linkage via System Procedure Linkage (for privileged subsystems only). If the specification includes in addition a function and version number for the ISL entry point, the combination of entry point name, function and version numbers must not match any other combination for the various other subsystems in the catalog or the various versions of the same subsystem (if VERSION-COEXISTENCE=*ALLOWED is specified, see the SET-SUBSYSTEM-ATTRIBUTES statement).
For different subsystems, if the job entry is to be accessed by the same ISL entry point, they must be uniquely identified by specifying the function and version numbers.
In the case of different versions of the same subsystem which use the same ISL entry point, then - if the function and version numbers are not specified - DSSM will automatically set up a connection to the highest loaded version of the subsystem.
In the case of different versions of the same subsystem which use the same ISL entry point and for which the function and version numbers are not equal to *NONE, the version to which the connection is set up will be selected in accordance with the function and version numbers stored in the standard header of the caller’s parameter list.
The specification CONNECTION-ACCESS=*ALL (see the SET-SUBSYSTEM-ATTRIBUTES statement) is not permissible for ISL entry points.
FUNCTION-NUMBER =
Specifies whether a particular function and version number of the ISL entry point is to be addressed, because the same ISL entry point can be used by different functions.
FUNCTION-NUMBER = *NONE
Default value: no particular function or version number is to be addressed.
FUNCTION-NUMBER = <integer 0..255>(...)
Number of the ISL entry point. The version must be nominated in the substructure which follows.
FUNCTION-VERSION = <integer 1..255>
Version of the specified ISL function number.
MODE = *SVC(...)
Job entry is to be effected by an indirect connection using a supervisor call (SVC).
If the specification includes in addition a function and version number for the SVC entry point, the combination of entry point name, function and version numbers must not match any other combination for the various other subsystems in the catalog or the various versions of the same subsystem (if VERSION-COEXISTENCE=*ALLOWED is specified, see the SET-SUBSYSTEM-ATTRIBUTES statement).
For different subsystems, if the job entry is to be accessed by the same SVC, they must be uniquely identified by specifying the function and version numbers.
In the case of different versions of the same subsystem which use the same SVC, then - if the function and version numbers are not specified - DSSM will automatically set up a connection to the highest loaded version of the subsystem.
In the case of different versions of the same subsystem which use the same SVC and for which the function and version numbers are not equal to *NONE, the version to which the connection is set up will be selected in accordance with the function and version numbers stored in the standard header of the caller’s parameter list.
If this operand value is specified, it is better to set the operand CONNECTION-ACCESS to the value *SYSTEM, instead of *ALL (see the SET-SUBSYSTEM-ATTRIBUTES statement).
NUMBER = <integer 0..255>
Number of the SVC via which job entry is to be effected. No SVC number greater than 191 may be used in conjunction with CONNECTION-ACCESS=*ALL (see the SET-SUBSYSTEM-ATTRIBUTES statement).
CALL-BY-SYSTEM-EXIT =
Defines whether the specified SVC number may be called from within system exit routines.
CALL-BY-SYSTEM-EXIT = *ALLOWED
Default value: system exit routines are permitted to call the specified SVC number.
CALL-BY-SYSTEM-EXIT = *FORBIDDEN
System exit routines are not permitted to call the specified SVC number.
FUNCTION-NUMBER =
Specifies whether a particular function and version number of the SVC entry point is to be addressed, because the same SVC entry point can be used by different functions.
FUNCTION-NUMBER = *NONE
Default value: no particular function or version number is to be addressed.
FUNCTION-NUMBER = <integer 0..255>(...)
The number of an SVC entry point. The version must be nominated in the substructure which follows.
FUNCTION-VERSION = <integer 1..255>
Version of the specified SVC function number.
MODE = SYSTEM-EXIT(...)
Job entry is to be effected by an indirect connection using system exit routines.
This operand must not be used in conjunction with CONNECTION-ACCESS=*ALL (see the SET-SUBSYSTEM-ATTRIBUTES statement).
NUMBER = <integer 0..127>
Number of the system exit routine.
CONNECTION-ACCESS =
Specifies the access authorization (privileges) required by the subsystem.
CONNECTION-ACCESS = *ALL
Default value: privileged and nonprivileged program runs may access the subsystem.This operand value must not be used in conjunction with MODE=*SYSTEM-EXIT/*ISL/*SVC (with an SVC number greater than 191; see the SET-SUBSYSTEM-ATTRIBUTES statement).
CONNECTION-ACCESS = *SYSTEM
Only privileged program runs may access the subsystem.
CONNECTION-ACCESS = *SIH
Only tasks running in the SIH processor state may access the subsystem.
The subsystem called also runs in the SIH processor state, i.e. it is uninterruptible.This operand value is permissible only for subsystems for which the entry point is defined via:
System Procedure Linkage (MODE=*ISL(FUNCTION-NUMBER=*NONE))
CONNECTION-SCOPE=*OPTIMAL
MEMORY-CLASS=*SYSTEM-GLOBAL(SUBSYSTEM-ACCESS=*SYSTEM)
CONNECTION-SCOPE =
Identifies the event which will call up the automatic cleardown of the connection to the specified subsystem job entry point.
CONNECTION-SCOPE = *TASK
Default value: the connection will be cleared when the task terminates.
CONNECTION-SCOPE = *PROGRAM
The connection will be cleared when the program terminates, or before.
Only CONNECTION-SCOPE=*PROGRAM may be specified in conjunction with MEMORY-CLASS=*LOCAL-UNPRIVILEGED (see the SET-SUBSYSTEM-ATTRIBUTES statement).
This operand value is recommended for subsystems which were declared with SUBSYSTEM-ACCESS=*LOW/*HIGH.
CONNECTION-SCOPE = *FREE
DSSM is not to carry out any checking of the connections to the job entry point. The connection will not be automatically cleared - unless explicitly requested. To avoid problems or possible errors when the subsystem is being unloaded, the connections must be managed by the subsystem itself.
CONNECTION-SCOPE = *CALL
On return from this job entry point, DSSM will automatically clear the connections.
This operand value is only available with subsystems for which the job entry is defined by means of System Procedure Linkage (ISL) or supervisor calls (SVC).
CONNECTION-SCOPE = *OPTIMAL
The subsystem is deactivated or suspended when there are no further tasks with a connection to this job entry point.
A routine with an entry point defined with *OPTIMAL must be terminated with RETURN.If an entry point of a subsystem is defined with CONNECTION-SCOPE=*OPTIMAL, all of its entry points should be defined in the subsystem catalog with MODE!=
*LINK. While a subsystem is deactivated or suspended, no call of the subsystem with CONNECTION-SCOPE=*OPTIMAL is accepted.
Exception: if the subsystem was defined with CREATION-TIME=*AT-SUBSYSTEM-CALL and the calling task is already connected to the subsystem (see the SET-SUBSYSTEM-ATTRIBUTES statement).
FIRST-CONNECTION =
Determines whether or not first connection of the task to the specified job entry point in the subsystem is allowed. At least one job entry point of a subsystem must be defined with FIRST-CONNECTION=*ALLOWED.
FIRST-CONNECTION = *ALLOWED
Default setting: first connection to the specified job entry point is allowed.
FIRST-CONNECTION = *FORBIDDEN
Connection to the specified job entry point via SVC or ISL is not allowed if the task has not yet been connected to another job entry point belonging to the subsystem.
It is not permitted to specify this operand value for job entry points that have been defined with MODE=*LINK/*SYSTEM-EXIT or CONNECTION-ACCESS=*SIH.