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

1991/1120/port/devdk.c (diff list | history)

1991/1116/sys/src/9/port/devdk.c:110,1151991/1120/sys/src/9/port/devdk.c:110,116 (short | long | prev | next)
1991/1116    
	Chan	*csc; 
 
1990/1101    
	Lock; 
1991/1120    
	int	ref; 
1990/1101    
	int	opened; 
1991/1116    
 
1990/1018    
	char	name[64];	/* dk name */ 
1991/1116/sys/src/9/port/devdk.c:240,2461991/1120/sys/src/9/port/devdk.c:241,247
1990/1101    
			unlock(&dklock); 
			return dp; 
1990/0312    
		} 
1990/1101    
		if(dp->name[0] == 0) 
1991/1120    
		if(dp->name[0] == 0 && dp->ref == 0) 
1990/1101    
			freep = dp; 
1990/0312    
	} 
1990/1101    
	if(freep == 0){ 
1991/1116/sys/src/9/port/devdk.c:334,3391991/1120/sys/src/9/port/devdk.c:335,341
1990/1101    
	dp = WR(q)->ptr; 
	if(dp == 0) 
		return; 
1991/1120    
	dp->name[0] = 0; 
1990/1101    
 
	/* 
	 *  disallow new dkstopens() on this line. 
1991/1116/sys/src/9/port/devdk.c:454,4591991/1120/sys/src/9/port/devdk.c:456,462
1991/1107    
	q->other->ptr = q->ptr = lp = dp->linep[s->id]; 
1990/0312    
	lp->dp = dp; 
1990/1101    
	lock(dp); 
1991/1120    
	dp->ref++; 
1990/1101    
	if(dp->opened==0 || streamenter(dp->s)<0){ 
		unlock(dp); 
1990/11211    
		error(Ehungup); 
1991/1116/sys/src/9/port/devdk.c:545,5501991/1120/sys/src/9/port/devdk.c:548,559
1991/1116    
	if(lp->lineno == dp->ncsc) 
		dp->csc = 0; 
	netdisown(&dp->net, lp->lineno); 
1991/1120    
 
	lock(dp); 
	dp->ref--; 
	if(dp->ref == 0) 
		freeb(dp->alloc); 
	unlock(dp); 
1990/0312    
} 
 
/* 
1991/1116/sys/src/9/port/devdk.c:1625,16311991/1120/sys/src/9/port/devdk.c:1634,1639
1990/1101    
		} 
		if(c) 
			close(c); 
1991/1107    
		freeb(dp->alloc); 
1990/1101    
		return; 
	} 
 


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