]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - arch/xtensa/kernel/asm-offsets.c
[XTENSA] Add support for configurable registers and coprocessors
[linux-2.6-omap-h63xx.git] / arch / xtensa / kernel / asm-offsets.c
index d5ffe7b6443ef170994f66b9e94f50f2bdcd0969..ef63adadf7f4106ccded17d9370fd619a6557fb4 100644 (file)
@@ -21,7 +21,6 @@
 #include <linux/mm.h>
 
 #include <asm/ptrace.h>
-#include <asm/processor.h>
 #include <asm/uaccess.h>
 
 #define DEFINE(sym, val) asm volatile("\n->" #sym " %0 " #val : : "i" (val))
@@ -64,6 +63,8 @@ int main(void)
        DEFINE(PT_SIZE, sizeof(struct pt_regs));
        DEFINE(PT_AREG_END, offsetof (struct pt_regs, areg[XCHAL_NUM_AREGS]));
        DEFINE(PT_USER_SIZE, offsetof(struct pt_regs, areg[XCHAL_NUM_AREGS]));
+       DEFINE(PT_XTREGS_OPT, offsetof(struct pt_regs, xtregs_opt));
+       DEFINE(XTREGS_OPT_SIZE, sizeof(xtregs_opt_t));
 
        /* struct task_struct */
        DEFINE(TASK_PTRACE, offsetof (struct task_struct, ptrace));
@@ -77,7 +78,19 @@ int main(void)
        /* struct thread_info (offset from start_struct) */
        DEFINE(THREAD_RA, offsetof (struct task_struct, thread.ra));
        DEFINE(THREAD_SP, offsetof (struct task_struct, thread.sp));
-       DEFINE(THREAD_CP_SAVE, offsetof (struct task_struct, thread.cp_save));
+       DEFINE(THREAD_CPENABLE, offsetof (struct thread_info, cpenable));
+#if XTENSA_HAVE_COPROCESSORS
+       DEFINE(THREAD_XTREGS_CP0, offsetof (struct thread_info, xtregs_cp));
+       DEFINE(THREAD_XTREGS_CP1, offsetof (struct thread_info, xtregs_cp));
+       DEFINE(THREAD_XTREGS_CP2, offsetof (struct thread_info, xtregs_cp));
+       DEFINE(THREAD_XTREGS_CP3, offsetof (struct thread_info, xtregs_cp));
+       DEFINE(THREAD_XTREGS_CP4, offsetof (struct thread_info, xtregs_cp));
+       DEFINE(THREAD_XTREGS_CP5, offsetof (struct thread_info, xtregs_cp));
+       DEFINE(THREAD_XTREGS_CP6, offsetof (struct thread_info, xtregs_cp));
+       DEFINE(THREAD_XTREGS_CP7, offsetof (struct thread_info, xtregs_cp));
+#endif
+       DEFINE(THREAD_XTREGS_USER, offsetof (struct thread_info, xtregs_user));
+       DEFINE(XTREGS_USER_SIZE, sizeof(xtregs_user_t));
        DEFINE(THREAD_CURRENT_DS, offsetof (struct task_struct, thread.current_ds));
 
        /* struct mm_struct */