Go to the documentation of this file.
6 #ifndef __SYSDEP_STUB_H
7 #define __SYSDEP_STUB_H
9 #include <asm/ptrace.h>
11 #define STUB_SYSCALL_RET EAX
12 #define STUB_MMAP_NR __NR_mmap2
13 #define MMAP_OFFSET(o) ((o) >> UM_KERN_PAGE_SHIFT)
15 static inline long stub_syscall0(
long syscall)
19 __asm__ volatile (
"int $0x80" :
"=a" (
ret) :
"0" (syscall));
24 static inline long stub_syscall1(
long syscall,
long arg1)
28 __asm__ volatile (
"int $0x80" :
"=a" (
ret) :
"0" (syscall),
"b" (
arg1));
33 static inline long stub_syscall2(
long syscall,
long arg1,
long arg2)
37 __asm__ volatile (
"int $0x80" :
"=a" (
ret) :
"0" (syscall),
"b" (
arg1),
43 static inline long stub_syscall3(
long syscall,
long arg1,
long arg2,
long arg3)
47 __asm__ volatile (
"int $0x80" :
"=a" (
ret) :
"0" (syscall),
"b" (
arg1),
48 "c" (arg2),
"d" (
arg3));
53 static inline long stub_syscall4(
long syscall,
long arg1,
long arg2,
long arg3,
58 __asm__ volatile (
"int $0x80" :
"=a" (
ret) :
"0" (syscall),
"b" (
arg1),
59 "c" (arg2),
"d" (
arg3),
"S" (arg4));
64 static inline long stub_syscall5(
long syscall,
long arg1,
long arg2,
long arg3,
69 __asm__ volatile (
"int $0x80" :
"=a" (
ret) :
"0" (syscall),
"b" (
arg1),
70 "c" (arg2),
"d" (
arg3),
"S" (arg4),
"D" (
arg5));
75 static inline void trap_myself(
void)
80 static inline void remap_stack(
int fd,
unsigned long offset)
82 __asm__ volatile (
"movl %%eax,%%ebp ; movl %0,%%eax ; int $0x80 ;"
83 "movl %7, %%ebx ; movl %%eax, (%%ebx)"
85 "c" (UM_KERN_PAGE_SIZE),