Hi,
Does anyone know why the PT_* definitions in include/asm-m68k/ptrace.h: | #define PT_D1 0 | #define PT_D2 1 | #define PT_D3 2 | #define PT_D4 3 | #define PT_D5 4 | #define PT_D6 5 | #define PT_D7 6 | #define PT_A0 7 | #define PT_A1 8 | #define PT_A2 9 | #define PT_A3 10 | #define PT_A4 11 | #define PT_A5 12 | #define PT_A6 13 | #define PT_D0 14 | #define PT_USP 15 | #define PT_ORIG_D0 16 | #define PT_SR 17 | #define PT_PC 18 don't match with the PT_* definitions in include/asm-m68k/asm-offsets.h: | #define PT_D0 32 /* offsetof(struct pt_regs, d0) */ | #define PT_ORIG_D0 36 /* offsetof(struct pt_regs, orig_d0) */ | #define PT_D1 0 /* offsetof(struct pt_regs, d1) */ | #define PT_D2 4 /* offsetof(struct pt_regs, d2) */ | #define PT_D3 8 /* offsetof(struct pt_regs, d3) */ | #define PT_D4 12 /* offsetof(struct pt_regs, d4) */ | #define PT_D5 16 /* offsetof(struct pt_regs, d5) */ | #define PT_A0 20 /* offsetof(struct pt_regs, a0) */ | #define PT_A1 24 /* offsetof(struct pt_regs, a1) */ | #define PT_A2 28 /* offsetof(struct pt_regs, a2) */ | #define PT_PC 46 /* offsetof(struct pt_regs, pc) */ | #define PT_SR 44 /* offsetof(struct pt_regs, sr) */ | #define PT_VECTOR 50 /* offsetof(struct pt_regs, pc) + 4 */ as generated from struct pt_regs in include/asm-m68k/ptrace.h: | struct pt_regs { | long d1; | long d2; | long d3; | long d4; | long d5; | long a0; | long a1; | long a2; | long d0; | long orig_d0; | long stkadj; | unsigned short sr; | unsigned long pc; | unsigned format : 4; /* frame format specifier */ | unsigned vector : 12; /* vector offset */ | };
Looks like the PT_* offsets are in units of long, but otherwise correct?
I was trying to define task_thread_info() using TASK_INFO instead of using struct task_struct directly (cfr. ia64), but these conflicts seem to prevent me from doing this.
At some time in the past (2.6.13??) I had tried to do something similar while debugging the Atari interrupt problems (the asm interrupt entries used wrong offsets to tweak preempt_count() at that time). I gave up in the end... If I understand Linus' suggestion right, he says we should take the task struct from the stack instead of going over current (which we keep in a2, and prefer to use for that reason)? Michael - To unsubscribe from this list: send the line "unsubscribe linux-m68k" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html