2 * This file contains various random system calls that
3 * have a non-standard calling sequence on the Linux/i386
7 #include <linux/errno.h>
8 #include <linux/sched.h>
11 #include <linux/smp.h>
12 #include <linux/sem.h>
13 #include <linux/msg.h>
14 #include <linux/shm.h>
15 #include <linux/stat.h>
16 #include <linux/syscalls.h>
17 #include <linux/mman.h>
18 #include <linux/file.h>
19 #include <linux/utsname.h>
20 #include <linux/ipc.h>
22 #include <linux/uaccess.h>
23 #include <linux/unistd.h>
25 #include <asm/syscalls.h>
28 * Do a system call from kernel instead of calling sys_execve so we
29 * end up with proper pt_regs.
31 int kernel_execve(const char *filename
,
32 const char *const argv
[],
33 const char *const envp
[])
36 asm volatile ("int $0x80"
38 : "0" (__NR_execve
), "b" (filename
), "c" (argv
), "d" (envp
) : "memory");