cvs commit: src/sys/i386/i386 intr_machdep.c src/sys/i386/include intr_machdep.h

John Baldwin jhb at FreeBSD.org
Mon Nov 3 13:25:53 PST 2003


jhb         2003/11/03 13:25:52 PST

  FreeBSD src repository

  Added files:
    sys/i386/i386        intr_machdep.c 
    sys/i386/include     intr_machdep.h 
  Log:
  New device interrupt code.  This defines an interrupt source abstraction
  that provides methods via a PIC driver to do things like mask a source,
  unmask a source, enable it when the first interrupt handler is added, etc.
  The interrupt code provides a table of interrupt sources indexed by IRQ
  numbers, or vectors.  These vectors are what new-bus uses for its IRQ
  resources and for bus_setup_intr()/bus_teardown_intr().  The interrupt
  code then maps that vector a given interrupt source object.  When an
  interrupt comes in, the low-level interrupt code looks up the interrupt
  source for the source that triggered the interrupt and hands it off to
  this code to execute the appropriate handlers.
  
  By having an interrupt source abstraction, this allows us to have different
  types of interrupt source providers within the shared IRQ address space.
  For example, IRQ 0 may map to pin 0 of the master 8259A PIC, IRQs 1
  through 60 may map to pins on various I/O APICs, and IRQs 120 through
  128 may map to MSI interrupts for various PCI devices.
  
  Revision  Changes    Path
  1.1       +296 -0    src/sys/i386/i386/intr_machdep.c (new)
  1.1       +91 -0     src/sys/i386/include/intr_machdep.h (new)


More information about the cvs-src mailing list