Use this system macro to unlock a resource previously locked by using the
$LOCKC macro. If the lock is not held by this I-stream, a system dump
is issued and the lock is unlocked.
Format
- label
- A symbolic name can be assigned to the macro statement.
- LKWORD=doubleword_field|(Rx)
- Doubleword field used for the lock and trace, or a base register
containing the address of the doubleword field.
- WKREG=Ry
- A work register to be used by this macro. If FORCE is specified, it
must be the even-numbered register of an even/odd pair.
- TRACE=YES|NO
- If YES then the current address will be stored in the second fullword of
the lock doubleword. YES is the default.
- FORCE=Reven
- The even-numbered register of an even/odd pair.
If specified, FORCE is an even/odd register pair; bits 16-31 of the
even register contain the I-stream number for the special unlock.
Entry Requirements
- The resource specified by LKWORD must be locked by the $LOCKC macro unless
FORCE is specified.
- If FORCE is specified, bits 16-31 of the even register must contain the
number of the I-stream which is holding the lock.
Return Conditions
- Control is returned to the next sequential instruction.
- The contents the specified work register are unknown. If FORCE is
specified, the contents of both even/odd register pairs specified by WKREG and
FORCE are unknown. The contents of all other registers are preserved
across this macro call.
Programming Considerations
- Return is made to the next sequential instruction.
- This macro can be run on any I-stream.
- The protection key of the program issuing the $UNLKC macro must be the
same as the item being unlocked.
- The lock specified by LKWORD must be held by this I-stream. If the
lock is not held a system error will be taken unless the FORCE parameter is
coded.
Examples
None.