General
Application area: | (Optimized) eventing; see "Eventing" |
Macro type: | Type R; see "R-type macros" |
Forward eventing (FEV) is an optimized form of synchronous eventing. FEV avoids the need for repeated validation of the operands when either POSSIG or SOLSIG calls to a particular event item are repeated. Instead, an event list, EVENTLST, is set up and in order to send signals to an event item (a POSSIG function), for example, a POSSIG entry is made in the list. The entry may be explicitly deleted again (DELFEI).
The task of the calling program must be enabled for the event item (using ENAEI).
Macro description
The macro RPOFEI refers to a POSSIG entry in the EVENTLST and initiates the sending of a signal (event) to an event item.
This signal terminates the wait state of the requesting task, or starts a contingency routine in this task, if this was specified in a SOLSIG call.
Macro format and description of operands
RPOFEI |
REFNUM=(r) |
REFNUM=(r)
Identifies a register which (directly) holds the reference number of the POSSIG entry.
(r)
Register containing the reference number.
Return information and error flags
During the execution of the macro, register R1 contains the reference number. Register R0 is overwritten with an internal function code.
R15:
+---------------+ | | | | | |b|b| | | | |a|a| +---------------+
A structured return code relating to the execution of the macro is transferred in register R15 (aa = primary return code, bb = secondary return code).
X'bb' | X'aa' | Meaning |
X'00' | X'00' | Normal execution. The signal was sent |
X'04' | X'04' | No action: incorrect reference number (POSSIG entry already deleted?) |
X'28' | X'04' | No action: the maximum permitted number of requests in the POSSIG queue was |