Signed-off-by: Al Viro <v...@zeniv.linux.org.uk> --- arch/um/Makefile | 6 +- arch/um/Makefile-i386 | 2 +- arch/um/Makefile-x86_64 | 2 +- arch/um/sys-i386/Makefile | 24 --------- arch/um/sys-i386/bug.c | 21 -------- arch/um/sys-i386/ksyms.c | 5 -- arch/um/sys-i386/user-offsets.c | 53 -------------------- arch/um/sys-x86/Makefile | 45 +++++++++++++++++ arch/um/{sys-x86_64 => sys-x86}/bug.c | 0 arch/um/{sys-i386/bugs.c => sys-x86/bugs_32.c} | 0 arch/um/{sys-x86_64/bugs.c => sys-x86/bugs_64.c} | 0 .../{sys-i386/checksum.S => sys-x86/checksum_32.S} | 0 arch/um/{sys-i386/delay.c => sys-x86/delay_32.c} | 0 arch/um/{sys-x86_64/delay.c => sys-x86/delay_64.c} | 0 arch/um/{sys-i386 => sys-x86}/elfcore.c | 0 arch/um/{sys-i386 => sys-x86}/fault.c | 0 arch/um/{sys-x86_64 => sys-x86}/ksyms.c | 2 + arch/um/{sys-i386 => sys-x86}/ldt.c | 0 arch/um/{sys-i386/mem.c => sys-x86/mem_32.c} | 0 arch/um/{sys-x86_64/mem.c => sys-x86/mem_64.c} | 0 arch/um/{sys-i386/ptrace.c => sys-x86/ptrace_32.c} | 0 .../{sys-x86_64/ptrace.c => sys-x86/ptrace_64.c} | 0 arch/um/{sys-i386 => sys-x86}/ptrace_user.c | 2 +- arch/um/{sys-i386/setjmp.S => sys-x86/setjmp_32.S} | 0 .../{sys-x86_64/setjmp.S => sys-x86/setjmp_64.S} | 0 arch/um/{sys-i386/signal.c => sys-x86/signal_32.c} | 0 .../{sys-x86_64/signal.c => sys-x86/signal_64.c} | 0 arch/um/{sys-i386/stub.S => sys-x86/stub_32.S} | 0 arch/um/{sys-x86_64/stub.S => sys-x86/stub_64.S} | 0 .../stub_segv.c => sys-x86/stub_segv_32.c} | 0 .../stub_segv.c => sys-x86/stub_segv_64.c} | 0 .../sys_call_table_32.S} | 0 .../sys_call_table_64.c} | 0 .../{sys-i386/syscalls.c => sys-x86/syscalls_32.c} | 0 .../syscalls.c => sys-x86/syscalls_64.c} | 0 arch/um/{sys-i386/sysrq.c => sys-x86/sysrq_32.c} | 0 arch/um/{sys-x86_64/sysrq.c => sys-x86/sysrq_64.c} | 0 arch/um/{sys-i386/tls.c => sys-x86/tls_32.c} | 0 arch/um/{sys-x86_64/tls.c => sys-x86/tls_64.c} | 0 arch/um/{sys-x86_64 => sys-x86}/user-offsets.c | 33 ++++++++++-- arch/um/{sys-x86_64 => sys-x86}/vdso/Makefile | 0 arch/um/{sys-x86_64 => sys-x86}/vdso/checkundef.sh | 0 arch/um/{sys-x86_64 => sys-x86}/vdso/um_vdso.c | 0 .../{sys-x86_64 => sys-x86}/vdso/vdso-layout.lds.S | 0 arch/um/{sys-x86_64 => sys-x86}/vdso/vdso-note.S | 0 arch/um/{sys-x86_64 => sys-x86}/vdso/vdso.S | 2 +- arch/um/{sys-x86_64 => sys-x86}/vdso/vdso.lds.S | 0 arch/um/{sys-x86_64 => sys-x86}/vdso/vma.c | 0 arch/um/sys-x86_64/Makefile | 27 ---------- arch/um/sys-x86_64/fault.c | 28 ---------- arch/um/sys-x86_64/ptrace_user.c | 22 -------- 51 files changed, 81 insertions(+), 193 deletions(-) delete mode 100644 arch/um/sys-i386/Makefile delete mode 100644 arch/um/sys-i386/bug.c delete mode 100644 arch/um/sys-i386/ksyms.c delete mode 100644 arch/um/sys-i386/user-offsets.c create mode 100644 arch/um/sys-x86/Makefile rename arch/um/{sys-x86_64 => sys-x86}/bug.c (100%) rename arch/um/{sys-i386/bugs.c => sys-x86/bugs_32.c} (100%) rename arch/um/{sys-x86_64/bugs.c => sys-x86/bugs_64.c} (100%) rename arch/um/{sys-i386/checksum.S => sys-x86/checksum_32.S} (100%) rename arch/um/{sys-i386/delay.c => sys-x86/delay_32.c} (100%) rename arch/um/{sys-x86_64/delay.c => sys-x86/delay_64.c} (100%) rename arch/um/{sys-i386 => sys-x86}/elfcore.c (100%) rename arch/um/{sys-i386 => sys-x86}/fault.c (100%) rename arch/um/{sys-x86_64 => sys-x86}/ksyms.c (90%) rename arch/um/{sys-i386 => sys-x86}/ldt.c (100%) rename arch/um/{sys-i386/mem.c => sys-x86/mem_32.c} (100%) rename arch/um/{sys-x86_64/mem.c => sys-x86/mem_64.c} (100%) rename arch/um/{sys-i386/ptrace.c => sys-x86/ptrace_32.c} (100%) rename arch/um/{sys-x86_64/ptrace.c => sys-x86/ptrace_64.c} (100%) rename arch/um/{sys-i386 => sys-x86}/ptrace_user.c (94%) rename arch/um/{sys-i386/setjmp.S => sys-x86/setjmp_32.S} (100%) rename arch/um/{sys-x86_64/setjmp.S => sys-x86/setjmp_64.S} (100%) rename arch/um/{sys-i386/signal.c => sys-x86/signal_32.c} (100%) rename arch/um/{sys-x86_64/signal.c => sys-x86/signal_64.c} (100%) rename arch/um/{sys-i386/stub.S => sys-x86/stub_32.S} (100%) rename arch/um/{sys-x86_64/stub.S => sys-x86/stub_64.S} (100%) rename arch/um/{sys-i386/stub_segv.c => sys-x86/stub_segv_32.c} (100%) rename arch/um/{sys-x86_64/stub_segv.c => sys-x86/stub_segv_64.c} (100%) rename arch/um/{sys-i386/sys_call_table.S => sys-x86/sys_call_table_32.S} (100%) rename arch/um/{sys-x86_64/syscall_table.c => sys-x86/sys_call_table_64.c} (100%) rename arch/um/{sys-i386/syscalls.c => sys-x86/syscalls_32.c} (100%) rename arch/um/{sys-x86_64/syscalls.c => sys-x86/syscalls_64.c} (100%) rename arch/um/{sys-i386/sysrq.c => sys-x86/sysrq_32.c} (100%) rename arch/um/{sys-x86_64/sysrq.c => sys-x86/sysrq_64.c} (100%) rename arch/um/{sys-i386/tls.c => sys-x86/tls_32.c} (100%) rename arch/um/{sys-x86_64/tls.c => sys-x86/tls_64.c} (100%) rename arch/um/{sys-x86_64 => sys-x86}/user-offsets.c (70%) rename arch/um/{sys-x86_64 => sys-x86}/vdso/Makefile (100%) rename arch/um/{sys-x86_64 => sys-x86}/vdso/checkundef.sh (100%) rename arch/um/{sys-x86_64 => sys-x86}/vdso/um_vdso.c (100%) rename arch/um/{sys-x86_64 => sys-x86}/vdso/vdso-layout.lds.S (100%) rename arch/um/{sys-x86_64 => sys-x86}/vdso/vdso-note.S (100%) rename arch/um/{sys-x86_64 => sys-x86}/vdso/vdso.S (69%) rename arch/um/{sys-x86_64 => sys-x86}/vdso/vdso.lds.S (100%) rename arch/um/{sys-x86_64 => sys-x86}/vdso/vma.c (100%) delete mode 100644 arch/um/sys-x86_64/Makefile delete mode 100644 arch/um/sys-x86_64/fault.c delete mode 100644 arch/um/sys-x86_64/ptrace_user.c
diff --git a/arch/um/Makefile b/arch/um/Makefile index 184494d..bd0587e 100644 --- a/arch/um/Makefile +++ b/arch/um/Makefile @@ -121,8 +121,8 @@ archclean: # Generated files -$(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.s: FORCE - $(Q)$(MAKE) $(build)=$(ARCH_DIR)/sys-$(SUBARCH) $@ +$(ARCH_DIR)/sys-$(HEADER_ARCH)/user-offsets.s: FORCE + $(Q)$(MAKE) $(build)=$(ARCH_DIR)/sys-$(HEADER_ARCH) $@ define filechk_gen-asm-offsets (set -e; \ @@ -137,7 +137,7 @@ define filechk_gen-asm-offsets echo ""; ) endef -include/generated/user_constants.h: $(ARCH_DIR)/sys-$(SUBARCH)/user-offsets.s +include/generated/user_constants.h: $(ARCH_DIR)/sys-$(HEADER_ARCH)/user-offsets.s $(call filechk,gen-asm-offsets) export SUBARCH USER_CFLAGS CFLAGS_NO_HARDENING OS HEADER_ARCH DEV_NULL_PATH diff --git a/arch/um/Makefile-i386 b/arch/um/Makefile-i386 index 302cbe5..7e5f1ba 100644 --- a/arch/um/Makefile-i386 +++ b/arch/um/Makefile-i386 @@ -1,4 +1,4 @@ -core-y += arch/um/sys-i386/ arch/x86/crypto/ +core-y += arch/um/sys-x86/ arch/x86/crypto/ TOP_ADDR := $(CONFIG_TOP_ADDR) diff --git a/arch/um/Makefile-x86_64 b/arch/um/Makefile-x86_64 index a9cd7e7..92d8f8f 100644 --- a/arch/um/Makefile-x86_64 +++ b/arch/um/Makefile-x86_64 @@ -1,7 +1,7 @@ # Copyright 2003 - 2004 Pathscale, Inc # Released under the GPL -core-y += arch/um/sys-x86_64/ arch/x86/crypto/ +core-y += arch/um/sys-x86/ arch/x86/crypto/ START := 0x60000000 _extra_flags_ = -fno-builtin -m64 diff --git a/arch/um/sys-i386/Makefile b/arch/um/sys-i386/Makefile deleted file mode 100644 index 231bb98..0000000 --- a/arch/um/sys-i386/Makefile +++ /dev/null @@ -1,24 +0,0 @@ -# -# Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) -# - -obj-y = bug.o bugs.o checksum.o delay.o fault.o ksyms.o ldt.o ptrace.o \ - ptrace_user.o setjmp.o signal.o stub.o stub_segv.o syscalls.o sysrq.o \ - sys_call_table.o tls.o mem.o - -obj-$(CONFIG_BINFMT_ELF) += elfcore.o - -subarch-obj-y = lib/string_32.o lib/atomic64_32.o lib/atomic64_cx8_32.o -subarch-obj-$(CONFIG_RWSEM_XCHGADD_ALGORITHM) += lib/rwsem.o -subarch-obj-$(CONFIG_HIGHMEM) += mm/highmem_32.o -subarch-obj-$(CONFIG_MODULES) += kernel/module.o - -USER_OBJS := bugs.o ptrace_user.o fault.o - -extra-y += user-offsets.s -$(obj)/user-offsets.s: c_flags = -Wp,-MD,$(depfile) $(USER_CFLAGS) - -UNPROFILE_OBJS := stub_segv.o -CFLAGS_stub_segv.o := $(CFLAGS_NO_HARDENING) - -include arch/um/scripts/Makefile.rules diff --git a/arch/um/sys-i386/bug.c b/arch/um/sys-i386/bug.c deleted file mode 100644 index 8d4f273..0000000 --- a/arch/um/sys-i386/bug.c +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Copyright (C) 2006 Jeff Dike (jd...@addtoit.com) - * Licensed under the GPL V2 - */ - -#include <linux/uaccess.h> -#include <asm/errno.h> - -/* Mostly copied from i386/x86_86 - eliminated the eip < PAGE_OFFSET because - * that's not relevant in skas mode. - */ - -int is_valid_bugaddr(unsigned long eip) -{ - unsigned short ud2; - - if (probe_kernel_address((unsigned short __user *)eip, ud2)) - return 0; - - return ud2 == 0x0b0f; -} diff --git a/arch/um/sys-i386/ksyms.c b/arch/um/sys-i386/ksyms.c deleted file mode 100644 index bfbefd3..0000000 --- a/arch/um/sys-i386/ksyms.c +++ /dev/null @@ -1,5 +0,0 @@ -#include "linux/module.h" -#include "asm/checksum.h" - -/* Networking helper routines. */ -EXPORT_SYMBOL(csum_partial); diff --git a/arch/um/sys-i386/user-offsets.c b/arch/um/sys-i386/user-offsets.c deleted file mode 100644 index 5f883bf..0000000 --- a/arch/um/sys-i386/user-offsets.c +++ /dev/null @@ -1,53 +0,0 @@ -#include <stdio.h> -#include <stddef.h> -#include <signal.h> -#include <sys/poll.h> -#include <sys/user.h> -#include <sys/mman.h> -#include <asm/ptrace.h> - -#define DEFINE(sym, val) \ - asm volatile("\n->" #sym " %0 " #val : : "i" (val)) - -#define DEFINE_LONGS(sym, val) \ - asm volatile("\n->" #sym " %0 " #val : : "i" (val/sizeof(unsigned long))) - -#define OFFSET(sym, str, mem) \ - DEFINE(sym, offsetof(struct str, mem)); - -void foo(void) -{ - OFFSET(HOST_SC_TRAPNO, sigcontext, trapno); - OFFSET(HOST_SC_ERR, sigcontext, err); - OFFSET(HOST_SC_CR2, sigcontext, cr2); - - DEFINE_LONGS(HOST_FP_SIZE, sizeof(struct user_fpregs_struct)); - DEFINE_LONGS(HOST_FPX_SIZE, sizeof(struct user_fpxregs_struct)); - - DEFINE(HOST_IP, EIP); - DEFINE(HOST_SP, UESP); - DEFINE(HOST_EFLAGS, EFL); - DEFINE(HOST_EAX, EAX); - DEFINE(HOST_EBX, EBX); - DEFINE(HOST_ECX, ECX); - DEFINE(HOST_EDX, EDX); - DEFINE(HOST_ESI, ESI); - DEFINE(HOST_EDI, EDI); - DEFINE(HOST_EBP, EBP); - DEFINE(HOST_CS, CS); - DEFINE(HOST_SS, SS); - DEFINE(HOST_DS, DS); - DEFINE(HOST_FS, FS); - DEFINE(HOST_ES, ES); - DEFINE(HOST_GS, GS); - DEFINE(UM_FRAME_SIZE, sizeof(struct user_regs_struct)); - - /* XXX Duplicated between i386 and x86_64 */ - DEFINE(UM_POLLIN, POLLIN); - DEFINE(UM_POLLPRI, POLLPRI); - DEFINE(UM_POLLOUT, POLLOUT); - - DEFINE(UM_PROT_READ, PROT_READ); - DEFINE(UM_PROT_WRITE, PROT_WRITE); - DEFINE(UM_PROT_EXEC, PROT_EXEC); -} diff --git a/arch/um/sys-x86/Makefile b/arch/um/sys-x86/Makefile new file mode 100644 index 0000000..671de0b --- /dev/null +++ b/arch/um/sys-x86/Makefile @@ -0,0 +1,45 @@ +# +# Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) +# + +ifeq ($(CONFIG_X86_32),y) + BITS := 32 +else + BITS := 64 +endif + +obj-y = bug.o bugs_$(BITS).o delay_$(BITS).o fault.o ksyms.o ldt.o \ + ptrace_$(BITS).o ptrace_user.o setjmp_$(BITS).o signal_$(BITS).o \ + stub_$(BITS).o stub_segv_$(BITS).o syscalls_$(BITS).o \ + sys_call_table_$(BITS).o sysrq_$(BITS).o tls_$(BITS).o mem_$(BITS).o + +ifeq ($(CONFIG_X86_32),y) + +obj-y += checksum_32.o +obj-$(CONFIG_BINFMT_ELF) += elfcore.o + +subarch-obj-y = lib/string_32.o lib/atomic64_32.o lib/atomic64_cx8_32.o +subarch-obj-$(CONFIG_RWSEM_XCHGADD_ALGORITHM) += lib/rwsem.o +subarch-obj-$(CONFIG_HIGHMEM) += mm/highmem_32.o +subarch-obj-$(CONFIG_MODULES) += kernel/module.o + +else + +obj-y += vdso/ + +subarch-obj-y = lib/csum-partial_64.o lib/memcpy_64.o lib/thunk_64.o \ + lib/rwsem.o + +endif + +subarch-obj-$(CONFIG_MODULES) += kernel/module.o + +USER_OBJS := bugs_$(BITS).o ptrace_user.o fault.o + +extra-y += user-offsets.s +$(obj)/user-offsets.s: c_flags = -Wp,-MD,$(depfile) $(USER_CFLAGS) + +UNPROFILE_OBJS := stub_segv.o +CFLAGS_stub_segv.o := $(CFLAGS_NO_HARDENING) + +include arch/um/scripts/Makefile.rules diff --git a/arch/um/sys-x86_64/bug.c b/arch/um/sys-x86/bug.c similarity index 100% rename from arch/um/sys-x86_64/bug.c rename to arch/um/sys-x86/bug.c diff --git a/arch/um/sys-i386/bugs.c b/arch/um/sys-x86/bugs_32.c similarity index 100% rename from arch/um/sys-i386/bugs.c rename to arch/um/sys-x86/bugs_32.c diff --git a/arch/um/sys-x86_64/bugs.c b/arch/um/sys-x86/bugs_64.c similarity index 100% rename from arch/um/sys-x86_64/bugs.c rename to arch/um/sys-x86/bugs_64.c diff --git a/arch/um/sys-i386/checksum.S b/arch/um/sys-x86/checksum_32.S similarity index 100% rename from arch/um/sys-i386/checksum.S rename to arch/um/sys-x86/checksum_32.S diff --git a/arch/um/sys-i386/delay.c b/arch/um/sys-x86/delay_32.c similarity index 100% rename from arch/um/sys-i386/delay.c rename to arch/um/sys-x86/delay_32.c diff --git a/arch/um/sys-x86_64/delay.c b/arch/um/sys-x86/delay_64.c similarity index 100% rename from arch/um/sys-x86_64/delay.c rename to arch/um/sys-x86/delay_64.c diff --git a/arch/um/sys-i386/elfcore.c b/arch/um/sys-x86/elfcore.c similarity index 100% rename from arch/um/sys-i386/elfcore.c rename to arch/um/sys-x86/elfcore.c diff --git a/arch/um/sys-i386/fault.c b/arch/um/sys-x86/fault.c similarity index 100% rename from arch/um/sys-i386/fault.c rename to arch/um/sys-x86/fault.c diff --git a/arch/um/sys-x86_64/ksyms.c b/arch/um/sys-x86/ksyms.c similarity index 90% rename from arch/um/sys-x86_64/ksyms.c rename to arch/um/sys-x86/ksyms.c index 1db2fce..2e8f43e 100644 --- a/arch/um/sys-x86_64/ksyms.c +++ b/arch/um/sys-x86/ksyms.c @@ -2,10 +2,12 @@ #include <asm/string.h> #include <asm/checksum.h> +#ifndef CONFIG_X86_32 /*XXX: we need them because they would be exported by x86_64 */ #if (__GNUC__ == 4 && __GNUC_MINOR__ >= 3) || __GNUC__ > 4 EXPORT_SYMBOL(memcpy); #else EXPORT_SYMBOL(__memcpy); #endif +#endif EXPORT_SYMBOL(csum_partial); diff --git a/arch/um/sys-i386/ldt.c b/arch/um/sys-x86/ldt.c similarity index 100% rename from arch/um/sys-i386/ldt.c rename to arch/um/sys-x86/ldt.c diff --git a/arch/um/sys-i386/mem.c b/arch/um/sys-x86/mem_32.c similarity index 100% rename from arch/um/sys-i386/mem.c rename to arch/um/sys-x86/mem_32.c diff --git a/arch/um/sys-x86_64/mem.c b/arch/um/sys-x86/mem_64.c similarity index 100% rename from arch/um/sys-x86_64/mem.c rename to arch/um/sys-x86/mem_64.c diff --git a/arch/um/sys-i386/ptrace.c b/arch/um/sys-x86/ptrace_32.c similarity index 100% rename from arch/um/sys-i386/ptrace.c rename to arch/um/sys-x86/ptrace_32.c diff --git a/arch/um/sys-x86_64/ptrace.c b/arch/um/sys-x86/ptrace_64.c similarity index 100% rename from arch/um/sys-x86_64/ptrace.c rename to arch/um/sys-x86/ptrace_64.c diff --git a/arch/um/sys-i386/ptrace_user.c b/arch/um/sys-x86/ptrace_user.c similarity index 94% rename from arch/um/sys-i386/ptrace_user.c rename to arch/um/sys-x86/ptrace_user.c index 0b10c3e..3960ca1 100644 --- a/arch/um/sys-i386/ptrace_user.c +++ b/arch/um/sys-x86/ptrace_user.c @@ -4,7 +4,7 @@ */ #include <errno.h> -#include <sys/ptrace.h> +#include "ptrace_user.h" int ptrace_getregs(long pid, unsigned long *regs_out) { diff --git a/arch/um/sys-i386/setjmp.S b/arch/um/sys-x86/setjmp_32.S similarity index 100% rename from arch/um/sys-i386/setjmp.S rename to arch/um/sys-x86/setjmp_32.S diff --git a/arch/um/sys-x86_64/setjmp.S b/arch/um/sys-x86/setjmp_64.S similarity index 100% rename from arch/um/sys-x86_64/setjmp.S rename to arch/um/sys-x86/setjmp_64.S diff --git a/arch/um/sys-i386/signal.c b/arch/um/sys-x86/signal_32.c similarity index 100% rename from arch/um/sys-i386/signal.c rename to arch/um/sys-x86/signal_32.c diff --git a/arch/um/sys-x86_64/signal.c b/arch/um/sys-x86/signal_64.c similarity index 100% rename from arch/um/sys-x86_64/signal.c rename to arch/um/sys-x86/signal_64.c diff --git a/arch/um/sys-i386/stub.S b/arch/um/sys-x86/stub_32.S similarity index 100% rename from arch/um/sys-i386/stub.S rename to arch/um/sys-x86/stub_32.S diff --git a/arch/um/sys-x86_64/stub.S b/arch/um/sys-x86/stub_64.S similarity index 100% rename from arch/um/sys-x86_64/stub.S rename to arch/um/sys-x86/stub_64.S diff --git a/arch/um/sys-i386/stub_segv.c b/arch/um/sys-x86/stub_segv_32.c similarity index 100% rename from arch/um/sys-i386/stub_segv.c rename to arch/um/sys-x86/stub_segv_32.c diff --git a/arch/um/sys-x86_64/stub_segv.c b/arch/um/sys-x86/stub_segv_64.c similarity index 100% rename from arch/um/sys-x86_64/stub_segv.c rename to arch/um/sys-x86/stub_segv_64.c diff --git a/arch/um/sys-i386/sys_call_table.S b/arch/um/sys-x86/sys_call_table_32.S similarity index 100% rename from arch/um/sys-i386/sys_call_table.S rename to arch/um/sys-x86/sys_call_table_32.S diff --git a/arch/um/sys-x86_64/syscall_table.c b/arch/um/sys-x86/sys_call_table_64.c similarity index 100% rename from arch/um/sys-x86_64/syscall_table.c rename to arch/um/sys-x86/sys_call_table_64.c diff --git a/arch/um/sys-i386/syscalls.c b/arch/um/sys-x86/syscalls_32.c similarity index 100% rename from arch/um/sys-i386/syscalls.c rename to arch/um/sys-x86/syscalls_32.c diff --git a/arch/um/sys-x86_64/syscalls.c b/arch/um/sys-x86/syscalls_64.c similarity index 100% rename from arch/um/sys-x86_64/syscalls.c rename to arch/um/sys-x86/syscalls_64.c diff --git a/arch/um/sys-i386/sysrq.c b/arch/um/sys-x86/sysrq_32.c similarity index 100% rename from arch/um/sys-i386/sysrq.c rename to arch/um/sys-x86/sysrq_32.c diff --git a/arch/um/sys-x86_64/sysrq.c b/arch/um/sys-x86/sysrq_64.c similarity index 100% rename from arch/um/sys-x86_64/sysrq.c rename to arch/um/sys-x86/sysrq_64.c diff --git a/arch/um/sys-i386/tls.c b/arch/um/sys-x86/tls_32.c similarity index 100% rename from arch/um/sys-i386/tls.c rename to arch/um/sys-x86/tls_32.c diff --git a/arch/um/sys-x86_64/tls.c b/arch/um/sys-x86/tls_64.c similarity index 100% rename from arch/um/sys-x86_64/tls.c rename to arch/um/sys-x86/tls_64.c diff --git a/arch/um/sys-x86_64/user-offsets.c b/arch/um/sys-x86/user-offsets.c similarity index 70% rename from arch/um/sys-x86_64/user-offsets.c rename to arch/um/sys-x86/user-offsets.c index 9735854..718f0c0 100644 --- a/arch/um/sys-x86_64/user-offsets.c +++ b/arch/um/sys-x86/user-offsets.c @@ -9,20 +9,41 @@ #include <asm/types.h> #define DEFINE(sym, val) \ - asm volatile("\n->" #sym " %0 " #val : : "i" (val)) + asm volatile("\n->" #sym " %0 " #val : : "i" (val)) #define DEFINE_LONGS(sym, val) \ - asm volatile("\n->" #sym " %0 " #val : : "i" (val/sizeof(unsigned long))) + asm volatile("\n->" #sym " %0 " #val : : "i" (val/sizeof(unsigned long))) #define OFFSET(sym, str, mem) \ DEFINE(sym, offsetof(struct str, mem)); void foo(void) { - OFFSET(HOST_SC_CR2, sigcontext, cr2); - OFFSET(HOST_SC_ERR, sigcontext, err); OFFSET(HOST_SC_TRAPNO, sigcontext, trapno); + OFFSET(HOST_SC_ERR, sigcontext, err); + OFFSET(HOST_SC_CR2, sigcontext, cr2); +#ifdef __i386__ + DEFINE_LONGS(HOST_FP_SIZE, sizeof(struct user_fpregs_struct)); + DEFINE_LONGS(HOST_FPX_SIZE, sizeof(struct user_fpxregs_struct)); + + DEFINE(HOST_IP, EIP); + DEFINE(HOST_SP, UESP); + DEFINE(HOST_EFLAGS, EFL); + DEFINE(HOST_EAX, EAX); + DEFINE(HOST_EBX, EBX); + DEFINE(HOST_ECX, ECX); + DEFINE(HOST_EDX, EDX); + DEFINE(HOST_ESI, ESI); + DEFINE(HOST_EDI, EDI); + DEFINE(HOST_EBP, EBP); + DEFINE(HOST_CS, CS); + DEFINE(HOST_SS, SS); + DEFINE(HOST_DS, DS); + DEFINE(HOST_FS, FS); + DEFINE(HOST_ES, ES); + DEFINE(HOST_GS, GS); +#else DEFINE(HOST_FP_SIZE, sizeof(struct _fpstate) / sizeof(unsigned long)); DEFINE_LONGS(HOST_RBX, RBX); DEFINE_LONGS(HOST_RCX, RCX); @@ -52,9 +73,9 @@ void foo(void) DEFINE_LONGS(HOST_IP, RIP); DEFINE_LONGS(HOST_SP, RSP); - DEFINE(UM_FRAME_SIZE, sizeof(struct user_regs_struct)); +#endif - /* XXX Duplicated between i386 and x86_64 */ + DEFINE(UM_FRAME_SIZE, sizeof(struct user_regs_struct)); DEFINE(UM_POLLIN, POLLIN); DEFINE(UM_POLLPRI, POLLPRI); DEFINE(UM_POLLOUT, POLLOUT); diff --git a/arch/um/sys-x86_64/vdso/Makefile b/arch/um/sys-x86/vdso/Makefile similarity index 100% rename from arch/um/sys-x86_64/vdso/Makefile rename to arch/um/sys-x86/vdso/Makefile diff --git a/arch/um/sys-x86_64/vdso/checkundef.sh b/arch/um/sys-x86/vdso/checkundef.sh similarity index 100% rename from arch/um/sys-x86_64/vdso/checkundef.sh rename to arch/um/sys-x86/vdso/checkundef.sh diff --git a/arch/um/sys-x86_64/vdso/um_vdso.c b/arch/um/sys-x86/vdso/um_vdso.c similarity index 100% rename from arch/um/sys-x86_64/vdso/um_vdso.c rename to arch/um/sys-x86/vdso/um_vdso.c diff --git a/arch/um/sys-x86_64/vdso/vdso-layout.lds.S b/arch/um/sys-x86/vdso/vdso-layout.lds.S similarity index 100% rename from arch/um/sys-x86_64/vdso/vdso-layout.lds.S rename to arch/um/sys-x86/vdso/vdso-layout.lds.S diff --git a/arch/um/sys-x86_64/vdso/vdso-note.S b/arch/um/sys-x86/vdso/vdso-note.S similarity index 100% rename from arch/um/sys-x86_64/vdso/vdso-note.S rename to arch/um/sys-x86/vdso/vdso-note.S diff --git a/arch/um/sys-x86_64/vdso/vdso.S b/arch/um/sys-x86/vdso/vdso.S similarity index 69% rename from arch/um/sys-x86_64/vdso/vdso.S rename to arch/um/sys-x86/vdso/vdso.S index ec82c16..03b0532 100644 --- a/arch/um/sys-x86_64/vdso/vdso.S +++ b/arch/um/sys-x86/vdso/vdso.S @@ -4,7 +4,7 @@ __INITDATA .globl vdso_start, vdso_end vdso_start: - .incbin "arch/um/sys-x86_64/vdso/vdso.so" + .incbin "arch/um/sys-x86/vdso/vdso.so" vdso_end: __FINIT diff --git a/arch/um/sys-x86_64/vdso/vdso.lds.S b/arch/um/sys-x86/vdso/vdso.lds.S similarity index 100% rename from arch/um/sys-x86_64/vdso/vdso.lds.S rename to arch/um/sys-x86/vdso/vdso.lds.S diff --git a/arch/um/sys-x86_64/vdso/vma.c b/arch/um/sys-x86/vdso/vma.c similarity index 100% rename from arch/um/sys-x86_64/vdso/vma.c rename to arch/um/sys-x86/vdso/vma.c diff --git a/arch/um/sys-x86_64/Makefile b/arch/um/sys-x86_64/Makefile deleted file mode 100644 index 0971846..0000000 --- a/arch/um/sys-x86_64/Makefile +++ /dev/null @@ -1,27 +0,0 @@ -# -# Copyright 2003 PathScale, Inc. -# -# Licensed under the GPL -# - -obj-y = bug.o bugs.o delay.o fault.o ldt.o ptrace.o ptrace_user.o mem.o \ - setjmp.o signal.o stub.o stub_segv.o syscalls.o syscall_table.o \ - sysrq.o ksyms.o tls.o - -obj-y += vdso/ - -subarch-obj-y = lib/csum-partial_64.o lib/memcpy_64.o lib/thunk_64.o \ - lib/rwsem.o -subarch-obj-$(CONFIG_MODULES) += kernel/module.o - -ldt-y = ../sys-i386/ldt.o - -USER_OBJS := ptrace_user.o - -extra-y += user-offsets.s -$(obj)/user-offsets.s: c_flags = -Wp,-MD,$(depfile) $(USER_CFLAGS) - -UNPROFILE_OBJS := stub_segv.o -CFLAGS_stub_segv.o := $(CFLAGS_NO_HARDENING) - -include arch/um/scripts/Makefile.rules diff --git a/arch/um/sys-x86_64/fault.c b/arch/um/sys-x86_64/fault.c deleted file mode 100644 index ce85117..0000000 --- a/arch/um/sys-x86_64/fault.c +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 2003 PathScale, Inc. - * - * Licensed under the GPL - */ - -#include "sysdep/ptrace.h" - -/* These two are from asm-um/uaccess.h and linux/module.h, check them. */ -struct exception_table_entry -{ - unsigned long insn; - unsigned long fixup; -}; - -const struct exception_table_entry *search_exception_tables(unsigned long add); - -int arch_fixup(unsigned long address, struct uml_pt_regs *regs) -{ - const struct exception_table_entry *fixup; - - fixup = search_exception_tables(address); - if (fixup != 0) { - UPT_IP(regs) = fixup->fixup; - return 1; - } - return 0; -} diff --git a/arch/um/sys-x86_64/ptrace_user.c b/arch/um/sys-x86_64/ptrace_user.c deleted file mode 100644 index c57a496..0000000 --- a/arch/um/sys-x86_64/ptrace_user.c +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2003 PathScale, Inc. - * - * Licensed under the GPL - */ - -#include <errno.h> -#include "ptrace_user.h" - -int ptrace_getregs(long pid, unsigned long *regs_out) -{ - if (ptrace(PTRACE_GETREGS, pid, 0, regs_out) < 0) - return -errno; - return(0); -} - -int ptrace_setregs(long pid, unsigned long *regs_out) -{ - if (ptrace(PTRACE_SETREGS, pid, 0, regs_out) < 0) - return -errno; - return(0); -} -- 1.7.2.5 ------------------------------------------------------------------------------ Get a FREE DOWNLOAD! and learn more about uberSVN rich system, user administration capabilities and model configuration. Take the hassle out of deploying and managing Subversion and the tools developers use with it. http://p.sf.net/sfu/wandisco-d2d-2 _______________________________________________ User-mode-linux-devel mailing list User-mode-linux-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel