User Tools

Site Tools


solaris:ddi_intr_set_mask.9f

ddi_intr_set_mask


NAME

ddi_intr_set_mask, ddi_intr_clr_mask - set or clear mask for a given interrupt

SYNOPSIS

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

int ddi_intr_set_mask(ddi_intr_handle_t h);

int ddi_intr_clr_mask(ddi_intr_handle_t h);

INTERFACE LEVEL

Solaris DDI specific (Solaris DDI).

PARAMETERS

h

DDI interrupt handle

DESCRIPTION

The ddi_intr_set_mask() function masks the given interrupt pointed to by the device’s interrupt handle h if the device or host bridge supports the masking operation. The ddi_intr_get_cap() function returns the RO flag DDI_INTR_FLAG_MASKABLE if the device or host bridge supports interrupt mask bits for the given interrupt type. In flight interrupts can still be taken and delivered to the driver.

The ddi_intr_clr_mask() function unmasks the given interrupt pointed by the device’s interrupt handle h if the device or host bridge supports the masking operation.

The ddi_intr_set_mask() and ddi_intr_clr_mask() functions should be called only if an interrupt is enabled. Otherwise the framework will return DDI_EINVAL to such calls.

The mask cannot be cleared directly if the OS implementation has also temporarily masked the interrupt. A call to ddi_intr_clr_mask() must be preceded by a call to ddi_intr_set_mask(). It is not necessary to call ddi_intr_clr_mask() when adding and enabling the interrupt.

RETURN VALUES

The ddi_intr_set_mask() and ddi_intr_clr_mask() functions return:

DDI_SUCCESS

On success.

DDI_EINVAL

On encountering invalid input parameters or when an interrupt is not enabled.

DDI_FAILURE

On any implementation specific failure.

DDI_ENOTSUP

On device not supporting operation.

CONTEXT

The ddi_intr_set_mask() and ddi_intr_clr_mask() functions can be called from any context.

ATTRIBUTES

See attributes(7) for descriptions of the following attributes:

SEE ALSO

attributes(7), ddi_intr_block_disable(9F), ddi_intr_block_enable(9F), ddi_intr_disable(9F), ddi_intr_enable(9F), ddi_intr_get_pending(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_set_mask.9f.txt · Last modified: 2023/07/19 08:58 by A User Not Logged in