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

1992/1221/port/devip.c (diff list | history)

1992/12051/sys/src/9/port/devip.c:604,6091992/1221/sys/src/9/port/devip.c:604,614 (short | long | prev | next)
1991/0516    
	PUTNEXT(q, bp); 
1991/0424    
} 
 
1992/1221    
tcproominq(void *a) 
{ 
	return !((Tcpctl *)a)->sndfull; 
} 
 
1991/0424    
void 
tcpstoput(Queue *q, Block *bp) 
{ 
1992/12051/sys/src/9/port/devip.c:638,6431992/1221/sys/src/9/port/devip.c:643,662
1991/12171    
	case Established: 
	case Close_wait: 
1992/0903    
		/* 
1992/1221    
		 * Process flow control 
	 	 */ 
		if(tcb->sndfull){ 
			qlock(&tcb->sndrlock); 
			if(waserror()) { 
				qunlock(&tcb->sndrlock); 
				nexterror(); 
			} 
			sleep(&tcb->sndr, tcproominq, tcb); 
			poperror(); 
			qunlock(&tcb->sndrlock); 
		} 
 
		/* 
1992/0903    
		 * Push data 
		 */ 
1991/0424    
		qlock(tcb); 
1992/12051/sys/src/9/port/devip.c:646,6511992/1221/sys/src/9/port/devip.c:665,672
1992/0322    
			nexterror(); 
		} 
1991/1126    
		tcb->sndcnt += blen(bp); 
1992/1221    
		if(tcb->sndcnt > Streamhi) 
			tcb->sndfull = 1; 
1991/1126    
		if(tcb->sndq == 0) 
			tcb->sndq = bp; 
		else { 


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