]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Bring in the reminaing bits to make interrupt filtering work:
authorPaolo Pisati <piso@FreeBSD.org>
Sun, 6 May 2007 17:02:50 +0000 (17:02 +0000)
committerPaolo Pisati <piso@FreeBSD.org>
Sun, 6 May 2007 17:02:50 +0000 (17:02 +0000)
commitbafe5a3118069948d0342cf0e107a2d12e324477
treee66c2b004bab077c7727881fe5ffb706d78b575c
parent0e86bad6e39f556edec65e0bc7cdb8e5e5e4cc4b
Bring in the reminaing bits to make interrupt filtering work:

o push much of the i386 and amd64 MD interrupt handling code
  (intr_machdep.c::intr_execute_handlers()) into MI code
  (kern_intr.c::ithread_loop())
o move filter handling to kern_intr.c::intr_filter_loop()
o factor out the code necessary to mask and ack an interrupt event
  (intr_machdep.c::intr_eoi_src() and intr_machdep.c::intr_disab_eoi_src()),
  and make them part of 'struct intr_event', passing them as arguments to
  kern_intr.c::intr_event_create().
o spawn a private ithread per handler (struct intr_handler::ih_thread)
  with filter and ithread functions.

Approved by: re (implicit?)
sys/amd64/amd64/intr_machdep.c
sys/i386/i386/intr_machdep.c
sys/kern/kern_intr.c
sys/sys/interrupt.h