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

1990/0801/port/stream.c (diff list | history)

1990/0707/sys/src/9/port/stream.c:6,111990/0801/sys/src/9/port/stream.c:6,12 (short | long | prev | next)
1990/0227    
#include	"io.h" 
#include	"errno.h" 
#include	"devtab.h" 
1990/0801    
#include	"fcall.h" 
1990/0227    
 
1990/0321    
enum { 
	Nclass=4,	/* number of block classes */ 
1990/0707/sys/src/9/port/stream.c:72,781990/0801/sys/src/9/port/stream.c:73,79
1990/0707    
 
	lock(q); 
	for(bp = q->first; bp; bp = bp->next){ 
		print("%c%d%c", c, bp->wptr-bp->rptr, (bp->flags&S_DELIM)?'D':' '); 
1990/0801    
		print("%c%d%c", c, bp->wptr-bp->rptr, (bp->flags&S_DELIM)); 
1990/0707    
		for(cp = bp->rptr; cp<bp->wptr && cp<bp->rptr+10; cp++) 
			print(" %uo", *cp); 
		print("\n"); 
1990/0707/sys/src/9/port/stream.c:1155,11581990/0801/sys/src/9/port/stream.c:1156,1189
1990/0312    
			lp++; 
	} 
	return i; 
1990/0801    
} 
 
/* 
 *  stat a stream.  the length is the number of bytes up to the 
 *  first delimiter. 
 */ 
void 
streamstat(Chan *c, char *db, char *name) 
{ 
	Dir dir; 
	Stream *s; 
	Queue *q; 
	Block *bp; 
	long n; 
 
	s = c->stream; 
	if(s == 0) 
		panic("streamstat"); 
 
	q = RD(s->procq); 
	lock(q); 
	for(n=0, bp=q->first; bp; bp = bp->next){ 
		n += BLEN(bp); 
		if(bp->flags&S_DELIM) 
			break; 
	} 
	unlock(q); 
 
	devdir(c, c->qid, name, n, 0, &dir); 
	convD2M(&dir, db); 
1990/0227    
} 


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