From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1KaIzf-0000Yz-Rf for mharc-grub-devel@gnu.org; Mon, 01 Sep 2008 19:39:35 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KaIze-0000Xh-Fw for grub-devel@gnu.org; Mon, 01 Sep 2008 19:39:34 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KaIzc-0000Vm-Qd for grub-devel@gnu.org; Mon, 01 Sep 2008 19:39:33 -0400 Received: from [199.232.76.173] (port=59014 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KaIzc-0000Vh-IJ for grub-devel@gnu.org; Mon, 01 Sep 2008 19:39:32 -0400 Received: from c60.cesmail.net ([216.154.195.49]:30949) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_ARCFOUR_SHA1:16) (Exim 4.60) (envelope-from ) id 1KaIzc-00089C-8V for grub-devel@gnu.org; Mon, 01 Sep 2008 19:39:32 -0400 Received: from unknown (HELO relay.cesmail.net) ([192.168.1.81]) by c60.cesmail.net with ESMTP; 01 Sep 2008 19:39:31 -0400 Received: from [192.168.0.21] (static-72-92-88-10.phlapa.fios.verizon.net [72.92.88.10]) by relay.cesmail.net (Postfix) with ESMTP id D891C4F1869 for ; Mon, 1 Sep 2008 19:39:30 -0400 (EDT) From: Pavel Roskin To: The development of GRUB 2 In-Reply-To: <20080831133355.GC2688@thorin> References: <20080830122626.GA5899@thorin> <20080830114118.3zltziz18g0ss8ws-cebfxv@webmail.spamcop.net> <20080831133355.GC2688@thorin> Content-Type: text/plain Date: Mon, 01 Sep 2008 19:39:29 -0400 Message-Id: <1220312369.21219.18.camel@dv> Mime-Version: 1.0 X-Mailer: Evolution 2.22.3.1 (2.22.3.1-1.fc9) Content-Transfer-Encoding: 7bit X-detected-kernel: by monty-python.gnu.org: Genre and OS details not recognized. Subject: Re: [PATCH] fix disk->id abuse X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 01 Sep 2008 23:39:34 -0000 On Sun, 2008-08-31 at 15:33 +0200, Robert Millan wrote: > On Sat, Aug 30, 2008 at 11:41:18AM -0400, Pavel Roskin wrote: > > Quoting Robert Millan : > > > > >So this patch means to solve both issues; makes single-disk drivers use a > > >constant directly (since a pointer to string is meaningless and confusing), > > >and disk/scsi.c use LUNs which (I believe) will work as unique identifiers. > > > > Multi-character constants cause warnings. > > Can we silence them? I don't think so. Besides, strings are just as good as multi-character constants. In fact, strings are better, as they won't clash with any pointers, simply because strings are pointers too, and they point to areas in memory not used by other drivers. > > That's why I changed them > > to strings. Pointers to different strings are different, and that's > > all we need. > > For single-disk drivers, yes. But that has two problems: > > - People tend to think the string itself has a meaning. We could avoid > this by using "dummy" or so. There is a chance that pointers to "dummy" will be consolidated by the linker. I believe GNU ld won't do it, but it's not impossible. > - People tend to think it's fine to do the same for multi-disk drivers. > We could avoid this by adding a short comment in each of them. Maybe we could rename "id" to something more descriptive. But I don't think it's a big concern. Somebody writing a disk driver will need to check the meaning of the disk structure. We could write a macro for ID comparison that would compare both the "driver ID" (disk->dev->id) and "device ID" (disk->id). In this case, we can omit disk->id initialization in the drivers supporting only one device (e.g. memdisk) and only leave it where it's indeed needed for identifying separate devices, thus removing potentially confusing code. -- Regards, Pavel Roskin