INTERRUPT POLL Function

Read syntax diagramSkip visual syntax diagram label IUCV IPOLL ,PRMLIST= addressOptional Parameters1
Optional Parameters
Read syntax diagramSkip visual syntax diagram,MF=L,BUFFER= address,BUFLEN= address
Notes:
  • 1 Optional parameters can be entered in any order.

Purpose

The INTERRUPT POLL (IPOLL) function determines whether you have any replies or incoming messages pending. If IUCV finds any replies or incoming messages pending, it returns the information about them in the buffer provided. The maximum number of pending interrupts that can be retrieved on a single request is the number of IUCV external interrupt buffers which can fit on one 4K page.
Notes:
  1. Unless you disable your virtual machine for IUCV message-complete and message-pending interrupts, you should not use the INTERRUPT POLL function. When the virtual machine is enabled for these interrupts, IUCV automatically informs you of message completion or arrival of an incoming message by reflecting an external interrupt to your virtual machine.
  2. No external interrupt will occur for a reply represented by a message-complete returned by the INTERRUPT POLL function.
  3. No external interrupt will occur for a message represented by a message-pending returned by the INTERRUPT POLL function. It is your responsibility to use the RECEIVE or REJECT function to process a message obtained using the INTERRUPT POLL function.

This function has a different meaning in a virtual MP environment. For more information about a virtual MP environment, see Virtual MP Considerations for IUCV Applications.

Parameters

Required Parameters:
IPOLL
Requests that CP perform the IUCV INTERRUPT POLL function.
PRMLIST=
Specifies the address of the INTERRUPT POLL parameter list. The IUCV instruction is generated to reference the address specified. The address of the parameter list must be on a doubleword boundary.

Optional Parameters: If you do not specify these parameters, the macro assumes that you have stored the desired values into the parameter list before invoking the IUCV macro.

MF=L
Lets you build an IUCV parameter list without initializing any registers or executing the IUCV instruction.
BUFFER=
Specifies the address of the INTERRUPT POLL buffer for interrupt data.
BUFLEN=
Specifies the length of the INTERRUPT POLL buffer for interrupt data. This length must be at least the size of an IUCV interrupt buffer and not more than 4096 bytes, and the buffer may not cross a 4K page boundary. The length need not be an exact multiple of the length of an IPARML.
Parameter List Format:
INTERRUPT POLL Function parameter list format. See the surrounding text for a description of the parameter list input fields for diagram.
Parameter List Input Fields:
IPBFADR1
contains the address of the input buffer.
IPBFLN1F
contains the length of the input buffer.

Condition Codes and Return Codes

CONDITION CODES  
0 - Normal completion
1 - Nonzero value stored at IPRCODE
2 - No message found.
 
Parameter List Output Fields:
IPBFLN1F
contains the length of the output data returned by the INTERRUPT POLL function. This value will always be a multiple of the length of an IUCV external interrupt buffer (IPARML).
IPRCODE
contains the return code describing how this function completed.
RETURN CODES in IPRCODE  
0 - X'00' - Normal return
92 - X'5C' - A paging or storage error was detected.
 

Program Exceptions

The program exceptions for IUCV INTERRUPT POLL are:
Specification Exception
The parameter list is not on a doubleword boundary.

The buffer length specified is less than the size of an IUCV interrupt buffer.

The buffer specified spans a 4K page boundary.

Operation Exception
The external interrupt buffer has not been declared using the DECLARE BUFFER function, your virtual machine is not in supervisor state, or a previous RETRIEVE BUFFER function is outstanding and has not completed yet.
Addressing Exception
The parameter list address that you specified is outside the virtual machine's storage.

Completion Conditions

Output Buffer Format: When the condition code is zero, the buffer contains one or more interrupt data areas for replies and messages. See Message Complete External Interrupt, and Message Pending External Interrupt. The remainder of the buffer not occupied by the external interrupt data remains unchanged.

If no more replies or messages are pending for the invoker, the last interrupt placed in the output buffer will have the IPNOPOLL flag set.

If INTERRUPT POLL is issued in an APPC/VM environment you may receive interrupt information both for IUCV and APPC/VM paths.