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

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

1991/1105/sys/src/9/ss/trap.c:133,1461991/1108/sys/src/9/ss/trap.c:133,150 (short | long | prev | next)
1991/01151    
			dumpregs(ur); 
			for(;;); 
		} 
		if(user && u->nnote) 
			notify(ur); 
1990/1223    
	} 
1991/01151    
    Return: 
	if(user && u && u->p->fpstate == FPinactive) { 
		restfpregs(&u->fpsave); 
		u->p->fpstate = FPactive; 
		ur->psr |= PSREF; 
1991/1108    
	if(user) { 
		if(u->p->procctl) 
			procctl(u->p); 
		if(u->nnote) 
			notify(ur); 
		if(u->p->fpstate == FPinactive) { 
			restfpregs(&u->fpsave); 
			u->p->fpstate = FPactive; 
			ur->psr |= PSREF; 
		} 
1991/01151    
	} 
1990/1223    
} 
 
1991/1105/sys/src/9/ss/trap.c:176,1831991/1108/sys/src/9/ss/trap.c:180,185
1990/1223    
	ulong l, v; 
1991/0711    
	int i; 
1990/1223    
	extern ulong etext; 
1991/0711    
print("no dumpstack\n"); 
return; 
1990/1223    
 
1991/0711    
	if(u){ 
		i = 0; 
1991/1105/sys/src/9/ss/trap.c:342,3471991/1108/sys/src/9/ss/trap.c:344,353
1991/01151    
		ur->psr &= ~PSREF; 
1990/1223    
	} 
	spllo(); 
1991/1108    
 
	if(u->p->procctl) 
		procctl(u->p); 
 
1990/1226    
	r7 = ur->r7; 
1990/1223    
	sp = ur->usp; 
 
1991/1105/sys/src/9/ss/trap.c:368,3791991/1108/sys/src/9/ss/trap.c:374,383
1990/1223    
	} 
1990/1226    
	ur->pc += 4; 
	ur->npc = ur->pc+4; 
1991/0614    
	if(u->nerrlab){ 
1991/0709    
		print("bad error stack [%d]: %d extra\n", r7, u->nerrlab); 
1991/0614    
		for(i = 0; i < NERR; i++) 
			print("sp=%lux pc=%lux\n", u->errlab[i].sp, u->errlab[i].pc); 
1991/0709    
		panic("error stack"); 
1991/0614    
	} 
1991/1108    
	u->nerrlab = 0; 
	if(u->p->procctl) 
		procctl(u->p); 
 
1990/1223    
	u->p->insyscall = 0; 
1991/0926    
	u->p->psstate = 0; 
1990/1226    
	if(r7 == NOTED)	/* ugly hack */ 


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