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>
This commit is contained in:
@@ -61,17 +61,6 @@ struct thread_info {
|
|||||||
xtregs_user_t xtregs_user;
|
xtregs_user_t xtregs_user;
|
||||||
};
|
};
|
||||||
|
|
||||||
#else /* !__ASSEMBLY__ */
|
|
||||||
|
|
||||||
/* offsets into the thread_info struct for assembly code access */
|
|
||||||
#define TI_TASK 0x00000000
|
|
||||||
#define TI_EXEC_DOMAIN 0x00000004
|
|
||||||
#define TI_FLAGS 0x00000008
|
|
||||||
#define TI_STATUS 0x0000000C
|
|
||||||
#define TI_CPU 0x00000010
|
|
||||||
#define TI_PRE_COUNT 0x00000014
|
|
||||||
#define TI_ADDR_LIMIT 0x00000018
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|||||||
@@ -77,6 +77,14 @@ int main(void)
|
|||||||
DEFINE(TASK_THREAD_INFO, offsetof (struct task_struct, stack));
|
DEFINE(TASK_THREAD_INFO, offsetof (struct task_struct, stack));
|
||||||
DEFINE(TASK_STRUCT_SIZE, sizeof (struct task_struct));
|
DEFINE(TASK_STRUCT_SIZE, sizeof (struct task_struct));
|
||||||
|
|
||||||
|
/* offsets in thread_info struct */
|
||||||
|
OFFSET(TI_TASK, thread_info, task);
|
||||||
|
OFFSET(TI_FLAGS, thread_info, flags);
|
||||||
|
OFFSET(TI_STSTUS, thread_info, status);
|
||||||
|
OFFSET(TI_CPU, thread_info, cpu);
|
||||||
|
OFFSET(TI_PRE_COUNT, thread_info, preempt_count);
|
||||||
|
OFFSET(TI_ADDR_LIMIT, thread_info, addr_limit);
|
||||||
|
|
||||||
/* struct thread_info (offset from start_struct) */
|
/* struct thread_info (offset from start_struct) */
|
||||||
DEFINE(THREAD_RA, offsetof (struct task_struct, thread.ra));
|
DEFINE(THREAD_RA, offsetof (struct task_struct, thread.ra));
|
||||||
DEFINE(THREAD_SP, offsetof (struct task_struct, thread.sp));
|
DEFINE(THREAD_SP, offsetof (struct task_struct, thread.sp));
|
||||||
|
|||||||
Reference in New Issue
Block a user