Cleanup POSIX real-time so the kernel compiles without the P1003_1B
[dragonfly.git] / sys / kern / kern_fork.c
index 06c3c35..841a377 100644 (file)
@@ -37,7 +37,7 @@
  *
  *     @(#)kern_fork.c 8.6 (Berkeley) 4/8/94
  * $FreeBSD: src/sys/kern/kern_fork.c,v 1.72.2.13 2003/06/06 20:21:32 tegge Exp $
- * $DragonFly: src/sys/kern/kern_fork.c,v 1.13 2003/07/24 01:41:25 dillon Exp $
+ * $DragonFly: src/sys/kern/kern_fork.c,v 1.16 2003/11/05 23:26:20 dillon Exp $
  */
 
 #include "opt_ktrace.h"
@@ -94,8 +94,8 @@ fork(struct fork_args *uap)
        error = fork1(p, RFFDG | RFPROC, &p2);
        if (error == 0) {
                start_forked_proc(p, p2);
-               p->p_retval[0] = p2->p_pid;
-               p->p_retval[1] = 0;
+               uap->sysmsg_fds[0] = p2->p_pid;
+               uap->sysmsg_fds[1] = 0;
        }
        return error;
 }
@@ -111,8 +111,8 @@ vfork(struct vfork_args *uap)
        error = fork1(p, RFFDG | RFPROC | RFPPWAIT | RFMEM, &p2);
        if (error == 0) {
                start_forked_proc(p, p2);
-               p->p_retval[0] = p2->p_pid;
-               p->p_retval[1] = 0;
+               uap->sysmsg_fds[0] = p2->p_pid;
+               uap->sysmsg_fds[1] = 0;
        }
        return error;
 }
@@ -127,8 +127,8 @@ rfork(struct rfork_args *uap)
        error = fork1(p, uap->flags, &p2);
        if (error == 0) {
                start_forked_proc(p, p2);
-               p->p_retval[0] = p2 ? p2->p_pid : 0;
-               p->p_retval[1] = 0;
+               uap->sysmsg_fds[0] = p2 ? p2->p_pid : 0;
+               uap->sysmsg_fds[1] = 0;
        }
        return error;
 }
@@ -429,8 +429,7 @@ again:
                         * Shared file descriptor table, and
                         * different process leaders 
                         */
-                       fdtol = filedesc_to_leader_alloc(p1->p_fdtol,
-                                                        p2);
+                       fdtol = filedesc_to_leader_alloc(p1->p_fdtol, p2);
                }
        }
        p2->p_fdtol = fdtol;
@@ -474,6 +473,7 @@ again:
        p2->p_pptr = pptr;
        LIST_INSERT_HEAD(&pptr->p_children, p2, p_sibling);
        LIST_INIT(&p2->p_children);
+       varsymset_init(&p2->p_varsymset, &p1->p_varsymset);
 
 #ifdef KTRACE
        /*