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
Solaris DDI specific (Solaris DDI).
PARAMETERSddi_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 mask‐
able. This is a read-only (RO) flag.
The ddi_intr_set_cap() function allows a driver to specify the capabil‐
ity 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(5) for descriptions of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Interface Stability │Evolving │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOattributes(5), ddi_intr_alloc(9F), ddi_intr_block_enable(9F),
ddi_intr_get_nintrs(9F), ddi_intr_get_pending(9F), ddi_intr_get_sup‐
ported_types(9F), ddi_intr_set_mask(9F)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.
SunOS 5.10 20 Apr 2005 ddi_intr_get_cap(9F)