From owner-cvs-src@FreeBSD.ORG Tue Mar 23 09:24:15 2004 Return-Path: Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 11F2216A4CF; Tue, 23 Mar 2004 09:24:15 -0800 (PST) Received: from harmony.village.org (rover.bsdimp.com [204.144.255.66]) by mx1.FreeBSD.org (Postfix) with ESMTP id 7C21D43D48; Tue, 23 Mar 2004 09:24:14 -0800 (PST) (envelope-from imp@bsdimp.com) Received: from localhost (warner@rover2.village.org [10.0.0.1]) by harmony.village.org (8.12.10/8.12.9) with ESMTP id i2NHODkj097688; Tue, 23 Mar 2004 10:24:13 -0700 (MST) (envelope-from imp@bsdimp.com) Date: Tue, 23 Mar 2004 10:24:16 -0700 (MST) Message-Id: <20040323.102416.32179617.imp@bsdimp.com> To: danfe@nsu.ru From: "M. Warner Losh" In-Reply-To: <20040323130235.GB39851@regency.nsu.ru> References: <20040322102119.P33645@root.org> <20040322191542.CD8DE16A4CF@hub.freebsd.org> <20040323130235.GB39851@regency.nsu.ru> X-Mailer: Mew version 3.3 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit cc: wpaul@FreeBSD.org cc: src-committers@FreeBSD.org cc: cvs-src@FreeBSD.org cc: cvs-all@FreeBSD.org cc: nate@root.org Subject: Re: cvs commit: src/sys/amd64/isa atpic.c src/sys/contrib/dev/oltr if_oltr.c src/sys/dev/aac aac_pci.c src/sys/dev/acpic X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.1 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: Tue, 23 Mar 2004 17:24:15 -0000 In message: <20040323130235.GB39851@regency.nsu.ru> Alexey Dokuchaev writes: : On Mon, Mar 22, 2004 at 11:15:42AM -0800, Bill Paul wrote: : > : > This is the entire bus_alloc_resource_any() function: : > : > static __inline struct resource * : > bus_alloc_resource_any(device_t dev, int type, int *rid, u_int flags) : > { : > return (bus_alloc_resource(dev, type, rid, 0ul, ~0ul, 1, flags)); : > } : > : > Please to be explaining why this isn't a macro: : > : > #define bus_alloc_resource_any(dev, type, rid, flags) \ : > bus_alloc_resource(dev, type, rid, 0ul, ~0ul, 1, flags) : : Pardon my sneaking in discussion, but I also wonder why isn't this a : macro? I probably should blame myself for not looking at the actual : diff when I received your commit message, but I was pretty sure that : you've just added a macro like Bill suggested above. As has been explained, macros are less safe than inlines. The above implementation suffers from a lack of (), for example. gcc and most other modern compilers generate identical code in both these cases and the inline gives a scoping that the macro does not. Warner