From mboxrd@z Thu Jan 1 00:00:00 1970 From: "H. Peter Anvin" Subject: Re: [RFC UNTESTED PATCH] eal_common_cpuflags: Fix %rbx corruption, and simplify the code Date: Mon, 24 Mar 2014 09:11:12 -0700 Message-ID: <53305920.7000206@zytor.com> References: <1395333868-2808-1-git-send-email-hpa@linux.intel.com> <532B1F79.1050308@zytor.com> <20140324160647.GF19368@hmsreliant.think-freely.org> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: dev-VfR2kkLFssw@public.gmane.org, "H. Peter Anvin" To: Neil Horman Return-path: In-Reply-To: <20140324160647.GF19368-B26myB8xz7F8NnZeBjwnZQMhkBWG/bsMQH7oEaQurus@public.gmane.org> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces-VfR2kkLFssw@public.gmane.org Sender: "dev" On 03/24/2014 09:06 AM, Neil Horman wrote: >> >> If C99-style initializers are permitted in this codebase, I would >> strongly recommend using them, and then drop the enum field in struct >> feature_entry and use a macro such as: >> > Actually, its a bit simpler than that, the enum parameter is actually completely > unused, and so can be removed entirely. The FEAT_DEF macro does what you > suggest below already, but only for the feature and name fields. > > I'll remove the enum and its definition, and augment the macro to cover the rest > of the fields. > > Neil > >> #define FEAT(name,leaf,subleaf,reg,bit) \ >> [RTE_CPUFLAG_##f] = { leaf, subleaf, reg, bit, #f }, >> >> (I'd move the string to the end, but that is just a microoptimization. >> I'm kind of OCD that way.) >> The nice thing with the C99 initializer is that even if the order is mismatched between the .c file and the .h file which defines the enum, things still work correctly. -hpa