Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

xtensa: Autogenerate offsets in struct thread_info

Maintaining offsets by hand is no fun.

Reported-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Richard Weinberger <richard@nod.at>

+8 -11
-11
arch/xtensa/include/asm/thread_info.h
··· 61 61 xtregs_user_t xtregs_user; 62 62 }; 63 63 64 - #else /* !__ASSEMBLY__ */ 65 - 66 - /* offsets into the thread_info struct for assembly code access */ 67 - #define TI_TASK 0x00000000 68 - #define TI_EXEC_DOMAIN 0x00000004 69 - #define TI_FLAGS 0x00000008 70 - #define TI_STATUS 0x0000000C 71 - #define TI_CPU 0x00000010 72 - #define TI_PRE_COUNT 0x00000014 73 - #define TI_ADDR_LIMIT 0x00000018 74 - 75 64 #endif 76 65 77 66 /*
+8
arch/xtensa/kernel/asm-offsets.c
··· 77 77 DEFINE(TASK_THREAD_INFO, offsetof (struct task_struct, stack)); 78 78 DEFINE(TASK_STRUCT_SIZE, sizeof (struct task_struct)); 79 79 80 + /* offsets in thread_info struct */ 81 + OFFSET(TI_TASK, thread_info, task); 82 + OFFSET(TI_FLAGS, thread_info, flags); 83 + OFFSET(TI_STSTUS, thread_info, status); 84 + OFFSET(TI_CPU, thread_info, cpu); 85 + OFFSET(TI_PRE_COUNT, thread_info, preempt_count); 86 + OFFSET(TI_ADDR_LIMIT, thread_info, addr_limit); 87 + 80 88 /* struct thread_info (offset from start_struct) */ 81 89 DEFINE(THREAD_RA, offsetof (struct task_struct, thread.ra)); 82 90 DEFINE(THREAD_SP, offsetof (struct task_struct, thread.sp));