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;
 | 
						|
}
 |