DDI_INTR_GET_CAP(9F) 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 type

SYNOPSIS


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

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


illumos DDI specific (illumos DDI).

PARAMETERS


ddi_intr_get_cap()

h
DDI interrupt handle


flagsp
Pointer to the capability flags returned for this handle


ddi_intr_set_cap()

h
DDI interrupt handle


flags
Contains the capability flag to be set


DESCRIPTION


The ddi_intr_get_cap() function returns the interrupt capability
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 for DDI_INTR_TYPE_MSI or
DDI_INTR_TYPE_MSIX interrupt 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 is not 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 interrupt 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 a read-only (RO) flag.


The ddi_intr_set_cap() function allows a driver to specify the
capability flags for the interrupt handle h. Only DDI_INTR_FLAG_LEVEL
and DDI_INTR_FLAG_EDGE flags can be set. Some devices can support
both level and edge capability and either can be set by using the
ddi_intr_set_cap() function. Setting the capability flags is device
and platform dependent.


The ddi_intr_set_cap() function can be called after interrupts 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.


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(7) for descriptions of the following attributes:


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

SEE ALSO


attributes(7), 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 return value is
not equal to DDI_SUCCESS. Incomplete checking for failure codes could
result in inconsistent behavior among platforms.

April 20, 2005 DDI_INTR_GET_CAP(9F)

tribblix@gmail.com :: GitHub :: Privacy