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 <dave.long@xxxxxxxxxx> 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-s390" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html