Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753793AbbF3D3P (ORCPT ); Mon, 29 Jun 2015 23:29:15 -0400 Received: from ozlabs.org ([103.22.144.67]:33460 "EHLO ozlabs.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753736AbbF3D3H (ORCPT ); Mon, 29 Jun 2015 23:29:07 -0400 Message-ID: <1435634945.24866.2.camel@ellerman.id.au> Subject: Re: [PATCH 1/2] Move the pt_regs_offset struct definition from arch to common include file From: Michael Ellerman To: David Long Cc: Rob Herring , "H. Peter Anvin" , Andy Lutomirski , Anton Blanchard , Behan Webster , Benjamin Herrenschmidt , Eric Paris , Heiko Carstens , Ingo Molnar , Jan Willeke , Kees Cook , Martin Schwidefsky , Nikolay Borisov , Oleg Nesterov , Paul Mackerras , Richard Kuo , Robert Richter , Roland McGrath , Russell King , Tejun Heo , Thomas Gleixner , Will Deacon , "linux-arm-kernel@lists.infradead.org" , linux-hexagon@vger.kernel.org, "linux-kernel@vger.kernel.org" , linux-s390@vger.kernel.org, SH-Linux , linux390@de.ibm.com, linuxppc-dev , "x86@kernel.org" Date: Tue, 30 Jun 2015 13:29:05 +1000 In-Reply-To: <5581BCD0.2040405@linaro.org> References: <1434386579-6045-1-git-send-email-dave.long@linaro.org> <1434386579-6045-2-git-send-email-dave.long@linaro.org> <5581BCD0.2040405@linaro.org> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.12.10-0ubuntu1~14.10.1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1549 Lines: 46 On Wed, 2015-06-17 at 14:30 -0400, David Long wrote: > On 06/16/15 09:17, Rob Herring wrote: > > On Mon, Jun 15, 2015 at 11:42 AM, David Long wrote: > >> > >> #define REG_OFFSET_NAME(r) \ > >> {.name = #r, .offset = offsetof(struct pt_regs, ARM_##r)} > >> #define REG_OFFSET_END {.name = NULL, .offset = 0} > > > > Can't you also move these? ARM is complicated with the "ARM_" > > prefixing, but the others appear to be the same. Maybe you can remove > > the prefix or redefine the macro for ARM. > > That would mandate that all the architecture-specific pt_regs structures > would have to use a top-level named field for each named register. Why does it mandate that? See eg. powerpc where we use REG_OFFSET_NAME for the top-level named fields and then a different macro for the array elements: #define REG_OFFSET_NAME(r) {.name = #r, .offset = offsetof(struct pt_regs, r)} #define GPR_OFFSET_NAME(num) \ {.name = STR(gpr##num), .offset = offsetof(struct pt_regs, gpr[num])} static const struct pt_regs_offset regoffset_table[] = { GPR_OFFSET_NAME(0), GPR_OFFSET_NAME(1), GPR_OFFSET_NAME(2), GPR_OFFSET_NAME(3), ... REG_OFFSET_NAME(nip), REG_OFFSET_NAME(msr), So I don't see why REG_OFFSET_NAME couldn't be common. cheers -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/