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 | } | ||
