![](dblue_rule.gif) |
The parameters are explained as follows. Default values are underlined:
- ,COMPUS=NO_COMPUS
- ,COMPUS=compus
- Use this input parameter to specify the user state compare value.
If the compare value matches the current value, XCF replaces the current
value with the new value. If the values do not match, XCF does not
change the user state field.
If you do not want to compare the
user state with a value, but would like to code this parameter, specify
COMPUS=NO_COMPUS.
To Code: Specify
the RS-type name or address (using a register from 2 to 12) of the
area (with a length of USLEN) to be used for comparison against the
current user state field for the target.
- ,ECB=NO_ECB
- ,ECB=ecb
- Use this input parameter to specify a 32-bit ECB that XCF is
to post when IXCSETUS completes its actions. If you do not specify
ECB, or if you specify ECB=NO_ECB, IXCSETUS completes synchronously.
If you do specify ECB, XCF might return control before IXCSETUS completes
its actions. If the return code is 0, indicating that XCF accepted
the request, then issue a WAIT on the ECB. If the return code is not
0, XCF will not post the ECB.
If you specify OLDUS with ECB, then
XCF updates the OLDUS field just before it posts the ECB. In this
case, the OLDUS field must be in commonly addressable storage.
When
XCF posts the ECB, the ECB contains the following:
- Bits 8 - 23 contain the low-order halfword of the reason code
that XCF would have returned in GPR 0 if the caller had not specified
ECB.
- Bits 24 - 31 contain the low-order byte of the return code that
XCF would have returned in GPR 15 if the caller had not specified
ECB.
To Code: Specify the RS-type name
or address (using a register from 2 to 12) of a 4-byte field that
contains the address of the ECB.
- MEMTOKEN=memtoken
- Use this input parameter to specify the 64-bit token of the
calling member. IXCJOIN provided this token when it placed the member
in the active state.
To Code: Specify the
RS-type name or address (using a register from 2 to 12) of an 8-byte
field that contains the member token.
- ,MF=S
- ,MF=(L,mfctrl)
- ,MF=(L,mfctrl,mfattr)
- ,MF=(L,mfctrl,0D)
- ,MF=(E,mfctrl)
- ,MF=(E,mfctrl,COMPLETE)
- 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.
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
can 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 stores the parameters into
the storage area defined by the list form, and generates the macro
invocation to transfer control to the service.
- ,mfctrl
- Use this output parameter to specify a storage area to contain
the parameters.
To Code: Specify the RS-type name or address (using a register
from 2 to 12) of the parameter list.
- ,mfattr
- Use this input parameter to specify the name of a 1- to 60-character
string that can contain any value that is valid on an assembler DS
pseudo-op. You can use this parameter to force boundary alignment
of the parameter list. If you do not code mfattr, the system
provides a value of 0D, which forces the parameter list to a doubleword
boundary.
- ,COMPLETE
- Use this input parameter to require that the system check for
required parameters and supply defaults for omitted optional parameters.
Note: In the macro expansion you might see some defaults for optional
parameters that are not documented here. The ones that are not documented
do not have any effect on the macro. For example, if SMILE=var were
an optional parameter and the default is SMILE=NO_SMILE then it would
not be documented. However, if the default was SMILE=:-), then it
would be documented because a value would be the default.
- ,NEWUS=newus
- Use this input parameter to specify the value that XCF is to
place in the user state field. This value is called the “new value.”
If you specify COMPUS and the current value and the compare value
do not match, the new value will not replace the current value of
the field.
To Code: Specify the RS-type name
or address (using a register from 2 to 12) of the area (with a length
of USLEN) that contains the new user state information.
- ,OLDUS=oldus
- Use this output parameter to specify the location where XCF
is to copy the current value of the user state field. If OLDUS and
COMPUS both point to the same location, XCF updates the existing compare
value with the current value of the user state field. You might specify
this parameter to find out why the comparison failed.
If you specify
ECB with OLDUS, then XCF updates the OLDUS field just before it posts
the ECB. In this case, the OLDUS field must be in commonly addressable
storage, and any ALET that qualifies its address must be zero.
To Code: Specify the RS-type name or address (using
a register from 2 to 12) of the area (with a length of USLEN) where
the current value of the user state field of the target member will
be placed.
- ,PLISTVER=IMPLIED_VERSION
- ,PLISTVER=MAX
- ,PLISTVER=plistver
- Use this input parameter to specify the version of the macro.
See Understanding IXCSETUS Version Support for a description of the options available
with PLISTVER.
- ,RETCODE=retcode
- Use this output parameter to specify the location in which the
system is to copy the return code from GPR 15.
To
Code: Specify the RS-type name or address (using a register from
2 to 12) of a 4-byte field that will contain the return code when
this request completes.
- ,RSNCODE=rsncode
- Use this output parameter to specify the location in which the
system is to copy the reason code from GPR 0.
To
Code: Specify the RS-type name or address (using a register from
2 to 12) of a 4-byte field that will contain the reason code (if any)
when the request completes.
- ,TARGET=target
- Use this input parameter to specify the 64-bit token of the
member whose user state field is to be changed or used for comparison.
You can get the value of this token by using the IXCQUERY macro.
To Code: Specify the RS-type name or address (using
a register from 2 to 12) of an 8-byte field that contains the member
token of the member whose user state you are processing.
- ,USLEN=uslen
- Use this input parameter to specify how many bytes of the user
state field XCF is to change. XCF uses the length you specify on USLEN
as the length of the COMPUS, OLDUS, and NEWUS fields:
- When XCF compares the current user state value with the value
in COMPUS, XCF compares only the number of bytes you specify on USLEN.
- When XCF copies the current value of the user state field to OLDUS,
XCF copies only the number of bytes you specify on USLEN.
- When XCF updates the current user state value with the value in
NEWUS, XCF updates only the number of bytes you specify on USLEN.
The length must be from 1 to 32 bytes.
To
Code: Specify the RS-type name or address (using a register from
2 to 12) of a 4-byte field that contains the number of bytes of the
user state field to process.
|