x86-32: Add new pt_regs stubs
Add new stubs which add the pt_regs pointer as the last arg, matching 64-bit. This will allow these syscalls to be easily merged. Signed-off-by: Brian Gerst <brgerst@gmail.com> LKML-Reference: <1260403316-5679-2-git-send-email-brgerst@gmail.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
This commit is contained in:
parent
2588465bad
commit
e258e4e0b4
1 changed files with 38 additions and 11 deletions
|
@ -725,22 +725,49 @@ END(syscall_badsys)
|
|||
/*
|
||||
* System calls that need a pt_regs pointer.
|
||||
*/
|
||||
#define PTREGSCALL(name) \
|
||||
#define PTREGSCALL0(name) \
|
||||
ALIGN; \
|
||||
ptregs_##name: \
|
||||
leal 4(%esp),%eax; \
|
||||
jmp sys_##name;
|
||||
|
||||
PTREGSCALL(iopl)
|
||||
PTREGSCALL(fork)
|
||||
PTREGSCALL(clone)
|
||||
PTREGSCALL(vfork)
|
||||
PTREGSCALL(execve)
|
||||
PTREGSCALL(sigaltstack)
|
||||
PTREGSCALL(sigreturn)
|
||||
PTREGSCALL(rt_sigreturn)
|
||||
PTREGSCALL(vm86)
|
||||
PTREGSCALL(vm86old)
|
||||
#define PTREGSCALL1(name) \
|
||||
ALIGN; \
|
||||
ptregs_##name: \
|
||||
leal 4(%esp),%edx; \
|
||||
movl PT_EBX(%edx),%eax; \
|
||||
jmp sys_##name;
|
||||
|
||||
#define PTREGSCALL2(name) \
|
||||
ALIGN; \
|
||||
ptregs_##name: \
|
||||
leal 4(%esp),%ecx; \
|
||||
movl PT_ECX(%ecx),%edx; \
|
||||
movl PT_EBX(%ecx),%eax; \
|
||||
jmp sys_##name;
|
||||
|
||||
#define PTREGSCALL3(name) \
|
||||
ALIGN; \
|
||||
ptregs_##name: \
|
||||
leal 4(%esp),%eax; \
|
||||
pushl %eax; \
|
||||
movl PT_EDX(%eax),%ecx; \
|
||||
movl PT_ECX(%eax),%edx; \
|
||||
movl PT_EBX(%eax),%eax; \
|
||||
call sys_##name; \
|
||||
addl $4,%esp; \
|
||||
ret
|
||||
|
||||
PTREGSCALL0(iopl)
|
||||
PTREGSCALL0(fork)
|
||||
PTREGSCALL0(clone)
|
||||
PTREGSCALL0(vfork)
|
||||
PTREGSCALL0(execve)
|
||||
PTREGSCALL0(sigaltstack)
|
||||
PTREGSCALL0(sigreturn)
|
||||
PTREGSCALL0(rt_sigreturn)
|
||||
PTREGSCALL0(vm86)
|
||||
PTREGSCALL0(vm86old)
|
||||
|
||||
.macro FIXUP_ESPFIX_STACK
|
||||
/*
|
||||
|
|
Loading…
Reference in a new issue