DDI_INTR_SET_MASK(9F) Kernel Functions for Drivers DDI_INTR_SET_MASK(9F)


NAME


ddi_intr_set_mask, ddi_intr_clr_mask - set or clear mask for a given
interrupt

SYNOPSIS


#include <sys/types.h>
#include <sys/conf.h>
#include <sys/ddi.h>
#include <sys/sunddi.h>

int ddi_intr_set_mask(ddi_intr_handle_t h);


int ddi_intr_clr_mask(ddi_intr_handle_t h);


INTERFACE LEVEL


Solaris DDI specific (Solaris DDI).

PARAMETERS


h
DDI interrupt handle


DESCRIPTION


The ddi_intr_set_mask() function masks the given interrupt pointed to by
the device's interrupt handle h if the device or host bridge supports the
masking operation. The ddi_intr_get_cap() function returns the RO flag
DDI_INTR_FLAG_MASKABLE if the device or host bridge supports interrupt
mask bits for the given interrupt type. In flight interrupts can still be
taken and delivered to the driver.


The ddi_intr_clr_mask() function unmasks the given interrupt pointed by
the device's interrupt handle h if the device or host bridge supports the
masking operation.


The ddi_intr_set_mask() and ddi_intr_clr_mask() functions should be
called only if an interrupt is enabled. Otherwise the framework will
return DDI_EINVAL to such calls.


The mask cannot be cleared directly if the OS implementation has also
temporarily masked the interrupt. A call to ddi_intr_clr_mask() must be
preceded by a call to ddi_intr_set_mask(). It is not necessary to call
ddi_intr_clr_mask() when adding and enabling the interrupt.

RETURN VALUES


The ddi_intr_set_mask() and ddi_intr_clr_mask() functions return:

DDI_SUCCESS
On success.


DDI_EINVAL
On encountering invalid input parameters or when an
interrupt is not enabled.


DDI_FAILURE
On any implementation specific failure.


DDI_ENOTSUP
On device not supporting operation.


CONTEXT


The ddi_intr_set_mask() and ddi_intr_clr_mask() functions can be called
from any context.

ATTRIBUTES


See attributes(5) for descriptions of the following attributes:


+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Committed |
+--------------------+-----------------+

SEE ALSO


attributes(5), ddi_intr_block_disable(9F), ddi_intr_block_enable(9F),
ddi_intr_disable(9F), ddi_intr_enable(9F), ddi_intr_get_pending(9F)


Writing Device Drivers

NOTES


Consumers of these interfaces should verify that the return value is not
equal to DDI_SUCCESS. Incomplete checking for failure codes could result
in inconsistent behavior among platforms.


April 5, 2006 DDI_INTR_SET_MASK(9F)