#include "kern.h"
#include "irq_user.h"
#include "tlb.h"
-#include "2_5compat.h"
#include "os.h"
-#include "time_user.h"
#include "choose-mode.h"
#include "mode_kern.h"
void flush_thread(void)
{
+ arch_flush_thread(¤t->thread.arch);
CHOOSE_MODE(flush_thread_tt(), flush_thread_skas());
}
CHOOSE_MODE_PROC(start_thread_tt, start_thread_skas, regs, eip, esp);
}
-static int execve1(char *file, char **argv, char **env)
+static long execve1(char *file, char __user * __user *argv,
+ char __user *__user *env)
{
- int error;
+ long error;
+#ifdef CONFIG_TTY_LOG
+ log_exec(argv, current->tty);
+#endif
error = do_execve(file, argv, env, ¤t->thread.regs);
if (error == 0){
+ task_lock(current);
current->ptrace &= ~PT_DTRACE;
+ task_unlock(current);
set_cmdline(current_cmd());
}
return(error);
}
-int um_execve(char *file, char **argv, char **env)
+long um_execve(char *file, char __user *__user *argv, char __user *__user *env)
{
- int err;
+ long err;
err = execve1(file, argv, env);
- if(!err)
+ if(!err)
do_longjmp(current->thread.exec_buf, 1);
return(err);
}
-int sys_execve(char *file, char **argv, char **env)
+long sys_execve(char __user *file, char __user *__user *argv,
+ char __user *__user *env)
{
- int error;
+ long error;
char *filename;
lock_kernel();
- filename = getname((char *) file);
+ filename = getname(file);
error = PTR_ERR(filename);
if (IS_ERR(filename)) goto out;
error = execve1(filename, argv, env);
unlock_kernel();
return(error);
}
-
-/*
- * Overrides for Emacs so that we follow Linus's tabbing style.
- * Emacs will notice this stuff at the end of the file and automatically
- * adjust the settings for this buffer only. This must remain at the end
- * of the file.
- * ---------------------------------------------------------------------------
- * Local variables:
- * c-file-style: "linux"
- * End:
- */