#include #include #include /* Execute a binary with the specified arguments and environment */ int execve(const char *path, char *argv[], char *envp[]) { struct { const char *path; char **argv, **envp; } args; args.path = path; args.argv = argv; args.envp = envp; int ret; asm volatile("int $0x80" : "=a" (ret) : "0" (SYSCALL_EXECVE), "c" (3), "S" (&args)); if (ret >= 0) return ret; errno = -ret; return -1; } /* Execute a binary with the specified arguments */ int execv(const char *path, char *argv[]) { return execve(path, argv, NULL); /* FIXME: environment */ }