General
Application area: | (Task) serialization; see "(Task) serialization" |
Macro type: | Type S, MF format 1: standard/L/E form; see "S-type macros" |
CHKSI generates either a 24-bit or a 31-bit interface, depending on the specification. In the event of macro chaining, all macros chained must make use of the same interface (either 24-bit or 31-bit interface).
Macro description
This macro is used to check the status of a serialization item. The result of the check is stored in register 15 (see “Return information and error flags” below).
At CHKSI macro execution time, the specified serialization item must be present; implicit creation is not performed.
The CONTINU operand permits up to 255 CHKSI macros to be chained.
Macro format and description of operands
CHKSI |
{{SINAME=name / SINAMAD={addr / (r) [,SINAMLN=length] }} ,SCOPE={LOCAL / GROUP / USER_GROUP / GLOBAL} SIID={addr / (r)}} ,CONTINU=NO / YES [,PARMOD=24 / 31] [,MF=L / (E,..)] |
SINAME=name
Specifies the name of the serialization item. The SCOPE operand is required for unique serialization item identification.
SINAMAD=
Specifies the name of the serialization item. The serialization item is uniquely identified only if the SCOPE operand has also been specified.
addr
Symbolic address of the field containing the name.
(r)
Register containing the address.
SINAMLN=
Specifies the length in bytes of the serialization item name. The length must be at least 1 byte and not more than 54 bytes.
If the operand is missing, the length attribute of the SINAMAD operand is assumed if SINAMAD=addr is specified; if SINAMAD=(r), the maximum length (54) is assumed.
length
Length of the serialization item name in bytes.
SCOPE=
Specifies the scope of the serialization item (participants making use of the item).
LOCAL
The use of the serialization item is limited to the calling task.
GROUP
All the tasks with the same user ID as the caller are participants.
USER_GROUP
All the tasks, whose user IDs belong to the same user group as the user ID of the creating participant, can be participants.
The operand value assumes the existence of user groups and may therefore only be specified when the SRPM function unit of the SECOS software product is available in the system. This is why the GETUGR macro (see the “SECOS” manual [14 (Related publications)]) has to check whether SRPM is available prior to a macro call with SCOPE=USER_GROUP. The program reaction is dependent on the result (return code).
GLOBAL
All the tasks in the system are participants.
SIID=
Specifies the ID of the serialization item. The ID is returned to the user by the ENASI macro. Use of this ID instead of the name of the serialization item increases processing speed. The ID is unique.
addr
Symbolic address of a 4-byte field containing the ID.
(r)
Register containing the address.
CONTINU=
Specifies whether up to 255 CHKSI macros are to be chained.
NO
This macro is the last (or only) macro of a sequence.
YES
Indicates that this macro is followed by another CHKSI macro.
MF=
For a general description of the MF operand, its operand values and any subsequent operands (e.g. for a prefix), see "S-type macros". The valid MF values are given at the start of the macro description under “Macro type” and are included in the macro format.
PARMOD=
Controls macro expansion. Either the 24-bit or the 31-bit interface is generated.
If PARMOD is not specified here, macro expansion is performed according to the specification for the GPARMOD macro or according to the default setting for the assembler (= 24-bit interface).
24
The 24-bit interface is generated. Data lists and instructions use 24-bit addresses (address space <= 16 Mb).
31
The 31-bit interface is generated. Data lists and instructions use 31-bit addresses (address space <= 2 Gb).
Notes on the macro call using the list form (MF=L operand)
Only one macro call with MF=E need be issued for execution, irrespective of whether this call applies to a single request or to a series of requests. The operand list for a series of requests is generated by macro call chaining (MF=L) by means of the CONTINU operand.
Return information and error flags
R15:
+---------------+ | | | | | |b|b| | | | |a|a| +---------------+
A structured return code (aa=primary return code, bb=secondary return code) relating to the execution of the CHKSI macro is transferred in register R15.
X'bb' | X'aa' | Meaning |
X'28' | X'00' | All serialization items were checked. |
X'2C' | X'00' | All serialization items were checked. |
X'30' | X'00' | All serialization items were checked. |
X'34' | X'00' | All serialization items were checked. |
X'38' | X'00' | All serialization items were checked. |
X'10' | X'04' | The serialization items were not all checked.
|
X'14' | X'04' | The serialization items were not all checked. |
X'20' | X'04' | The serialization items were not all checked. |