xref: /minix3/minix/lib/libsys/sys_fork.c (revision 433d6423c39e34ec4b79c950597bb2d236f886be)
1 #include "syslib.h"
2 
sys_fork(parent,child,child_endpoint,flags,msgaddr)3 int sys_fork(parent, child, child_endpoint, flags, msgaddr)
4 endpoint_t parent;		/* process doing the fork */
5 endpoint_t child;		/* which proc has been created by the fork */
6 endpoint_t *child_endpoint;
7 u32_t flags;
8 vir_bytes *msgaddr;
9 {
10 /* A process has forked.  Tell the kernel. */
11 
12   message m;
13   int r;
14 
15   m.m_lsys_krn_sys_fork.endpt = parent;
16   m.m_lsys_krn_sys_fork.slot = child;
17   m.m_lsys_krn_sys_fork.flags = flags;
18   r = _kernel_call(SYS_FORK, &m);
19   *child_endpoint = m.m_krn_lsys_sys_fork.endpt;
20   *msgaddr = m.m_krn_lsys_sys_fork.msgaddr;
21   return r;
22 }
23