|
@@ -3,37 +3,24 @@
|
|
|
* Licensed under the GPL
|
|
|
*/
|
|
|
|
|
|
-#include "linux/sched.h"
|
|
|
-#include "linux/shm.h"
|
|
|
-#include "linux/ipc.h"
|
|
|
-#include "linux/syscalls.h"
|
|
|
-#include "asm/mman.h"
|
|
|
-#include "asm/uaccess.h"
|
|
|
-#include "asm/unistd.h"
|
|
|
+#include <linux/syscalls.h>
|
|
|
+#include <sysdep/syscalls.h>
|
|
|
|
|
|
/*
|
|
|
* The prototype on i386 is:
|
|
|
*
|
|
|
- * int clone(int flags, void * child_stack, int * parent_tidptr, struct user_desc * newtls, int * child_tidptr)
|
|
|
+ * int clone(int flags, void * child_stack, int * parent_tidptr, struct user_desc * newtls
|
|
|
*
|
|
|
* and the "newtls" arg. on i386 is read by copy_thread directly from the
|
|
|
* register saved on the stack.
|
|
|
*/
|
|
|
-long sys_clone(unsigned long clone_flags, unsigned long newsp,
|
|
|
- int __user *parent_tid, void *newtls, int __user *child_tid)
|
|
|
+long i386_clone(unsigned long clone_flags, unsigned long newsp,
|
|
|
+ int __user *parent_tid, void *newtls, int __user *child_tid)
|
|
|
{
|
|
|
- long ret;
|
|
|
-
|
|
|
- if (!newsp)
|
|
|
- newsp = UPT_SP(¤t->thread.regs.regs);
|
|
|
-
|
|
|
- current->thread.forking = 1;
|
|
|
- ret = do_fork(clone_flags, newsp, ¤t->thread.regs, 0, parent_tid,
|
|
|
- child_tid);
|
|
|
- current->thread.forking = 0;
|
|
|
- return ret;
|
|
|
+ return sys_clone(clone_flags, newsp, parent_tid, child_tid);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
long sys_sigaction(int sig, const struct old_sigaction __user *act,
|
|
|
struct old_sigaction __user *oact)
|
|
|
{
|