ddi_intr_enable man page on Solaris

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
Solaris logo
[printable version]

ddi_intr_enable(9F)	 Kernel Functions for Drivers	   ddi_intr_enable(9F)

NAME
       ddi_intr_enable,	       ddi_intr_block_enable,	     ddi_intr_disable,
       ddi_intr_block_disable - enable or disable a given interrupt  or	 range
       of interrupts

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

       int ddi_intr_enable(ddi_intr_handle_t h);

       int ddi_intr_block_enable(ddi_intr_handle_t *h_array, int count);

       int ddi_intr_disable(ddi_intr_handle_t h);

       int ddi_intr_block_disable(ddi_intr_handle_t *h_array, int count);

INTERFACE LEVEL
       Solaris DDI specific (Solaris DDI).

PARAMETERS
       ddi_intr_enable()

       h	       DDI interrupt handle

       ddi_intr_block_enable()

       h_array	       Pointer to an array of DDI interrupt handles

       count	       Number of interrupts

       ddi_intr_disable()

       h	       DDI interrupt handle

       ddi_intr_block_disable()

       h_array	       Pointer to an array of DDI interrupt handles

       count	       Number of interrupts

DESCRIPTION
       The  ddi_intr_enable()  function	 enables  the  interrupt  given by the
       interrupt handle h.

       The ddi_intr_block_enable() function  enables  a	 range	of  interrupts
       given  by the count and h_array arguments, where count must be at least
       1 and h_array is pointer to a count-sized array of interrupt handles.

       The ddi_intr_block_enable() function can be used only if the device  or
       host   bridge   supports	  the	block	enable/disable	 feature.  The
       ddi_intr_get_cap() function returns the RO flag DDI_INTR_FLAG_BLOCK  if
       the  device  or host bridge supports the interrupt block enable/disable
       feature for the given interrupt type. The ddi_intr_block_enable() func‐
       tion is useful for enabling MSI interrupts when the optional per-vector
       masking capability is not supported.

       The ddi_intr_enable()  or  ddi_intr_block_enable()  functions  must  be
       called  after  the  required  interrupt	resources  are	allocated with
       ddi_intr_alloc(),   the	 interrupt   handlers	are   added    through
       ddi_intr_add_handler(),	and  the  required  locks  are	initialized by
       mutex(9F) or rwlock(9F).

       Once enabled by either of the enable calls, the interrupt can be	 taken
       and  passed  to	the  driver's  interrupt  service routine. Enabling an
       interrupt implies clearing any system or device	mask  bits  associated
       with the interrupt.

       The  ddi_intr_disable()	function  disables  the interrupt given by the
       interrupt handle h.

       The ddi_intr_block_disable() function disables a	 range	of  interrupts
       given  by the count and h_array arguments, where count must be at least
       1 and h_array is pointer to a count-sized array of interrupt handles.

       The ddi_intr_block_disable() function can be used only if the device or
       host   bridge   supports	  the	block	enable/disable	 feature.  The
       ddi_intr_get_cap() function returns the RO flag DDI_INTR_FLAG_BLOCK  if
       the  device  or host bridge supports the interrupt block enable/disable
       feature for the	given  interrupt  type.	 The  ddi_intr_block_disable()
       function	 is useful for disabling MSI interrupts when the optional per-
       vector masking capability is not supported.

       The ddi_intr_disable() or ddi_intr_block_disable()  functions  must  be
       called  before  removing	 the  interrupt handler and freeing the corre‐
       sponding interrupt with ddi_intr_remove_handler() and  ddi_intr_free(),
       respectively.   The  ddi_intr_block_disable() function should be called
       if the ddi_intr_block_enable() function was used to enable  the	inter‐
       rupts.

RETURN VALUES
       The ddi_intr_enable(), ddi_intr_block_enable(), ddi_intr_disable(), and
       ddi_intr_block_disable() functions return:

       DDI_SUCCESS	       On success.

       DDI_EINVAL	       On encountering invalid input parameters.

       DDI_FAILURE	       On any implementation specific failure.

CONTEXT
       The ddi_intr_enable(), ddi_intr_block_enable(), ddi_intr_disable(), and
       ddi_intr_block_disable() functions can be called from kernel non-inter‐
       rupt context.

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Interface Stability	     │Evolving			   │
       └─────────────────────────────┴─────────────────────────────┘

SEE ALSO
       attributes(5),	   ddi_intr_add_handler(9F),	   ddi_intr_alloc(9F),
       ddi_intr_dup_handler(9F),    ddi_intr_free(9F),	 ddi_intr_get_cap(9F),
       ddi_intr_remove_handler(9F), mutex(9F), rwlock(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.

       If a device driver that	uses  MSI  and	MSI-X  interrupts  resets  the
       device,	the  device might reset its configuration space modifications.
       Such a reset could cause a device driver to  lose  any  MSI  and	 MSI-X
       interrupt usage settings that have been applied.

SunOS 5.10			  22 Apr 2005		   ddi_intr_enable(9F)
[top]

List of man pages available for Solaris

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net