diff options
Diffstat (limited to 'arch/um/sys-i386')
-rw-r--r-- | arch/um/sys-i386/Makefile | 2 | ||||
-rw-r--r-- | arch/um/sys-i386/kernel-offsets.c | 4 | ||||
-rw-r--r-- | arch/um/sys-i386/user-offsets.c | 73 | ||||
-rw-r--r-- | arch/um/sys-i386/util/Makefile | 5 | ||||
-rw-r--r-- | arch/um/sys-i386/util/mk_sc.c | 51 | ||||
-rw-r--r-- | arch/um/sys-i386/util/mk_thread.c | 22 |
6 files changed, 39 insertions, 118 deletions
diff --git a/arch/um/sys-i386/Makefile b/arch/um/sys-i386/Makefile index 4ca2a229da49..6dfeb70f6957 100644 --- a/arch/um/sys-i386/Makefile +++ b/arch/um/sys-i386/Makefile | |||
@@ -18,6 +18,4 @@ module.c-dir = kernel | |||
18 | 18 | ||
19 | $(obj)/stub_segv.o : _c_flags = $(call unprofile,$(CFLAGS)) | 19 | $(obj)/stub_segv.o : _c_flags = $(call unprofile,$(CFLAGS)) |
20 | 20 | ||
21 | subdir- := util | ||
22 | |||
23 | include arch/um/scripts/Makefile.unmap | 21 | include arch/um/scripts/Makefile.unmap |
diff --git a/arch/um/sys-i386/kernel-offsets.c b/arch/um/sys-i386/kernel-offsets.c index a1070af2bcd8..35db85057506 100644 --- a/arch/um/sys-i386/kernel-offsets.c +++ b/arch/um/sys-i386/kernel-offsets.c | |||
@@ -18,9 +18,9 @@ | |||
18 | 18 | ||
19 | void foo(void) | 19 | void foo(void) |
20 | { | 20 | { |
21 | OFFSET(TASK_DEBUGREGS, task_struct, thread.arch.debugregs); | 21 | OFFSET(HOST_TASK_DEBUGREGS, task_struct, thread.arch.debugregs); |
22 | #ifdef CONFIG_MODE_TT | 22 | #ifdef CONFIG_MODE_TT |
23 | OFFSET(TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid); | 23 | OFFSET(HOST_TASK_EXTERN_PID, task_struct, thread.mode.tt.extern_pid); |
24 | #endif | 24 | #endif |
25 | #include <common-offsets.h> | 25 | #include <common-offsets.h> |
26 | } | 26 | } |
diff --git a/arch/um/sys-i386/user-offsets.c b/arch/um/sys-i386/user-offsets.c index 3ceaabceb3d7..677fc26a9bbe 100644 --- a/arch/um/sys-i386/user-offsets.c +++ b/arch/um/sys-i386/user-offsets.c | |||
@@ -7,47 +7,48 @@ | |||
7 | #define DEFINE(sym, val) \ | 7 | #define DEFINE(sym, val) \ |
8 | asm volatile("\n->" #sym " %0 " #val : : "i" (val)) | 8 | asm volatile("\n->" #sym " %0 " #val : : "i" (val)) |
9 | 9 | ||
10 | #define DEFINE_LONGS(sym, val) \ | ||
11 | asm volatile("\n->" #sym " %0 " #val : : "i" (val/sizeof(unsigned long))) | ||
12 | |||
10 | #define OFFSET(sym, str, mem) \ | 13 | #define OFFSET(sym, str, mem) \ |
11 | DEFINE(sym, offsetof(struct str, mem)); | 14 | DEFINE(sym, offsetof(struct str, mem)); |
12 | 15 | ||
13 | void foo(void) | 16 | void foo(void) |
14 | { | 17 | { |
15 | OFFSET(SC_IP, sigcontext, eip); | 18 | OFFSET(HOST_SC_IP, sigcontext, eip); |
16 | OFFSET(SC_SP, sigcontext, esp); | 19 | OFFSET(HOST_SC_SP, sigcontext, esp); |
17 | OFFSET(SC_FS, sigcontext, fs); | 20 | OFFSET(HOST_SC_FS, sigcontext, fs); |
18 | OFFSET(SC_GS, sigcontext, gs); | 21 | OFFSET(HOST_SC_GS, sigcontext, gs); |
19 | OFFSET(SC_DS, sigcontext, ds); | 22 | OFFSET(HOST_SC_DS, sigcontext, ds); |
20 | OFFSET(SC_ES, sigcontext, es); | 23 | OFFSET(HOST_SC_ES, sigcontext, es); |
21 | OFFSET(SC_SS, sigcontext, ss); | 24 | OFFSET(HOST_SC_SS, sigcontext, ss); |
22 | OFFSET(SC_CS, sigcontext, cs); | 25 | OFFSET(HOST_SC_CS, sigcontext, cs); |
23 | OFFSET(SC_EFLAGS, sigcontext, eflags); | 26 | OFFSET(HOST_SC_EFLAGS, sigcontext, eflags); |
24 | OFFSET(SC_EAX, sigcontext, eax); | 27 | OFFSET(HOST_SC_EAX, sigcontext, eax); |
25 | OFFSET(SC_EBX, sigcontext, ebx); | 28 | OFFSET(HOST_SC_EBX, sigcontext, ebx); |
26 | OFFSET(SC_ECX, sigcontext, ecx); | 29 | OFFSET(HOST_SC_ECX, sigcontext, ecx); |
27 | OFFSET(SC_EDX, sigcontext, edx); | 30 | OFFSET(HOST_SC_EDX, sigcontext, edx); |
28 | OFFSET(SC_EDI, sigcontext, edi); | 31 | OFFSET(HOST_SC_EDI, sigcontext, edi); |
29 | OFFSET(SC_ESI, sigcontext, esi); | 32 | OFFSET(HOST_SC_ESI, sigcontext, esi); |
30 | OFFSET(SC_EBP, sigcontext, ebp); | 33 | OFFSET(HOST_SC_EBP, sigcontext, ebp); |
31 | OFFSET(SC_TRAPNO, sigcontext, trapno); | 34 | OFFSET(HOST_SC_TRAPNO, sigcontext, trapno); |
32 | OFFSET(SC_ERR, sigcontext, err); | 35 | OFFSET(HOST_SC_ERR, sigcontext, err); |
33 | OFFSET(SC_CR2, sigcontext, cr2); | 36 | OFFSET(HOST_SC_CR2, sigcontext, cr2); |
34 | OFFSET(SC_FPSTATE, sigcontext, fpstate); | 37 | OFFSET(HOST_SC_FPSTATE, sigcontext, fpstate); |
35 | OFFSET(SC_SIGMASK, sigcontext, oldmask); | 38 | OFFSET(HOST_SC_SIGMASK, sigcontext, oldmask); |
36 | OFFSET(SC_FP_CW, _fpstate, cw); | 39 | OFFSET(HOST_SC_FP_CW, _fpstate, cw); |
37 | OFFSET(SC_FP_SW, _fpstate, sw); | 40 | OFFSET(HOST_SC_FP_SW, _fpstate, sw); |
38 | OFFSET(SC_FP_TAG, _fpstate, tag); | 41 | OFFSET(HOST_SC_FP_TAG, _fpstate, tag); |
39 | OFFSET(SC_FP_IPOFF, _fpstate, ipoff); | 42 | OFFSET(HOST_SC_FP_IPOFF, _fpstate, ipoff); |
40 | OFFSET(SC_FP_CSSEL, _fpstate, cssel); | 43 | OFFSET(HOST_SC_FP_CSSEL, _fpstate, cssel); |
41 | OFFSET(SC_FP_DATAOFF, _fpstate, dataoff); | 44 | OFFSET(HOST_SC_FP_DATAOFF, _fpstate, dataoff); |
42 | OFFSET(SC_FP_DATASEL, _fpstate, datasel); | 45 | OFFSET(HOST_SC_FP_DATASEL, _fpstate, datasel); |
43 | OFFSET(SC_FP_ST, _fpstate, _st); | 46 | OFFSET(HOST_SC_FP_ST, _fpstate, _st); |
44 | OFFSET(SC_FXSR_ENV, _fpstate, _fxsr_env); | 47 | OFFSET(HOST_SC_FXSR_ENV, _fpstate, _fxsr_env); |
45 | 48 | ||
46 | DEFINE(HOST_FRAME_SIZE, FRAME_SIZE); | 49 | DEFINE_LONGS(HOST_FRAME_SIZE, FRAME_SIZE); |
47 | DEFINE(HOST_FP_SIZE, | 50 | DEFINE_LONGS(HOST_FP_SIZE, sizeof(struct user_i387_struct)); |
48 | sizeof(struct user_i387_struct) / sizeof(unsigned long)); | 51 | DEFINE_LONGS(HOST_XFP_SIZE, sizeof(struct user_fxsr_struct)); |
49 | DEFINE(HOST_XFP_SIZE, | ||
50 | sizeof(struct user_fxsr_struct) / sizeof(unsigned long)); | ||
51 | 52 | ||
52 | DEFINE(HOST_IP, EIP); | 53 | DEFINE(HOST_IP, EIP); |
53 | DEFINE(HOST_SP, UESP); | 54 | DEFINE(HOST_SP, UESP); |
@@ -65,5 +66,5 @@ void foo(void) | |||
65 | DEFINE(HOST_FS, FS); | 66 | DEFINE(HOST_FS, FS); |
66 | DEFINE(HOST_ES, ES); | 67 | DEFINE(HOST_ES, ES); |
67 | DEFINE(HOST_GS, GS); | 68 | DEFINE(HOST_GS, GS); |
68 | DEFINE(__UM_FRAME_SIZE, sizeof(struct user_regs_struct)); | 69 | DEFINE(UM_FRAME_SIZE, sizeof(struct user_regs_struct)); |
69 | } | 70 | } |
diff --git a/arch/um/sys-i386/util/Makefile b/arch/um/sys-i386/util/Makefile deleted file mode 100644 index bf61afd0b045..000000000000 --- a/arch/um/sys-i386/util/Makefile +++ /dev/null | |||
@@ -1,5 +0,0 @@ | |||
1 | hostprogs-y := mk_sc mk_thread | ||
2 | always := $(hostprogs-y) | ||
3 | |||
4 | HOSTCFLAGS_mk_sc.o := -I$(objtree)/arch/um | ||
5 | HOSTCFLAGS_mk_thread.o := -I$(objtree)/arch/um | ||
diff --git a/arch/um/sys-i386/util/mk_sc.c b/arch/um/sys-i386/util/mk_sc.c deleted file mode 100644 index 04c0d73433aa..000000000000 --- a/arch/um/sys-i386/util/mk_sc.c +++ /dev/null | |||
@@ -1,51 +0,0 @@ | |||
1 | #include <stdio.h> | ||
2 | #include <user-offsets.h> | ||
3 | |||
4 | #define SC_OFFSET(name, field) \ | ||
5 | printf("#define " #name "(sc) *((unsigned long *) &(((char *) (sc))[%d]))\n",\ | ||
6 | name) | ||
7 | |||
8 | #define SC_FP_OFFSET(name, field) \ | ||
9 | printf("#define " #name \ | ||
10 | "(sc) *((unsigned long *) &(((char *) (SC_FPSTATE(sc)))[%d]))\n",\ | ||
11 | name) | ||
12 | |||
13 | #define SC_FP_OFFSET_PTR(name, field, type) \ | ||
14 | printf("#define " #name \ | ||
15 | "(sc) ((" type " *) &(((char *) (SC_FPSTATE(sc)))[%d]))\n",\ | ||
16 | name) | ||
17 | |||
18 | int main(int argc, char **argv) | ||
19 | { | ||
20 | SC_OFFSET(SC_IP, eip); | ||
21 | SC_OFFSET(SC_SP, esp); | ||
22 | SC_OFFSET(SC_FS, fs); | ||
23 | SC_OFFSET(SC_GS, gs); | ||
24 | SC_OFFSET(SC_DS, ds); | ||
25 | SC_OFFSET(SC_ES, es); | ||
26 | SC_OFFSET(SC_SS, ss); | ||
27 | SC_OFFSET(SC_CS, cs); | ||
28 | SC_OFFSET(SC_EFLAGS, eflags); | ||
29 | SC_OFFSET(SC_EAX, eax); | ||
30 | SC_OFFSET(SC_EBX, ebx); | ||
31 | SC_OFFSET(SC_ECX, ecx); | ||
32 | SC_OFFSET(SC_EDX, edx); | ||
33 | SC_OFFSET(SC_EDI, edi); | ||
34 | SC_OFFSET(SC_ESI, esi); | ||
35 | SC_OFFSET(SC_EBP, ebp); | ||
36 | SC_OFFSET(SC_TRAPNO, trapno); | ||
37 | SC_OFFSET(SC_ERR, err); | ||
38 | SC_OFFSET(SC_CR2, cr2); | ||
39 | SC_OFFSET(SC_FPSTATE, fpstate); | ||
40 | SC_OFFSET(SC_SIGMASK, oldmask); | ||
41 | SC_FP_OFFSET(SC_FP_CW, cw); | ||
42 | SC_FP_OFFSET(SC_FP_SW, sw); | ||
43 | SC_FP_OFFSET(SC_FP_TAG, tag); | ||
44 | SC_FP_OFFSET(SC_FP_IPOFF, ipoff); | ||
45 | SC_FP_OFFSET(SC_FP_CSSEL, cssel); | ||
46 | SC_FP_OFFSET(SC_FP_DATAOFF, dataoff); | ||
47 | SC_FP_OFFSET(SC_FP_DATASEL, datasel); | ||
48 | SC_FP_OFFSET_PTR(SC_FP_ST, _st, "struct _fpstate"); | ||
49 | SC_FP_OFFSET_PTR(SC_FXSR_ENV, _fxsr_env, "void"); | ||
50 | return(0); | ||
51 | } | ||
diff --git a/arch/um/sys-i386/util/mk_thread.c b/arch/um/sys-i386/util/mk_thread.c deleted file mode 100644 index 7470d0dda67e..000000000000 --- a/arch/um/sys-i386/util/mk_thread.c +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | #include <stdio.h> | ||
2 | #include <kernel-offsets.h> | ||
3 | |||
4 | int main(int argc, char **argv) | ||
5 | { | ||
6 | printf("/*\n"); | ||
7 | printf(" * Generated by mk_thread\n"); | ||
8 | printf(" */\n"); | ||
9 | printf("\n"); | ||
10 | printf("#ifndef __UM_THREAD_H\n"); | ||
11 | printf("#define __UM_THREAD_H\n"); | ||
12 | printf("\n"); | ||
13 | printf("#define TASK_DEBUGREGS(task) ((unsigned long *) " | ||
14 | "&(((char *) (task))[%d]))\n", TASK_DEBUGREGS); | ||
15 | #ifdef TASK_EXTERN_PID | ||
16 | printf("#define TASK_EXTERN_PID(task) *((int *) &(((char *) (task))[%d]))\n", | ||
17 | TASK_EXTERN_PID); | ||
18 | #endif | ||
19 | printf("\n"); | ||
20 | printf("#endif\n"); | ||
21 | return(0); | ||
22 | } | ||