]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/commit
MFC 198134,198149,198170,198171,198391,200948:
authorjhb <jhb@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 21 Jan 2010 17:54:29 +0000 (17:54 +0000)
committerjhb <jhb@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 21 Jan 2010 17:54:29 +0000 (17:54 +0000)
commitcc28ae06067d8d9b1ea97db083389f31ae6fb365
treea82c29b1f85ca28d6ccc85ed05f9dea6987b210f
parent2f2d50e8e564dd7bc266ac12276f76369f206e0c
MFC 198134,198149,198170,198171,198391,200948:
Add a facility for associating optional descriptions with active interrupt
handlers.  This is primarily intended as a way to allow devices that use
multiple interrupts (e.g. MSI) to meaningfully distinguish the various
interrupt handlers.
- Add a new BUS_DESCRIBE_INTR() method to the bus interface to associate
  a description with an active interrupt handler setup by BUS_SETUP_INTR.
  It has a default method (bus_generic_describe_intr()) which simply passes
  the request up to the parent device.
- Add a bus_describe_intr() wrapper around BUS_DESCRIBE_INTR() that supports
  printf(9) style formatting using var args.
- Reserve MAXCOMLEN bytes in the intr_handler structure to hold the name of
  an interrupt handler and copy the name passed to intr_event_add_handler()
  into that buffer instead of just saving the pointer to the name.
- Add a new intr_event_describe_handler() which appends a description string
  to an interrupt handler's name.
- Implement support for interrupt descriptions on amd64, i386, and sparc64 by
  having the nexus(4) driver supply a custom bus_describe_intr method that
  invokes a new intr_describe() MD routine which in turn looks up the
  associated interrupt event and invokes intr_event_describe_handler().

git-svn-id: svn://svn.freebsd.org/base/stable/8@202762 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
18 files changed:
share/man/man9/BUS_DESCRIBE_INTR.9 [new file with mode: 0644]
share/man/man9/Makefile
sys/amd64/amd64/intr_machdep.c
sys/amd64/amd64/nexus.c
sys/amd64/include/intr_machdep.h
sys/i386/i386/intr_machdep.c
sys/i386/i386/nexus.c
sys/i386/include/intr_machdep.h
sys/kern/bus_if.m
sys/kern/kern_intr.c
sys/kern/subr_bus.c
sys/sparc64/include/intr_machdep.h
sys/sparc64/pci/psycho.c
sys/sparc64/pci/schizo.c
sys/sparc64/sparc64/intr_machdep.c
sys/sparc64/sparc64/nexus.c
sys/sys/bus.h
sys/sys/interrupt.h