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

1995/0105/pc/trap.c (diff list | history)

1994/1029/sys/src/9/pc/trap.c:466,4741995/0105/sys/src/9/pc/trap.c:466,474 (short | long | prev | next)
1992/0609    
	 */ 
1991/0801    
	ur->ax = ret; 
1992/0609    
 
1994/0715    
	splhi(); 
1993/0915    
	if(up->scallnr == NOTED) 
1991/0720    
		noted(ur, *(ulong*)(sp+BY2WD)); 
1995/0105    
	splhi(); 
1991/1114    
 
1993/0915    
	if(up->scallnr!=RFORK && (up->procctl || up->nnote)) 
1991/0720    
		notify(ur); 
1994/1029/sys/src/9/pc/trap.c:556,5621995/0105/sys/src/9/pc/trap.c:556,562
1994/0513    
	if(!up->notified) { 
1993/0915    
		qunlock(&up->debug); 
1994/0513    
		pprint("call to noted() when not notified\n"); 
1991/0720    
		return; 
1995/0105    
		pexit("Suicide", 0); 
1991/0720    
	} 
1993/0915    
	up->notified = 0; 
1994/0513    
 
1994/1029/sys/src/9/pc/trap.c:571,5851995/0105/sys/src/9/pc/trap.c:571,585
1994/0513    
 
1993/0915    
	nur->flags = (up->svflags&0xffffff00) | (nur->flags&0xff); 
1992/0609    
	memmove(ur, nur, sizeof(Ureg)); 
1995/0105    
	qunlock(&up->debug); 
 
1991/0720    
	switch(arg0){ 
	case NCONT: 
1992/0616    
		if(!okaddr(nur->pc, 1, 0) || !okaddr(nur->usp, BY2WD, 0)){ 
1991/0814    
			pprint("suicide: trap in noted\n"); 
1993/0915    
			qunlock(&up->debug); 
1994/0513    
			pexit("Suicide", 0); 
1991/0814    
		} 
1993/0915    
		qunlock(&up->debug); 
1991/0722    
		return; 
1995/0105    
		break; 
1991/0720    
 
	default: 
		pprint("unknown noted arg 0x%lux\n", arg0); 
1994/1029/sys/src/9/pc/trap.c:589,5951995/0105/sys/src/9/pc/trap.c:589,594
1991/0720    
	case NDFLT: 
1993/0915    
		if(up->lastnote.flag == NDebug) 
			pprint("suicide: %s\n", up->lastnote.msg); 
		qunlock(&up->debug); 
		pexit(up->lastnote.msg, up->lastnote.flag!=NDebug); 
1991/0720    
	} 
1991/1112    
} 


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