From: Dmitry V. Levin Date: Thu, 11 Dec 2014 19:25:02 +0000 (+0000) Subject: process.c: introduce XLAT_UOFF macro X-Git-Tag: v4.10~294 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c6ce4fdafc1b551efd3bb51d0915c42ee1571fd9;p=strace process.c: introduce XLAT_UOFF macro Introduce XLAT_UOFF macro and use it to automatically transform struct_user_offsets array into a more readable and compact form. for n in $(sed -n 's/^[[:space:]]*{[[:space:]]*uoff(\([a-z_0-9]\+\)),.*/\1/p' process.c |sort -u); do sed -i 's/^\([[:space:]]*\){[[:space:]]*uoff('"$n"'),[[:space:]]*"offsetof(struct user,[[:space:]]*'"$n"')"[[:space:]]*},$/\1XLAT_UOFF('"$n"'),/' process.c done * process.c (XLAT_UOFF): New macro. (struct_user_offsets): Use it. --- diff --git a/process.c b/process.c index 817cf979..892d6fe9 100644 --- a/process.c +++ b/process.c @@ -81,6 +81,7 @@ #include "xlat/nt_descriptor_types.h" #define uoff(member) offsetof(struct user, member) +#define XLAT_UOFF(member) { uoff(member), "offsetof(struct user, " #member ")" } const struct xlat struct_user_offsets[] = { #if defined(S390) || defined(S390X) @@ -627,8 +628,8 @@ const struct xlat struct_user_offsets[] = { { 588, "TR7(U)" }, /* This entry is in case pt_regs contains dregs (depends on the kernel build options). */ - { uoff(regs), "offsetof(struct user, regs)" }, - { uoff(fpu), "offsetof(struct user, fpu)" }, + XLAT_UOFF(regs), + XLAT_UOFF(fpu), #elif defined(ARM) { uoff(regs.ARM_r0), "r0" }, { uoff(regs.ARM_r1), "r1" }, @@ -1040,106 +1041,106 @@ const struct xlat struct_user_offsets[] = { /* Other fields in "struct user" */ #if defined(S390) || defined(S390X) - { uoff(u_tsize), "offsetof(struct user, u_tsize)" }, - { uoff(u_dsize), "offsetof(struct user, u_dsize)" }, - { uoff(u_ssize), "offsetof(struct user, u_ssize)" }, - { uoff(start_code), "offsetof(struct user, start_code)" }, + XLAT_UOFF(u_tsize), + XLAT_UOFF(u_dsize), + XLAT_UOFF(u_ssize), + XLAT_UOFF(start_code), /* S390[X] has no start_data */ - { uoff(start_stack), "offsetof(struct user, start_stack)" }, - { uoff(signal), "offsetof(struct user, signal)" }, - { uoff(u_ar0), "offsetof(struct user, u_ar0)" }, - { uoff(magic), "offsetof(struct user, magic)" }, - { uoff(u_comm), "offsetof(struct user, u_comm)" }, + XLAT_UOFF(start_stack), + XLAT_UOFF(signal), + XLAT_UOFF(u_ar0), + XLAT_UOFF(magic), + XLAT_UOFF(u_comm), { sizeof(struct user), "sizeof(struct user)" }, #elif defined(POWERPC) { sizeof(struct user), "sizeof(struct user)" }, #elif defined(I386) || defined(X86_64) || defined(X32) - { uoff(u_fpvalid), "offsetof(struct user, u_fpvalid)" }, - { uoff(i387), "offsetof(struct user, i387)" }, - { uoff(u_tsize), "offsetof(struct user, u_tsize)" }, - { uoff(u_dsize), "offsetof(struct user, u_dsize)" }, - { uoff(u_ssize), "offsetof(struct user, u_ssize)" }, - { uoff(start_code), "offsetof(struct user, start_code)" }, - { uoff(start_stack), "offsetof(struct user, start_stack)" }, - { uoff(signal), "offsetof(struct user, signal)" }, - { uoff(reserved), "offsetof(struct user, reserved)" }, - { uoff(u_ar0), "offsetof(struct user, u_ar0)" }, - { uoff(u_fpstate), "offsetof(struct user, u_fpstate)" }, - { uoff(magic), "offsetof(struct user, magic)" }, - { uoff(u_comm), "offsetof(struct user, u_comm)" }, - { uoff(u_debugreg), "offsetof(struct user, u_debugreg)" }, + XLAT_UOFF(u_fpvalid), + XLAT_UOFF(i387), + XLAT_UOFF(u_tsize), + XLAT_UOFF(u_dsize), + XLAT_UOFF(u_ssize), + XLAT_UOFF(start_code), + XLAT_UOFF(start_stack), + XLAT_UOFF(signal), + XLAT_UOFF(reserved), + XLAT_UOFF(u_ar0), + XLAT_UOFF(u_fpstate), + XLAT_UOFF(magic), + XLAT_UOFF(u_comm), + XLAT_UOFF(u_debugreg), { sizeof(struct user), "sizeof(struct user)" }, #elif defined(IA64) { sizeof(struct user), "sizeof(struct user)" }, #elif defined(ARM) - { uoff(u_fpvalid), "offsetof(struct user, u_fpvalid)" }, - { uoff(u_tsize), "offsetof(struct user, u_tsize)" }, - { uoff(u_dsize), "offsetof(struct user, u_dsize)" }, - { uoff(u_ssize), "offsetof(struct user, u_ssize)" }, - { uoff(start_code), "offsetof(struct user, start_code)" }, - { uoff(start_stack), "offsetof(struct user, start_stack)" }, - { uoff(signal), "offsetof(struct user, signal)" }, - { uoff(reserved), "offsetof(struct user, reserved)" }, - { uoff(u_ar0), "offsetof(struct user, u_ar0)" }, - { uoff(magic), "offsetof(struct user, magic)" }, - { uoff(u_comm), "offsetof(struct user, u_comm)" }, + XLAT_UOFF(u_fpvalid), + XLAT_UOFF(u_tsize), + XLAT_UOFF(u_dsize), + XLAT_UOFF(u_ssize), + XLAT_UOFF(start_code), + XLAT_UOFF(start_stack), + XLAT_UOFF(signal), + XLAT_UOFF(reserved), + XLAT_UOFF(u_ar0), + XLAT_UOFF(magic), + XLAT_UOFF(u_comm), { sizeof(struct user), "sizeof(struct user)" }, #elif defined(AARCH64) /* nothing */ #elif defined(M68K) - { uoff(u_fpvalid), "offsetof(struct user, u_fpvalid)" }, - { uoff(m68kfp), "offsetof(struct user, m68kfp)" }, - { uoff(u_tsize), "offsetof(struct user, u_tsize)" }, - { uoff(u_dsize), "offsetof(struct user, u_dsize)" }, - { uoff(u_ssize), "offsetof(struct user, u_ssize)" }, - { uoff(start_code), "offsetof(struct user, start_code)" }, - { uoff(start_stack), "offsetof(struct user, start_stack)" }, - { uoff(signal), "offsetof(struct user, signal)" }, - { uoff(reserved), "offsetof(struct user, reserved)" }, - { uoff(u_ar0), "offsetof(struct user, u_ar0)" }, - { uoff(u_fpstate), "offsetof(struct user, u_fpstate)" }, - { uoff(magic), "offsetof(struct user, magic)" }, - { uoff(u_comm), "offsetof(struct user, u_comm)" }, + XLAT_UOFF(u_fpvalid), + XLAT_UOFF(m68kfp), + XLAT_UOFF(u_tsize), + XLAT_UOFF(u_dsize), + XLAT_UOFF(u_ssize), + XLAT_UOFF(start_code), + XLAT_UOFF(start_stack), + XLAT_UOFF(signal), + XLAT_UOFF(reserved), + XLAT_UOFF(u_ar0), + XLAT_UOFF(u_fpstate), + XLAT_UOFF(magic), + XLAT_UOFF(u_comm), { sizeof(struct user), "sizeof(struct user)" }, #elif defined(MIPS) || defined(LINUX_MIPSN32) - { uoff(u_tsize), "offsetof(struct user, u_tsize)" }, - { uoff(u_dsize), "offsetof(struct user, u_dsize)" }, - { uoff(u_ssize), "offsetof(struct user, u_ssize)" }, - { uoff(start_code), "offsetof(struct user, start_code)" }, - { uoff(start_data), "offsetof(struct user, start_data)" }, - { uoff(start_stack), "offsetof(struct user, start_stack)" }, - { uoff(signal), "offsetof(struct user, signal)" }, - { uoff(u_ar0), "offsetof(struct user, u_ar0)" }, - { uoff(magic), "offsetof(struct user, magic)" }, - { uoff(u_comm), "offsetof(struct user, u_comm)" }, + XLAT_UOFF(u_tsize), + XLAT_UOFF(u_dsize), + XLAT_UOFF(u_ssize), + XLAT_UOFF(start_code), + XLAT_UOFF(start_data), + XLAT_UOFF(start_stack), + XLAT_UOFF(signal), + XLAT_UOFF(u_ar0), + XLAT_UOFF(magic), + XLAT_UOFF(u_comm), { sizeof(struct user), "sizeof(struct user)" }, #elif defined(ALPHA) { sizeof(struct user), "sizeof(struct user)" }, #elif defined(SPARC) { sizeof(struct user), "sizeof(struct user)" }, #elif defined(SPARC64) - { uoff(u_tsize), "offsetof(struct user, u_tsize)" }, - { uoff(u_dsize), "offsetof(struct user, u_dsize)" }, - { uoff(u_ssize), "offsetof(struct user, u_ssize)" }, - { uoff(signal), "offsetof(struct user, signal)" }, - { uoff(magic), "offsetof(struct user, magic)" }, - { uoff(u_comm), "offsetof(struct user, u_comm)" }, + XLAT_UOFF(u_tsize), + XLAT_UOFF(u_dsize), + XLAT_UOFF(u_ssize), + XLAT_UOFF(signal), + XLAT_UOFF(magic), + XLAT_UOFF(u_comm), { sizeof(struct user), "sizeof(struct user)" }, #elif defined(HPPA) /* nothing */ #elif defined(SH) || defined(SH64) - { uoff(u_fpvalid), "offsetof(struct user, u_fpvalid)" }, - { uoff(u_tsize), "offsetof(struct user, u_tsize)" }, - { uoff(u_dsize), "offsetof(struct user, u_dsize)" }, - { uoff(u_ssize), "offsetof(struct user, u_ssize)" }, - { uoff(start_code), "offsetof(struct user, start_code)" }, - { uoff(start_data), "offsetof(struct user, start_data)" }, - { uoff(start_stack), "offsetof(struct user, start_stack)" }, - { uoff(signal), "offsetof(struct user, signal)" }, - { uoff(u_ar0), "offsetof(struct user, u_ar0)" }, - { uoff(u_fpstate), "offsetof(struct user, u_fpstate)" }, - { uoff(magic), "offsetof(struct user, magic)" }, - { uoff(u_comm), "offsetof(struct user, u_comm)" }, + XLAT_UOFF(u_fpvalid), + XLAT_UOFF(u_tsize), + XLAT_UOFF(u_dsize), + XLAT_UOFF(u_ssize), + XLAT_UOFF(start_code), + XLAT_UOFF(start_data), + XLAT_UOFF(start_stack), + XLAT_UOFF(signal), + XLAT_UOFF(u_ar0), + XLAT_UOFF(u_fpstate), + XLAT_UOFF(magic), + XLAT_UOFF(u_comm), { sizeof(struct user), "sizeof(struct user)" }, #elif defined(CRISV10) || defined(CRISV32) { sizeof(struct user), "sizeof(struct user)" }, @@ -1148,26 +1149,26 @@ const struct xlat struct_user_offsets[] = { #elif defined(MICROBLAZE) { sizeof(struct user), "sizeof(struct user)" }, #elif defined(AVR32) - { uoff(u_tsize), "offsetof(struct user, u_tsize)" }, - { uoff(u_dsize), "offsetof(struct user, u_dsize)" }, - { uoff(u_ssize), "offsetof(struct user, u_ssize)" }, - { uoff(start_code), "offsetof(struct user, start_code)" }, - { uoff(start_data), "offsetof(struct user, start_data)" }, - { uoff(start_stack), "offsetof(struct user, start_stack)" }, - { uoff(signal), "offsetof(struct user, signal)" }, - { uoff(u_ar0), "offsetof(struct user, u_ar0)" }, - { uoff(magic), "offsetof(struct user, magic)" }, - { uoff(u_comm), "offsetof(struct user, u_comm)" }, + XLAT_UOFF(u_tsize), + XLAT_UOFF(u_dsize), + XLAT_UOFF(u_ssize), + XLAT_UOFF(start_code), + XLAT_UOFF(start_data), + XLAT_UOFF(start_stack), + XLAT_UOFF(signal), + XLAT_UOFF(u_ar0), + XLAT_UOFF(magic), + XLAT_UOFF(u_comm), { sizeof(struct user), "sizeof(struct user)" }, #elif defined(BFIN) - { uoff(u_tsize), "offsetof(struct user, u_tsize)" }, - { uoff(u_dsize), "offsetof(struct user, u_dsize)" }, - { uoff(u_ssize), "offsetof(struct user, u_ssize)" }, - { uoff(start_code), "offsetof(struct user, start_code)" }, - { uoff(signal), "offsetof(struct user, signal)" }, - { uoff(u_ar0), "offsetof(struct user, u_ar0)" }, - { uoff(magic), "offsetof(struct user, magic)" }, - { uoff(u_comm), "offsetof(struct user, u_comm)" }, + XLAT_UOFF(u_tsize), + XLAT_UOFF(u_dsize), + XLAT_UOFF(u_ssize), + XLAT_UOFF(start_code), + XLAT_UOFF(signal), + XLAT_UOFF(u_ar0), + XLAT_UOFF(magic), + XLAT_UOFF(u_comm), { sizeof(struct user), "sizeof(struct user)" }, #elif defined(OR1K) /* nothing */