Copyright (c) 2005, Sun Microsystems, Inc. All Rights Reserved.
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
#include <sys/types.h> #include <sys/conf.h> #include <sys/ddi.h> #include <sys/sunddi.h> int ddi_intr_get_pending(ddi_intr_handle_t h, int *pendingp);
Solaris DDI specific (Solaris DDI).
DDI interrupt handle
Pointer to the pending capability returned for this handle
The ddi_intr_get_pending() function returns non-zero as the integer pointed to by the pendingp argument if a corresponding interrupt is pending. The corresponding interrupt handle h must already be allocated. The call succeeds if the device or host bridge supports the ability to read the interrupt pending bits of its interrupts. The driver should use ddi_intr_get_cap() function to see if the DDI_INTR_FLAG_PENDING flag is returned to indicate that interrupts support interrupt pending bits.
If the DDI_INTR_FLAG_PENDING capability is not supported, ddi_intr_get_pending() returns DDI_ENOTSUP and zero in pendingp.
The ddi_intr_get_pending() function returns: DDI_SUCCESS
On success.
On encountering invalid input parameters.
On any implementation specific failure.
On device not supporting operation.
The ddi_intr_get_pending() function can be called from either user or kernel non-interrupt context.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE ATTRIBUTE VALUE |
Interface Stability Evolving |
attributes(5), ddi_intr_block_enable(9F), ddi_intr_block_disable(9F), ddi_intr_clr_mask(9F), ddi_intr_disable(9F), ddi_intr_enable(9F), ddi_intr_set_mask(9F)
Writing Device Drivers
Any consumer of this interface should verify that the return value is not equal to DDI_SUCCESS. Incomplete checking for failure codes could result in inconsistent behavior among platforms.