Kernel Functions for Drivers ddi_intr_get_cap(9F)
NAME
ddi_intr_get_cap, ddi_intr_set_cap - get or set interrupt
capabilities for a given interrupt typeSYNOPSIS
#include
#include
#include
#include
int ddi_intr_get_cap(ddi_intr_handle_t h, int *flagsp);
int ddi_intr_set_cap(ddi_intr_handle_t h, int flags);
INTERFACE LEVEL
Solaris DDI specific (Solaris DDI).PARAMETERS
ddi_intr_get_cap()
h DDI interrupt handle flagsp Pointer to the capability flags returned for this handleddi_intr_set_cap()
h DDI interrupt handle flags Contains the capability flag to be setDESCRIPTION
The ddi_intr_get_cap() function returns the interrupt capa-
bility flags for the interrupt handle h. Upon a successful return, the flags are returned in the integer pointed to by the flagsp argument. These flags are typically combinations of the following:DDI_INTR_FLAG_EDGE For discrete interrupts, the host
supports edge type of trigger. This flag is not returned forDDI_INTR_TYPE_MSI or
DDI_INTR_TYPE_MSIX interrupt
SunOS 5.11 Last change: 20 Apr 2005 1
Kernel Functions for Drivers ddi_intr_get_cap(9F)
types. This is a read-write (RW)
flag.DDI_INTR_FLAG_LEVEL For discrete interrupts the host
supports level, edge, or both types of triggers. This flag isnot returned for DDI_INTR_TYPE_MSI
or DDI_INTR_TYPE_MSIX interrupt
types.DDI_INTR_FLAG_MASKABLE The interrupt can be masked either
by the device or by the host bridge, or optionally by the host.This is a read-only (RO) flag.
DDI_INTR_FLAG_PENDING The interrupt supports an inter-
rupt pending bit. This is a read-
only (RO) flag.DDI_INTR_FLAG_BLOCK All interrupts of the given type
must be block-enabled and are not
individually maskable. This is aread-only (RO) flag.
The ddi_intr_set_cap() function allows a driver to specify
the capability flags for the interrupt handle h. OnlyDDI_INTR_FLAG_LEVEL and DDI_INTR_FLAG_EDGE flags can be set.
Some devices can support both level and edge capability andeither can be set by using the ddi_intr_set_cap() function.
Setting the capability flags is device and platform depen-
dent.The ddi_intr_set_cap() function can be called after inter-
rupts are allocated and prior to adding the interrupt handler. For all other times it returns failure.RETURN VALUES
The ddi_intr_get_cap() and ddi_intr_set_cap() functions
return:DDI_SUCCESS On success.
DDI_EINVAL On encountering invalid input parameters.
SunOS 5.11 Last change: 20 Apr 2005 2
Kernel Functions for Drivers ddi_intr_get_cap(9F)
DDI_FAILURE On any implementation specific failure.
DDI_ENOTSUP On device not supporting operation.
CONTEXT
The ddi_intr_get_cap() and ddi_intr_set_cap() functions can
be called from either user or kernel non-interrupt context.
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
SEE ALSO
attributes(5), ddi_intr_alloc(9F),
ddi_intr_block_enable(9F), ddi_intr_get_nintrs(9F),
ddi_intr_get_pending(9F), ddi_intr_get_supported_types(9F),
ddi_intr_set_mask(9F)
Writing Device Drivers NOTES Consumers of these interfaces should verify that the returnvalue is not equal to DDI_SUCCESS. Incomplete checking for
failure codes could result in inconsistent behavior among platforms.SunOS 5.11 Last change: 20 Apr 2005 3