Loading arch/um/kernel/process.c +1 −1 Original line number Diff line number Diff line Loading @@ -196,7 +196,7 @@ int copy_thread(unsigned long clone_flags, unsigned long sp, if (current->thread.forking) { memcpy(&p->thread.regs.regs, ®s->regs, sizeof(p->thread.regs.regs)); REGS_SET_SYSCALL_RETURN(p->thread.regs.regs.gp, 0); UPT_SET_SYSCALL_RETURN(&p->thread.regs.regs, 0); if (sp != 0) REGS_SP(p->thread.regs.regs.gp) = sp; Loading arch/um/kernel/skas/syscall.c +1 −1 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ void handle_syscall(struct uml_pt_regs *r) result = -ENOSYS; else result = EXECUTE_SYSCALL(syscall, regs); REGS_SET_SYSCALL_RETURN(r->gp, result); UPT_SET_SYSCALL_RETURN(r, result); syscall_trace(r, 1); } arch/x86/um/asm/elf.h +21 −21 Original line number Diff line number Diff line Loading @@ -34,25 +34,25 @@ #define ELF_ARCH EM_386 #define ELF_PLAT_INIT(regs, load_addr) do { \ PT_REGS_EBX(regs) = 0; \ PT_REGS_ECX(regs) = 0; \ PT_REGS_EDX(regs) = 0; \ PT_REGS_ESI(regs) = 0; \ PT_REGS_EDI(regs) = 0; \ PT_REGS_EBP(regs) = 0; \ PT_REGS_EAX(regs) = 0; \ PT_REGS_BX(regs) = 0; \ PT_REGS_CX(regs) = 0; \ PT_REGS_DX(regs) = 0; \ PT_REGS_SI(regs) = 0; \ PT_REGS_DI(regs) = 0; \ PT_REGS_BP(regs) = 0; \ PT_REGS_AX(regs) = 0; \ } while (0) /* Shamelessly stolen from include/asm-i386/elf.h */ #define ELF_CORE_COPY_REGS(pr_reg, regs) do { \ pr_reg[0] = PT_REGS_EBX(regs); \ pr_reg[1] = PT_REGS_ECX(regs); \ pr_reg[2] = PT_REGS_EDX(regs); \ pr_reg[3] = PT_REGS_ESI(regs); \ pr_reg[4] = PT_REGS_EDI(regs); \ pr_reg[5] = PT_REGS_EBP(regs); \ pr_reg[6] = PT_REGS_EAX(regs); \ pr_reg[0] = PT_REGS_BX(regs); \ pr_reg[1] = PT_REGS_CX(regs); \ pr_reg[2] = PT_REGS_DX(regs); \ pr_reg[3] = PT_REGS_SI(regs); \ pr_reg[4] = PT_REGS_DI(regs); \ pr_reg[5] = PT_REGS_BP(regs); \ pr_reg[6] = PT_REGS_AX(regs); \ pr_reg[7] = PT_REGS_DS(regs); \ pr_reg[8] = PT_REGS_ES(regs); \ /* fake once used fs and gs selectors? */ \ Loading Loading @@ -130,13 +130,13 @@ do { \ #define ELF_ARCH EM_X86_64 #define ELF_PLAT_INIT(regs, load_addr) do { \ PT_REGS_RBX(regs) = 0; \ PT_REGS_RCX(regs) = 0; \ PT_REGS_RDX(regs) = 0; \ PT_REGS_RSI(regs) = 0; \ PT_REGS_RDI(regs) = 0; \ PT_REGS_RBP(regs) = 0; \ PT_REGS_RAX(regs) = 0; \ PT_REGS_BX(regs) = 0; \ PT_REGS_CX(regs) = 0; \ PT_REGS_DX(regs) = 0; \ PT_REGS_SI(regs) = 0; \ PT_REGS_DI(regs) = 0; \ PT_REGS_BP(regs) = 0; \ PT_REGS_AX(regs) = 0; \ PT_REGS_R8(regs) = 0; \ PT_REGS_R9(regs) = 0; \ PT_REGS_R10(regs) = 0; \ Loading arch/x86/um/asm/ptrace.h +34 −0 Original line number Diff line number Diff line #ifndef __UM_X86_PTRACE_H #define __UM_X86_PTRACE_H #ifdef CONFIG_X86_32 # include "ptrace_32.h" #else # include "ptrace_64.h" #endif #define PT_REGS_AX(r) UPT_AX(&(r)->regs) #define PT_REGS_BX(r) UPT_BX(&(r)->regs) #define PT_REGS_CX(r) UPT_CX(&(r)->regs) #define PT_REGS_DX(r) UPT_DX(&(r)->regs) #define PT_REGS_SI(r) UPT_SI(&(r)->regs) #define PT_REGS_DI(r) UPT_DI(&(r)->regs) #define PT_REGS_BP(r) UPT_BP(&(r)->regs) #define PT_REGS_EFLAGS(r) UPT_EFLAGS(&(r)->regs) #define PT_REGS_CS(r) UPT_CS(&(r)->regs) #define PT_REGS_SS(r) UPT_SS(&(r)->regs) #define PT_REGS_DS(r) UPT_DS(&(r)->regs) #define PT_REGS_ES(r) UPT_ES(&(r)->regs) #define PT_REGS_ORIG_SYSCALL(r) PT_REGS_AX(r) #define PT_REGS_SYSCALL_RET(r) PT_REGS_AX(r) #define PT_FIX_EXEC_STACK(sp) do ; while(0) #define profile_pc(regs) PT_REGS_IP(regs) #define UPT_RESTART_SYSCALL(r) (UPT_IP(r) -= 2) #define UPT_SET_SYSCALL_RETURN(r, res) (UPT_AX(r) = (res)) static inline long regs_return_value(struct uml_pt_regs *regs) { return UPT_AX(regs); } #endif /* __UM_X86_PTRACE_H */ arch/x86/um/asm/ptrace_32.h +0 −23 Original line number Diff line number Diff line Loading @@ -11,29 +11,6 @@ #include "linux/compiler.h" #include "asm/ptrace-generic.h" #define PT_REGS_EAX(r) UPT_EAX(&(r)->regs) #define PT_REGS_EBX(r) UPT_EBX(&(r)->regs) #define PT_REGS_ECX(r) UPT_ECX(&(r)->regs) #define PT_REGS_EDX(r) UPT_EDX(&(r)->regs) #define PT_REGS_ESI(r) UPT_ESI(&(r)->regs) #define PT_REGS_EDI(r) UPT_EDI(&(r)->regs) #define PT_REGS_EBP(r) UPT_EBP(&(r)->regs) #define PT_REGS_CS(r) UPT_CS(&(r)->regs) #define PT_REGS_SS(r) UPT_SS(&(r)->regs) #define PT_REGS_DS(r) UPT_DS(&(r)->regs) #define PT_REGS_ES(r) UPT_ES(&(r)->regs) #define PT_REGS_FS(r) UPT_FS(&(r)->regs) #define PT_REGS_GS(r) UPT_GS(&(r)->regs) #define PT_REGS_EFLAGS(r) UPT_EFLAGS(&(r)->regs) #define PT_REGS_ORIG_SYSCALL(r) PT_REGS_EAX(r) #define PT_REGS_SYSCALL_RET(r) PT_REGS_EAX(r) #define PT_FIX_EXEC_STACK(sp) do ; while(0) #define profile_pc(regs) PT_REGS_IP(regs) #define user_mode(r) UPT_IS_USER(&(r)->regs) /* Loading Loading
arch/um/kernel/process.c +1 −1 Original line number Diff line number Diff line Loading @@ -196,7 +196,7 @@ int copy_thread(unsigned long clone_flags, unsigned long sp, if (current->thread.forking) { memcpy(&p->thread.regs.regs, ®s->regs, sizeof(p->thread.regs.regs)); REGS_SET_SYSCALL_RETURN(p->thread.regs.regs.gp, 0); UPT_SET_SYSCALL_RETURN(&p->thread.regs.regs, 0); if (sp != 0) REGS_SP(p->thread.regs.regs.gp) = sp; Loading
arch/um/kernel/skas/syscall.c +1 −1 Original line number Diff line number Diff line Loading @@ -34,7 +34,7 @@ void handle_syscall(struct uml_pt_regs *r) result = -ENOSYS; else result = EXECUTE_SYSCALL(syscall, regs); REGS_SET_SYSCALL_RETURN(r->gp, result); UPT_SET_SYSCALL_RETURN(r, result); syscall_trace(r, 1); }
arch/x86/um/asm/elf.h +21 −21 Original line number Diff line number Diff line Loading @@ -34,25 +34,25 @@ #define ELF_ARCH EM_386 #define ELF_PLAT_INIT(regs, load_addr) do { \ PT_REGS_EBX(regs) = 0; \ PT_REGS_ECX(regs) = 0; \ PT_REGS_EDX(regs) = 0; \ PT_REGS_ESI(regs) = 0; \ PT_REGS_EDI(regs) = 0; \ PT_REGS_EBP(regs) = 0; \ PT_REGS_EAX(regs) = 0; \ PT_REGS_BX(regs) = 0; \ PT_REGS_CX(regs) = 0; \ PT_REGS_DX(regs) = 0; \ PT_REGS_SI(regs) = 0; \ PT_REGS_DI(regs) = 0; \ PT_REGS_BP(regs) = 0; \ PT_REGS_AX(regs) = 0; \ } while (0) /* Shamelessly stolen from include/asm-i386/elf.h */ #define ELF_CORE_COPY_REGS(pr_reg, regs) do { \ pr_reg[0] = PT_REGS_EBX(regs); \ pr_reg[1] = PT_REGS_ECX(regs); \ pr_reg[2] = PT_REGS_EDX(regs); \ pr_reg[3] = PT_REGS_ESI(regs); \ pr_reg[4] = PT_REGS_EDI(regs); \ pr_reg[5] = PT_REGS_EBP(regs); \ pr_reg[6] = PT_REGS_EAX(regs); \ pr_reg[0] = PT_REGS_BX(regs); \ pr_reg[1] = PT_REGS_CX(regs); \ pr_reg[2] = PT_REGS_DX(regs); \ pr_reg[3] = PT_REGS_SI(regs); \ pr_reg[4] = PT_REGS_DI(regs); \ pr_reg[5] = PT_REGS_BP(regs); \ pr_reg[6] = PT_REGS_AX(regs); \ pr_reg[7] = PT_REGS_DS(regs); \ pr_reg[8] = PT_REGS_ES(regs); \ /* fake once used fs and gs selectors? */ \ Loading Loading @@ -130,13 +130,13 @@ do { \ #define ELF_ARCH EM_X86_64 #define ELF_PLAT_INIT(regs, load_addr) do { \ PT_REGS_RBX(regs) = 0; \ PT_REGS_RCX(regs) = 0; \ PT_REGS_RDX(regs) = 0; \ PT_REGS_RSI(regs) = 0; \ PT_REGS_RDI(regs) = 0; \ PT_REGS_RBP(regs) = 0; \ PT_REGS_RAX(regs) = 0; \ PT_REGS_BX(regs) = 0; \ PT_REGS_CX(regs) = 0; \ PT_REGS_DX(regs) = 0; \ PT_REGS_SI(regs) = 0; \ PT_REGS_DI(regs) = 0; \ PT_REGS_BP(regs) = 0; \ PT_REGS_AX(regs) = 0; \ PT_REGS_R8(regs) = 0; \ PT_REGS_R9(regs) = 0; \ PT_REGS_R10(regs) = 0; \ Loading
arch/x86/um/asm/ptrace.h +34 −0 Original line number Diff line number Diff line #ifndef __UM_X86_PTRACE_H #define __UM_X86_PTRACE_H #ifdef CONFIG_X86_32 # include "ptrace_32.h" #else # include "ptrace_64.h" #endif #define PT_REGS_AX(r) UPT_AX(&(r)->regs) #define PT_REGS_BX(r) UPT_BX(&(r)->regs) #define PT_REGS_CX(r) UPT_CX(&(r)->regs) #define PT_REGS_DX(r) UPT_DX(&(r)->regs) #define PT_REGS_SI(r) UPT_SI(&(r)->regs) #define PT_REGS_DI(r) UPT_DI(&(r)->regs) #define PT_REGS_BP(r) UPT_BP(&(r)->regs) #define PT_REGS_EFLAGS(r) UPT_EFLAGS(&(r)->regs) #define PT_REGS_CS(r) UPT_CS(&(r)->regs) #define PT_REGS_SS(r) UPT_SS(&(r)->regs) #define PT_REGS_DS(r) UPT_DS(&(r)->regs) #define PT_REGS_ES(r) UPT_ES(&(r)->regs) #define PT_REGS_ORIG_SYSCALL(r) PT_REGS_AX(r) #define PT_REGS_SYSCALL_RET(r) PT_REGS_AX(r) #define PT_FIX_EXEC_STACK(sp) do ; while(0) #define profile_pc(regs) PT_REGS_IP(regs) #define UPT_RESTART_SYSCALL(r) (UPT_IP(r) -= 2) #define UPT_SET_SYSCALL_RETURN(r, res) (UPT_AX(r) = (res)) static inline long regs_return_value(struct uml_pt_regs *regs) { return UPT_AX(regs); } #endif /* __UM_X86_PTRACE_H */
arch/x86/um/asm/ptrace_32.h +0 −23 Original line number Diff line number Diff line Loading @@ -11,29 +11,6 @@ #include "linux/compiler.h" #include "asm/ptrace-generic.h" #define PT_REGS_EAX(r) UPT_EAX(&(r)->regs) #define PT_REGS_EBX(r) UPT_EBX(&(r)->regs) #define PT_REGS_ECX(r) UPT_ECX(&(r)->regs) #define PT_REGS_EDX(r) UPT_EDX(&(r)->regs) #define PT_REGS_ESI(r) UPT_ESI(&(r)->regs) #define PT_REGS_EDI(r) UPT_EDI(&(r)->regs) #define PT_REGS_EBP(r) UPT_EBP(&(r)->regs) #define PT_REGS_CS(r) UPT_CS(&(r)->regs) #define PT_REGS_SS(r) UPT_SS(&(r)->regs) #define PT_REGS_DS(r) UPT_DS(&(r)->regs) #define PT_REGS_ES(r) UPT_ES(&(r)->regs) #define PT_REGS_FS(r) UPT_FS(&(r)->regs) #define PT_REGS_GS(r) UPT_GS(&(r)->regs) #define PT_REGS_EFLAGS(r) UPT_EFLAGS(&(r)->regs) #define PT_REGS_ORIG_SYSCALL(r) PT_REGS_EAX(r) #define PT_REGS_SYSCALL_RET(r) PT_REGS_EAX(r) #define PT_FIX_EXEC_STACK(sp) do ; while(0) #define profile_pc(regs) PT_REGS_IP(regs) #define user_mode(r) UPT_IS_USER(&(r)->regs) /* Loading