User Tools

Site Tools


solaris:ddi_intr_get_cap.9f

ddi_intr_get_cap


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

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:

SEE ALSO

attributes(7), ddi_intr_set_mask(9F), 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)

Writing Device Drivers in Oracle Solaris 11.4

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.


solaris/ddi_intr_get_cap.9f.txt · Last modified: 2023/07/19 08:57 by A User Not Logged in