23 lines
586 B
C
23 lines
586 B
C
|
#include "syslib.h"
|
||
|
|
||
|
int sys_fork(parent, child, child_endpoint, flags, msgaddr)
|
||
|
endpoint_t parent; /* process doing the fork */
|
||
|
endpoint_t child; /* which proc has been created by the fork */
|
||
|
endpoint_t *child_endpoint;
|
||
|
u32_t flags;
|
||
|
vir_bytes *msgaddr;
|
||
|
{
|
||
|
/* A process has forked. Tell the kernel. */
|
||
|
|
||
|
message m;
|
||
|
int r;
|
||
|
|
||
|
m.m_lsys_krn_sys_fork.endpt = parent;
|
||
|
m.m_lsys_krn_sys_fork.slot = child;
|
||
|
m.m_lsys_krn_sys_fork.flags = flags;
|
||
|
r = _kernel_call(SYS_FORK, &m);
|
||
|
*child_endpoint = m.m_krn_lsys_sys_fork.endpt;
|
||
|
*msgaddr = m.m_krn_lsys_sys_fork.msgaddr;
|
||
|
return r;
|
||
|
}
|