ddi_intr_remove_handler man page on OpenIndiana

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

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

NAME
       ddi_intr_add_handler, ddi_intr_remove_handler - add or remove interrupt
       handler

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

       int ddi_intr_add_handler(ddi_intr_handle_t *h,
	    ddi_intr_handler_t inthandler, void *arg1,
	     void *arg2);

       int ddi_intr_remove_handler(ddi_intr_handle_t h);

INTERFACE LEVEL
       Solaris DDI specific (Solaris DDI).

PARAMETERS
       ddi_intr_add_handler()

       h	     Pointer to the DDI interrupt handle

       inthandler    Pointer to interrupt handler

       arg1	     First argument for the interrupt handler

       arg2	     Second, optional, argument for the interrupt handler

       ddi_intr_remove_handler()

       h    DDI interrupt handle

DESCRIPTION
       The ddi_intr_add_handler() function adds an interrupt handler given  by
       the  inthandler	argument to the system with the handler arguments arg1
       and arg2 for the previously allocated interrupt handle specified by the
       h pointer. The arguments arg1 and arg2 are passed as the first and sec‐
       ond arguments, respectively, to the interrupt handler  inthandler.  See
       <sys/ddi_intr.h> for the definition of the interrupt handler.

       The  routine inthandler with the arguments arg1 and arg2 is called upon
       receipt of the appropriate  interrupt.  The  interrupt  handler	should
       return	 DDI_INTR_CLAIMED    if	  the	interrupt   is	 claimed   and
       DDI_INTR_UNCLAIMED otherwise.

       The   ddi_intr_add_handler()   function	 must	 be    called	 after
       ddi_intr_alloc(), but before ddi_intr_enable() is called. The interrupt
       must be enabled through	ddi_intr_enable()  or  ddi_intr_block_enable()
       before it can be used.

       The ddi_intr_remove_handler() function removes the handler association,
       added previously with ddi_intr_add_handler(), for the interrupt identi‐
       fied by the interrupt handle h argument. Unloadable drivers should call
       this routine during their detach(9E) routine to	remove	the  interrupt
       handler from the system.

       The ddi_intr_remove_handler() function is used to disassociate the han‐
       dler after the interrupt is disabled to remove  dup-ed  interrupt  han‐
       dles.  See  ddi_intr_dup_handler(9F) for dup-ed interrupt handles. If a
       handler is duplicated with  the	ddi_intr_dup_handler()	function,  all
       added  and  duplicated  instances  of  the handler must be removed with
       ddi_intr_remove_handler() in order for the  handler  to	be  completely
       removed.

RETURN VALUES
       The   ddi_intr_add_handler()  and  ddi_intr_remove_handler()  functions
       return:

       DDI_SUCCESS    On success.

       DDI_EINVAL     On encountering invalid input parameters.

       DDI_FAILURE    On any implementation specific failure.

CONTEXT
       The ddi_intr_add_handler() and ddi_intr_remove_handler() functions  can
       be called from kernel non-interrupt context.

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

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

SEE ALSO
       attributes(5),	   attach(9E),	   detach(9E),	   ddi_intr_alloc(9F),
       ddi_intr_block_enable(9F),   ddi_intr_disable(9F),    ddi_intr_dup_han‐
       dler(9F),   ddi_intr_enable(9F),	 ddi_intr_free(9F),  ddi_intr_get_sup‐
       ported_types(9F), mutex(9F), mutex_init(9F), rw_init(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.

       The  second argument, arg2, is optional. Device drivers are free to use
       the two arguments however they see fit. There is no  officially	recom‐
       mended  model  or  restrictions.	 For example, an interrupt handler may
       wish to use the first argument as the pointer to its softstate and  the
       second argument as the value of the MSI vector.

SunOS 5.11			  22 Apr 2005	      ddi_intr_add_handler(9F)
[top]

List of man pages available for OpenIndiana

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