From owner-cvs-all@FreeBSD.ORG Thu Mar 20 21:24:33 2008 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 40AE21065677; Thu, 20 Mar 2008 21:24:33 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2D8CE8FC1A; Thu, 20 Mar 2008 21:24:33 +0000 (UTC) (envelope-from jhb@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m2KLOXrL081892; Thu, 20 Mar 2008 21:24:33 GMT (envelope-from jhb@repoman.freebsd.org) Received: (from jhb@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m2KLOXwn081891; Thu, 20 Mar 2008 21:24:33 GMT (envelope-from jhb) Message-Id: <200803202124.m2KLOXwn081891@repoman.freebsd.org> From: John Baldwin Date: Thu, 20 Mar 2008 21:24:33 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/amd64/amd64 nexus.c src/sys/i386/i386 nexus.c src/sys/kern bus_if.m subr_bus.c src/sys/sys bus.h X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 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: Thu, 20 Mar 2008 21:24:33 -0000 jhb 2008-03-20 21:24:32 UTC FreeBSD src repository Modified files: sys/amd64/amd64 nexus.c sys/i386/i386 nexus.c sys/kern bus_if.m subr_bus.c sys/sys bus.h Log: Implement a BUS_BIND_INTR() method in the bus interface to bind an IRQ resource to a CPU. The default method is to pass the request up to the parent similar to BUS_CONFIG_INTR() so that all busses don't have to explicitly implement bus_bind_intr. A bus_bind_intr(9) wrapper routine similar to bus_setup/teardown_intr() is added for device drivers to use. Unbinding an interrupt is done by binding it to NOCPU. The IRQ resource must be allocated, but it can happen in any order with respect to bus_setup_intr(). Currently it is only supported on amd64 and i386 via nexus(4) methods that simply call the intr_bind() routine. Tested by: gallatin Revision Changes Path 1.80 +14 -0 src/sys/amd64/amd64/nexus.c 1.75 +14 -0 src/sys/i386/i386/nexus.c 1.35 +17 -0 src/sys/kern/bus_if.m 1.207 +31 -0 src/sys/kern/subr_bus.c 1.81 +3 -0 src/sys/sys/bus.h