From owner-cvs-src@FreeBSD.ORG Thu Feb 15 17:21:32 2007 Return-Path: X-Original-To: cvs-src@FreeBSD.org Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 4D32016A400; Thu, 15 Feb 2007 17:21:32 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 39EFA13C4B4; Thu, 15 Feb 2007 17:21:32 +0000 (UTC) (envelope-from luigi@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id l1FHLWce019526; Thu, 15 Feb 2007 17:21:32 GMT (envelope-from luigi@repoman.freebsd.org) Received: (from luigi@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id l1FHLWno019525; Thu, 15 Feb 2007 17:21:32 GMT (envelope-from luigi) Message-Id: <200702151721.l1FHLWno019525@repoman.freebsd.org> From: Luigi Rizzo Date: Thu, 15 Feb 2007 17:21:31 +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/arm/xscale/ixp425 ixp425_npe.c src/sys/dev/ipw if_ipw.c if_ipwvar.h src/sys/dev/isp isp_freebsd.h src/sys/dev/iwi if_iwi.c if_iwivar.h src/sys/dev/mxge if_mxge.c src/sys/kern subr_firmware.c src/sys/sys firmware.h src/sys/tools fw_stub.awk X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 Feb 2007 17:21:32 -0000 luigi 2007-02-15 17:21:31 UTC FreeBSD src repository Modified files: sys/arm/xscale/ixp425 ixp425_npe.c sys/dev/ipw if_ipw.c if_ipwvar.h sys/dev/isp isp_freebsd.h sys/dev/iwi if_iwi.c if_iwivar.h sys/dev/mxge if_mxge.c sys/kern subr_firmware.c sys/sys firmware.h sys/tools fw_stub.awk Log: Cleanup and document the implementation of firmware(9) based on a version that i posted earlier on the -current mailing list, and subsequent feedback received. The core of the change is just in sys/firmware.h and kern/subr_firmware.c, while other files are just adaptation of the clients to the ABI change (const-ification of some parameters and hiding of internal info, so this is fully compatible at the binary level). In detail: - reduce the amount of information exported to clients in struct firmware, and constify the pointer; - internally, document and simplify the implementation of the various functions, and make sure error conditions are dealt with properly. The diffs are large, but the code is really straightforward now (i hope). Note also that there is a subtle issue with the implementation of firmware_register(): currently, as in the previous version, we just store a reference to the 'imagename' argument, but we should rather copy it because there is no guarantee that this is a static string. I realised this while testing this code, but i prefer to fix it in a later commit -- there is no regression with respect to the past. Note, too, that the version in RELENG_6 has various bugs including missing locks around the module release calls, mishandling of modules loaded by /boot/loader, and so on, so an MFC is absolutely necessary there. I was just postponing it until this cleanup to avoid doing things twice. MFC after: 1 week Revision Changes Path 1.2 +1 -1 src/sys/arm/xscale/ixp425/ixp425_npe.c 1.23 +1 -1 src/sys/dev/ipw/if_ipw.c 1.6 +1 -1 src/sys/dev/ipw/if_ipwvar.h 1.99 +1 -1 src/sys/dev/isp/isp_freebsd.h 1.46 +2 -2 src/sys/dev/iwi/if_iwi.c 1.12 +1 -1 src/sys/dev/iwi/if_iwivar.h 1.21 +1 -1 src/sys/dev/mxge/if_mxge.c 1.9 +272 -153 src/sys/kern/subr_firmware.c 1.4 +15 -16 src/sys/sys/firmware.h 1.4 +1 -1 src/sys/tools/fw_stub.awk