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

1991/0814/ss/trap.c (diff list | history)

1991/0731/sys/src/9/ss/trap.c:272,2921991/0814/sys/src/9/ss/trap.c:272,300 (short | long | prev | next)
1991/0717    
	Ureg *nur; 
 
	nur = u->ureg; 
	validaddr(nur->pc, 1, 0); 
	validaddr(nur->usp, BY2WD, 0); 
	if(nur->psr!=u->svpsr){ 
		pprint("bad noted ureg psr %lux\n", nur->psr); 
1991/0814    
    Die: 
1991/0717    
		pexit("Suicide", 0); 
	} 
1990/1223    
	lock(&u->p->debug); 
	if(!u->notified){ 
		unlock(&u->p->debug); 
		return; 
1991/0814    
		pprint("call to noted() when not notified\n"); 
		goto Die; 
1990/1223    
	} 
	u->notified = 0; 
1991/0318    
	memmove(*urp, u->ureg, sizeof(Ureg)); 
1991/0717    
	switch(arg0){ 
	case NCONT: 
1991/0814    
		if(waserror()){ 
			pprint("suicide: trap in noted\n"); 
			unlock(&u->p->debug); 
			goto Die; 
		} 
		validaddr(nur->pc, 1, 0); 
		validaddr(nur->usp, BY2WD, 0); 
		poperror(); 
1991/0717    
		splhi(); 
		unlock(&u->p->debug); 
		rfnote(urp); 


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