/* * This file contains various random system calls that * have a non-standard calling sequence on the Linux/i386 * platform. */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* * Do a system call from kernel instead of calling sys_execve so we * end up with proper pt_regs. */ int kernel_execve(const char *filename, const char *const argv[], const char *const envp[]) { long __res; asm volatile ("int $0x80" : "=a" (__res) : "0" (__NR_execve), "b" (filename), "c" (argv), "d" (envp) : "memory"); return __res; }