Parameters
The parameters are explained as follows:
- name
- An optional symbol, starting in column 1, that is the name on
the IWMEJOIN macro invocation. The name must conform to the rules
for an ordinary assembler language symbol.
- ,ENCLAVESERVER=YES
- ,ENCLAVESERVER=NO
- An optional parameter, for internal use only The default is
ENCLAVESERVER=YES.
- ,ENCLAVESERVER=YES
-
for internal use only
- ,ENCLAVESERVER=NO
-
for internal use only
- ETOKEN=etoken
- A required input parameter, which contains the enclave token
to be associated with the TCB as returned by IWM4ECRE.
To code: Specify the RS-type address, or address
in register (2)-(12), of an 8-character field.
- ,MF=S
- ,MF=(L,list addr)
- ,MF=(L,list addr,attr)
- ,MF=(L,list addr,0D)
- ,MF=(E,list addr)
- ,MF=(E,list addr,COMPLETE)
- An optional input parameter that specifies the macro form.
Use
MF=S to specify the standard form of the macro, which builds an inline
parameter list and generates the macro invocation to transfer control
to the service. MF=S is the default.
Use MF=L to specify the
list form of the macro. Use the list form together with the execute
form of the macro for applications that require reentrant code. The
list form defines an area of storage that the execute form uses to
store the parameters. Only the PLISTVER parameter may be coded with
the list form of the macro.
Use MF=E to specify the execute
form of the macro. Use the execute form together with the list form
of the macro for applications that require reentrant code. The execute
form of the macro stores the parameters into the storage area defined
by the list form, and generates the macro invocation to transfer control
to the service.
- ,list addr
- The name of a storage area to contain the parameters. For MF=S
and MF=E, this can be an RS-type address or an address in register
(1)-(12).
- ,attr
- An optional 1- to 60-character input string that you use to
force boundary alignment of the parameter list. Use a value of 0F
to force the parameter list to a word boundary, or 0D to force the
parameter list to a doubleword boundary. If you do not code attr,
the system provides a value of 0D.
- ,COMPLETE
- Specifies that the system is to check for required parameters
and supply defaults for omitted optional parameters.
- ,PLISTVER=IMPLIED_VERSION
- ,PLISTVER=MAX
- ,PLISTVER=0
- ,PLISTVER=1
- An optional input parameter that specifies the version of the
macro. PLISTVER determines which parameter list the system generates.
PLISTVER is an optional input parameter on all forms of the macro,
including the list form. When using PLISTVER, specify it on all macro
forms used for a request and with the same value on all of the macro
forms. The values are:
- IMPLIED_VERSION, which is the lowest
version that allows all parameters specified on the request to be
processed. If you omit the PLISTVER parameter, IMPLIED_VERSION
is the default.
- MAX, if you want the parameter list to be
the largest size currently possible. This size might grow from release
to release and affect the amount of storage that your program needs.
If
you can tolerate the size change, IBM recommends that you always specify
PLISTVER=MAX on the list form of the macro. Specifying MAX ensures
that the list-form parameter list is always long enough to hold all
the parameters you might specify on the execute form, when both are
assembled with the same level of the system. In this way, MAX ensures
that the parameter list does not overwrite nearby storage.
- 0, which supports all parameters except
those specifically referenced in higher versions.
- 1, which supports both the following parameters
and those from version 0:
To code: Specify one of the following:
- IMPLIED_VERSION
- MAX
- A decimal value of 0, or 1
- ,RETCODE=retcode
- An optional output parameter into which the return code is to
be copied from GPR 15. If you specify 15, GPR15, REG15, or R15 (within
or without parentheses), the value will be left in GPR 15.
To code: Specify the RS-type address of a
fullword field, or register (2)-(12) or (15), (GPR15), (REG15), or
(R15).
- ,RSNCODE=rsncode
- An optional output parameter into which the reason code is to
be copied from GPR 0. If you specify 0, 00, GPR0, GPR00, REG0, REG00,
or R0 (within or without parentheses), the value will be left in GPR
0.
To code: Specify the RS-type address
of a fullword field, or register (0) or (2)-(12), (00), (GPR0), (GPR00),
REG0), (REG00), or (R0).
- ,SUBTASKS=NO
- ,SUBTASKS=YES
- An optional parameter, which specifies if subtasks of the joining
task are also to be processed. The default is SUBTASKS=NO.
- ,SUBTASKS=NO
- specifies that subtasks of the joining task are not to be processed.
- ,SUBTASKS=YES
- specifies that subtasks of the joining task that are not already
joined to an enclave are to be joined to the enclave identified by
this invocation's ETOKEN parameter. When a currently-dispatched subtask
is joined to the enclave, its CPU time for that dispatch is associated
with the enclave rather than the address space. When the subtask is
removed from the enclave, if it is currently dispatched, its CPU time
for that dispatch is associated with the address space rather than
the enclave.
If the caller does not have PASN=HASN, this is treated
as SUBTASKS=NO. The caller is notified with a return and reason code
combination.
If SYSEVENT REQSRMST does not indicate, via bit
SRMSTSTS being on, that this function is available, this is treated
as SUBTASKS=NO.
When SUBTASKS=YES is in effect, this task's
corresponding IWMELEAV will also perform leave processing upon any
subtasks that are implicitly associated with the enclave. This includes
subtasks that were joined to the enclave due to this task's IWMEJOIN
processing as well as subtasks that were joined to the enclave by
ATTACH processing.
|