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

1992/0616/pc/trap.c (diff list | history)

1992/0609/sys/src/9/pc/trap.c:404,4171992/0616/sys/src/9/pc/trap.c:404,415 (short | long | prev | next)
1991/0720    
		u->svflags = ur->flags; 
		sp = ur->usp; 
		sp -= sizeof(Ureg); 
1991/0722    
		if(waserror()){ 
			pprint("suicide: trap in notify\n"); 
1992/0616    
		if(!okaddr((ulong)u->notify, 1, 0) 
		|| !okaddr(sp-ERRLEN-3*BY2WD, sizeof(Ureg)+ERRLEN-3*BY2WD, 0)){ 
			pprint("suicide: bad address in notify\n"); 
1991/1216    
			qunlock(&u->p->debug); 
1991/0722    
			pexit("Suicide", 0); 
		} 
		validaddr((ulong)u->notify, 1, 0); 
		validaddr(sp-ERRLEN-3*BY2WD, sizeof(Ureg)+ERRLEN-3*BY2WD, 0); 
		poperror(); 
1991/0720    
		u->ureg = (void*)sp; 
		memmove((Ureg*)sp, ur, sizeof(Ureg)); 
		sp -= ERRLEN; 
1992/0609/sys/src/9/pc/trap.c:459,4721992/0616/sys/src/9/pc/trap.c:457,467
1992/0609    
	memmove(ur, nur, sizeof(Ureg)); 
1991/0720    
	switch(arg0){ 
	case NCONT: 
1991/0814    
		if(waserror()){ 
1992/0616    
		if(!okaddr(nur->pc, 1, 0) || !okaddr(nur->usp, BY2WD, 0)){ 
1991/0814    
			pprint("suicide: trap in noted\n"); 
1991/1216    
			qunlock(&u->p->debug); 
1991/0814    
			goto Die; 
		} 
1992/0609    
		validaddr(nur->pc, 1, 0);	/* check for valid pc & usp */ 
1991/0814    
		validaddr(nur->usp, BY2WD, 0); 
		poperror(); 
1991/1216    
		qunlock(&u->p->debug); 
1991/0722    
		return; 
1991/0720    
 


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