Patent ID: 7500039

Claim:
A method, in a data processing system, for communicating instructions and data associated with events in a processor, comprising: establishing one or more channels with an event facility of the processor for communicating event data; receiving data in the event facility via the one or more channels; storing the data in one or more registers associated with the one or more channels; processing one or more events based on the data stored in the one or more registers; setting, in response to an edge-triggered event, a bit in a pending event register of the event facility corresponding to the edge-triggered event, wherein the pending event register has a plurality of bits with each bit in the plurality of bits being associated with a corresponding edge-triggered event; acknowledging events, corresponding to bits in the plurality of bits in the pending event register that are set, by writing a value to a corresponding bit in a write event acknowledgment channel; returning, in response to issuing a read channel instruction to a read event status channel, a value of the pending event register logically AND'd with a value in a write event mask channel to thereby provide event status information for only enabled events identified in the write event mask channel; changing contents of the read event status channel in response to a new value being written to the write event mask channel or a new event being recorded in the pending event register; incrementing, in response to changing a bit in the read event status channel, a read event status channel count by 1; incrementing the read event status channel count by 1 in response to an event being set in the read event status channel after a write channel instruction is sent to the write event acknowledgment channel; decrementing the read event status channel count by 1 in response to the read event status channel being read using a channel read instruction; and sending an interrupt to the processor in response to the read event status channel count being non-zero.