int um_execve(char *file, char **argv, char **env) { int err; err = execve1(file, argv, env); if(!err) do_longjmp(current->thread.exec_buf, 1); return(err); }
int netbsd32_execve(struct lwp *l, const struct netbsd32_execve_args *uap, register_t *retval) { /* { syscallarg(const netbsd32_charp) path; syscallarg(netbsd32_charpp) argp; syscallarg(netbsd32_charpp) envp; } */ const char *path = SCARG_P32(uap, path); return execve1(l, path, SCARG_P32(uap, argp), SCARG_P32(uap, envp), netbsd32_execve_fetch_element); }
int sys_execve(char *file, char **argv, char **env) { int error; char *filename; lock_kernel(); filename = getname((char *) file); error = PTR_ERR(filename); if (IS_ERR(filename)) goto out; error = execve1(filename, argv, env); putname(filename); out: unlock_kernel(); return(error); }