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

1990/0725/gnot/devincon.c (diff list | history)

1990/0629/sys/src/9/gnot/devincon.c:89,951990/0725/sys/src/9/gnot/devincon.c:89,95 (short | long | prev | next)
1990/0312    
enum { 
	Selecting, 
	Selected, 
	Dead, 
1990/0725    
	Notliving, 
1990/0312    
}; 
 
/* 
1990/0629/sys/src/9/gnot/devincon.c:177,1831990/0725/sys/src/9/gnot/devincon.c:177,183
1990/0312    
	/* 
	 *  get us to a known state 
	 */ 
	ip->state = Dead; 
1990/0725    
	ip->state = Notliving; 
1990/0312    
	dev->cmd = INCON_STOP; 
 
	/* 
1990/0629/sys/src/9/gnot/devincon.c:271,2771990/0725/sys/src/9/gnot/devincon.c:271,277
1990/0331    
/*	inconset(&incon[0], 3, 15); /**/ 
1990/0312    
	for(i=1; i<Nincon; i++){ 
		incon[i].dev = INCON+i; 
		incon[i].state = Dead; 
1990/0725    
		incon[i].state = Notliving; 
1990/0312    
		incon[i].dev->cmd = INCON_STOP; 
1990/0315    
		incon[i].ri = incon[i].wi = 0; 
1990/0312    
	} 
1990/0629/sys/src/9/gnot/devincon.c:400,4061990/0725/sys/src/9/gnot/devincon.c:400,406
1990/0312    
	char name[32]; 
 
	ip = &incon[s->dev]; 
	sprint(name, "**incon%d**", s->dev); 
1990/0725    
	sprint(name, "incon%d", s->dev); 
1990/0312    
	q->ptr = q->other->ptr = ip; 
	ip->rq = q; 
	kproc(name, inconkproc, ip); 
1990/0629/sys/src/9/gnot/devincon.c:410,4161990/0725/sys/src/9/gnot/devincon.c:410,416
1990/0312    
 *  kill off the kernel process 
 */ 
static int 
kDead(void *arg) 
1990/0725    
kNotliving(void *arg) 
1990/0312    
{ 
	Incon *ip; 
 
1990/0629/sys/src/9/gnot/devincon.c:427,4331990/0725/sys/src/9/gnot/devincon.c:427,433
1990/0312    
	ip->rq = 0; 
	qunlock(ip); 
	wakeup(&ip->kr); 
	sleep(&ip->r, kDead, ip); 
1990/0725    
	sleep(&ip->r, kNotliving, ip); 
1990/0312    
} 
 
/* 
1990/0629/sys/src/9/gnot/devincon.c:500,5061990/0725/sys/src/9/gnot/devincon.c:500,506
1990/0312    
	/* 
	 *  make sure there's an incon out there 
	 */ 
	if(!(dev->status&INCON_ALIVE) || ip->state==Dead){ 
1990/0725    
	if(!(dev->status&INCON_ALIVE) || ip->state==Notliving){ 
1990/0312    
		inconrestart(ip); 
		freemsg(q, bp); 
		qunlock(&ip->xmit); 
1990/0629/sys/src/9/gnot/devincon.c:812,8181990/0725/sys/src/9/gnot/devincon.c:812,818
1990/0312    
			ip->dev->cmd = INCON_STOP; 
			break; 
		} 
		ip->state = Dead; 
1990/0725    
		ip->state = Notliving; 
1990/0312    
	} 
1990/0629    
} 
 


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