#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)
{ 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" },
/* 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)" },
#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 */