plan 9 kernel history: overview | file list | diff list

1991/0514/port/sysproc.c (diff list | history)

1991/0513/sys/src/9/port/sysproc.c:460,4651991/0514/sys/src/9/port/sysproc.c:460,466 (short | long | prev | next)
1990/0227    
long 
sysforkpgrp(ulong *arg) 
{ 
1991/0514    
	int mask; 
1990/0227    
	Pgrp *pg; 
 
	pg = newpgrp(); 
1991/0513/sys/src/9/port/sysproc.c:467,4761991/0514/sys/src/9/port/sysproc.c:468,492
1990/0227    
		closepgrp(pg); 
		nexterror(); 
	} 
	if(arg[0] == 0) 
1991/0514    
 
	mask = arg[0]; 
	if(mask == FPall) 
		mask = FPnote|FPenv|FPnamespc; 
 
	memmove(pg->user, u->p->pgrp->user, NAMELEN); 
 
	if(mask & FPnamespc) 
1990/0227    
		pgrpcpy(pg, u->p->pgrp); 
1990/1009    
	else 
1991/0318    
		memmove(pg->user, u->p->pgrp->user, NAMELEN); 
1991/0514    
 
	if(mask & FPenv) 
		envcpy(pg, u->p->pgrp); 
 
	if((mask & FPnote) == 0) { 
		u->nnote = 0; 
		u->notified = 0; 
		memset(u->note, 0, sizeof(u->note)); 
	} 
 
1990/0227    
	closepgrp(u->p->pgrp); 
	u->p->pgrp = pg; 
	return pg->pgrpid; 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)