Use this general macro to inform the control program that an element of an
internally named event was completed successfully. This macro is used
with the EVNTC (see EVNTC-Define Internal Event), EVNWC (see EVNWC-Wait for Event Completion), and SAWNC (see SAWNC-Wait for Event Completion, Signal Aware) macros.
You can use the EVNTC, POSTC, EVNWC, and SAWNC macros to pass the contents
of a core block from one entry control block (ECB) to another ECB.
Format
- label
- A symbolic name can be assigned to the macro statement.
- TYPE
- The type of event being posted:
- CNT
- Post is posting a counter type event.
- MSK
- Post is posting a mask type event.
- CB
- Post is posting a core block type event.
- LIST
- Post is posting a data list-type event.
- Note:
- For TYPE=LIST, the BLOCK parameter is required.
- BLOCK=address
- The address of an area formatted as defined in EV0BK that contains the
required POSTC input parameters. BLOCK and LEVEL are mutually exclusive
except for TYPE=CB.
- LEVEL=level
- The core block reference word and the file address reference word (D0-DF)
used to pass the information. LEVEL and BLOCK are mutually exclusive
except for TYPE=CB.
- ERCODE=character|(Rx)
- This parameter, if specified, indicates that this post is an error
post. The error is specified as a 1-byte value or register notation,
where the register contains the error code in byte 3.
For CNT-, MSK-, and CB-type events, the event is completed with an error
return condition. The value of ERCODE is set in the error indicator
field (BVNBKE) for the event.
For LIST-type events, the status flag field (EVNBKLIF) for the data item in
error is set to indicate an error condition (X'40'). The value
of ERCODE is saved in the error indicator field (EVNBKLIE) for the data
item. The event is not completed unless all data items in the list have
been set to completed (X'80') or in error (X'40').
- NFOUND=label
- Label in which to branch if the event is not outstanding.
- LINFND=label2
- Label in which to branch if a data item to post to is not found in the
event list. The status flag field for the data item in the post list is
set to X'20' to indicate that the data item was not found in the event
list.
Entry Requirements
- POSTC using the LEVEL parameter
- The symbolic name of the event to be posted, which is 8 characters long,
must be in CE1FAx, where x is the specified level.
- For CNT type posts, the content of CE1CRx+2 is ORed into the return mask
field of the event. This is called the POST MASK 2 field. The
current value of the event will be automatically decremented by 1 when the
POSTC macro is issued.
- For MSK type posts, CE1CRx must contain a 16-bit mask, which is converted
to a 1's COMPLEMENT, and ANDed against the mask used to create the
event. The contents of CE1CRx+2 will be ORed into the POST MASK 2 field
of the event.
- For CB type posts, the contents of CE1CRx are moved directly to the event
area and the level is marked available. For a type CB only, one POSTC
is allowed. The event is marked satisfied with the first post.
- POSTC using the BLOCK parameter.
- For CNT type posts, EVNBKM2 can contain a 16-bit mask which is ORed into
the POST MASK 2 field of the event. The current value of the event will
be automatically decremented by 1 when the POSTC macro is issued.
- For MSK type posts, EVNBKM1 must contain a 16-bit mask to be converted to
a 1's complement and ANDed against the mask value in the named
event. EVNBKM2 can contain a 16-bit mask to be ORed into the POST MASK
2 field of the event.
- For CB type posts, the LEVEL keyword must be used to inform the SVC
processor of which core block level is to be used to satisfy the event.
- For LIST-type posts, each POSTC macro (post list) data item will be posted
to the corresponding item in the event list. When all items have been
posted, the event is completed. EVNBKLC must contain the count of items
in the data list, EVNBKLS must contain the size of a list item, and EVNBKLI
must contain the list of data items.
- R9 must contain the address of the ECB being processed.
- When the POSTC macro is called in the control program, the following
conditions are necessary:
- Register R0 contains the error code if the ERCODE parameter is coded
- Register R1 contains the address of the event macro communication block
(EV0BK)
- When the event is a core block (CB) type, the EVNBKCB field must contain
the system virtual address (SVA) of the core block to be posted
- Registers R14 and R15 are not preserved across the call
- The Block and Level parameters are not coded
- The NFOUND parameter is optional
- The POSTC service routine is run in system virtual memory (SVM).
The caller should be in SVM.
Return Conditions
- Control is returned to the next sequential instruction and the condition
code will be set accordingly.
- Condition code EQ 0, event found and processed.
- Condition code NE 0, event not found or data list item not found.
For LIST-type events, the flag field in the data item also indicates not found
(X'20').
- For TYPE=CB, the specified core block level will be marked as not holding
a block.
- A system error will be declared, if the type of the post and the type of
the event do not match. The posting ECB will be exited.
- The contents of R14 and R15 are unknown. The contents of
R0-R7 are preserved across this macro call.
- This macro can be run on any I-stream.
- Defined events in MDBF systems are subsystem unique.
Examples
None.