On Mon, Jul 24, 2000 at 09:05:10AM -0400, Pat O'Rourke wrote:
> the offset of the task_struct's ptrace field as 104, or right after the
> 'processor' field.  This appears incorrect because the 'ptrace' field is
> actually after 'need_resched'.  This patch will adjust the definition of
> TASK_PTRACE accordingly.

Damn. Thanks.
So the `ptrace' field was silently moved since test1-ac...

> +#define TASK_PTRACE            48
>  #define TASK_PROCESSOR         100
> -#define TASK_PTRACE            104

I think we should better fix the asm_offsets stuff, just to
prevent such a mess in future.

Ivan.

diff -urN 240t5p4/arch/alpha/kernel/Makefile linux/arch/alpha/kernel/Makefile
--- 240t5p4/arch/alpha/kernel/Makefile  Sun Jun 25 14:24:10 2000
+++ linux/arch/alpha/kernel/Makefile    Tue Jul 25 13:16:41 2000
@@ -140,7 +140,7 @@
 
 O_OBJS += $(L_TARGET)
 
-all: kernel.o head.o
+all: asm_offsets kernel.o head.o
 
 asm_offsets: check_asm
        ./check_asm > $(TOPDIR)/include/asm-alpha/asm_offsets.h
@@ -150,5 +150,6 @@
 
 clean::
        rm -f check_asm
+       rm -f $(TOPDIR)/include/asm-alpha/asm_offsets.h
 
 include $(TOPDIR)/Rules.make
diff -urN 240t5p4/arch/alpha/kernel/check_asm.c linux/arch/alpha/kernel/check_asm.c
--- 240t5p4/arch/alpha/kernel/check_asm.c       Sun Nov 28 02:42:54 1999
+++ linux/arch/alpha/kernel/check_asm.c Tue Jul 25 12:38:39 2000
@@ -19,6 +19,10 @@
               (long)offsetof(struct task_struct, exec_domain));
        printf("#define TASK_NEED_RESCHED %ld\n",
               (long)offsetof(struct task_struct, need_resched));
+       printf("#define TASK_PTRACE %ld\n",
+              (long)offsetof(struct task_struct, ptrace));
+       printf("#define TASK_PROCESSOR %ld\n",
+              (long)offsetof(struct task_struct, processor));
        printf("#define TASK_SIZE %ld\n", sizeof(struct task_struct));
        printf("#define STACK_SIZE %ld\n", sizeof(union task_union));
 
@@ -26,6 +30,9 @@
               (long)offsetof(struct alpha_machine_vector, hae_cache));
        printf("#define HAE_REG %ld\n",
               (long)offsetof(struct alpha_machine_vector, hae_register));
+
+       printf("#define PT_PTRACED 0x%08x\n", PT_PTRACED);
+       printf("#define CLONE_VM 0x%08x\n", CLONE_VM);
 
        printf("#endif /* __ASM_OFFSETS_H__ */\n");
        return 0;
diff -urN 240t5p4/arch/alpha/kernel/entry.S linux/arch/alpha/kernel/entry.S
--- 240t5p4/arch/alpha/kernel/entry.S   Sun Jun 25 14:24:10 2000
+++ linux/arch/alpha/kernel/entry.S     Tue Jul 25 12:38:14 2000
@@ -6,42 +6,18 @@
 
 #include <linux/config.h>
 #include <asm/system.h>
+#include <asm/asm_offsets.h>
 
 #define SIGCHLD 20
 
 #define NR_SYSCALLS 377
 
 /*
- * These offsets must match with alpha_mv in <asm/machvec.h>.
- */
-#define HAE_CACHE      0
-#define HAE_REG                8
-
-/*
  * stack offsets
  */
 #define SP_OFF         184
 
 #define SWITCH_STACK_SIZE 320
-
-/*
- * task structure offsets
- */
-#define TASK_STATE             0
-#define TASK_FLAGS             8
-#define TASK_SIGPENDING                16
-#define TASK_ADDR_LIMIT                24      
-#define TASK_EXEC_DOMAIN       32
-#define TASK_NEED_RESCHED      40
-#define TASK_PROCESSOR         100
-#define TASK_PTRACE            104
-
-/*
- * task flags (must match include/linux/sched.h):
- */
-#define        PT_PTRACED      0x00000001
-
-#define CLONE_VM        0x00000100 
 
 /*
  * This defines the normal kernel pt-regs layout.
diff -urN 240t5p4/include/asm-alpha/asm_offsets.h linux/include/asm-alpha/asm_offsets.h
--- 240t5p4/include/asm-alpha/asm_offsets.h     Mon Oct 12 22:40:12 1998
+++ linux/include/asm-alpha/asm_offsets.h       Thu Jan  1 03:00:00 1970
@@ -1,13 +0,0 @@
-#ifndef __ASM_OFFSETS_H__
-#define __ASM_OFFSETS_H__
-#define TASK_STATE 0
-#define TASK_FLAGS 8
-#define TASK_SIGPENDING 16
-#define TASK_ADDR_LIMIT 24
-#define TASK_EXEC_DOMAIN 32
-#define TASK_NEED_RESCHED 40
-#define TASK_SIZE 1096
-#define STACK_SIZE 16384
-#define HAE_CACHE 0
-#define HAE_REG 8
-#endif /* __ASM_OFFSETS_H__ */
 

Reply via email to