*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->FreeBSD man pages -> BUS_SETUP_INTR (9)              
Title
Content
Arch
Section
 

BUS_SETUP_INTR(9)

Contents


NAME    [Toc]    [Back]

     BUS_SETUP_INTR, bus_setup_intr, BUS_TEARDOWN_INTR, bus_teardown_intr --
     create, attach and teardown an interrupt handler

SYNOPSIS    [Toc]    [Back]

     #include <sys/param.h>
     #include <sys/bus.h>

     int
     BUS_SETUP_INTR(device_t dev, device_t child, struct resource *irq,
	 int flags, driver_intr_t *intr, void *arg, void **cookiep);

     int
     bus_setup_intr(device_t dev, struct resource *r, int flags,
	 driver_intr_t handler, void *arg, void **cookiep);

     int
     BUS_TEARDOWN_INTR(device_t dev, device_t child, struct resource *irq,
	 void *cookiep);

     int
     bus_teardown_intr(device_t dev, struct resource *r, void *cookiep);

DESCRIPTION    [Toc]    [Back]

     The method BUS_SETUP_INTR will create and attach an interrupt handler to
     an interrupt previously allocated by the resource manager's
     BUS_ALLOC_RESOURCE(9) method.  The flags are found in <sys/bus.h>, and
     give the broad category of interrupt.  The flags also tell the interrupt
     handlers the about certain device driver characteristics.	INTR_FAST
     means the handler is for a timing-critical function.  Extra care is take
     to speed up these handlers.  Use of this implies INTR_EXCL.  INTR_EXCL
     marks the handler as being an exclusive handler for this interrupt.
     INTR_MPSAFE tells the scheduler that the interrupt handler is well
     behaved in a preemptive environment (``SMP safe''), and does not need to
     be protected by the ``Giant Lock'' mutex.	INTR_ENTROPY marks the interrupt
 as being a good source of entropy - this may be used by the entropy
     device /dev/random.  The handler intr will be called with the value arg
     as its only argument.

     The cookiep argument is a pointer to a void * that BUS_SETUP_INTR will
     write a cookie for the parent bus' use to if it is successful in establishing
 an interrupt.  Driver writers may assume that this cookie will be
     non-zero.	The nexus driver will write 0 on failure to cookiep.

     The interrupt handler will be detached by BUS_TEARDOWN_INTR().  The
     cookie needs to be passed to BUS_TEARDOWN_INTR() in order to tear down
     the correct interrupt handler.

RETURN VALUES    [Toc]    [Back]

     Zero is returned on success, otherwise an appropriate error is returned.

SEE ALSO    [Toc]    [Back]

      
      
     random(4), device(9), driver(9)

AUTHORS    [Toc]    [Back]

     This manual page was written by Jeroen Ruigrok van der Werven
     <[email protected]> based on the manual pages for BUS_CREATE_INTR and
     BUS_CONNECT_INTR written by Doug Rabson <[email protected]>.


FreeBSD 5.2.1			March 28, 2003			 FreeBSD 5.2.1
[ Back ]
 Similar pages
Name OS Title
isr_add_autovect NetBSD establish interrupt handler
isr_add NetBSD establish interrupt handler
isr_add_custom NetBSD establish interrupt handler
isr_add_vectored NetBSD establish interrupt handler
pthread_cleanup_pop Tru64 (Macro) Removes the cleanup handler routine from the calling thread's cleanup handler stack and opti...
DEVICE_ATTACH FreeBSD attach a device
glxmakecontextcurrent IRIX attach a GLX context to a GLX drawable
usbd FreeBSD supervise USB attach/detach
sigreturn IRIX returns from a signal handler.
re_comp FreeBSD regular expression handler
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service