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 DriversNOTES
       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)