From owner-cvs-all@FreeBSD.ORG Mon Nov 3 13:25:53 2003 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BFAC716A4CE; Mon, 3 Nov 2003 13:25:53 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 44E2D43FBD; Mon, 3 Nov 2003 13:25:53 -0800 (PST) (envelope-from jhb@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id hA3LPrXJ091393; Mon, 3 Nov 2003 13:25:53 -0800 (PST) (envelope-from jhb@repoman.freebsd.org) Received: (from jhb@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id hA3LPqnw091392; Mon, 3 Nov 2003 13:25:52 -0800 (PST) (envelope-from jhb) Message-Id: <200311032125.hA3LPqnw091392@repoman.freebsd.org> From: John Baldwin Date: Mon, 3 Nov 2003 13:25:52 -0800 (PST) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Subject: cvs commit: src/sys/i386/i386 intr_machdep.c src/sys/i386/include intr_machdep.h X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Nov 2003 21:25:53 -0000 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)