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

1990/1227/ss/trap.c (diff list | history)

1990/1226/sys/src/9/ss/trap.c:35,421990/1227/sys/src/9/ss/trap.c:35,40 (short | long | prev | next)
1990/1223    
{ 
	static char buf[32];	/* BUG: not reentrant! */ 
 
1990/1226    
	tbr &= 0xFFF; 
	tbr >>= 4; 
	if(tbr < sizeof trapname/sizeof(char*)) 
		return trapname[tbr]; 
	if(tbr == 36) 
1990/1226/sys/src/9/ss/trap.c:57,751990/1227/sys/src/9/ss/trap.c:55,80
1990/1223    
{ 
	int user; 
	char buf[64]; 
1990/1227    
	ulong tbr; 
1990/1223    
 
1990/1227    
	tbr = (ur->tbr&0xFFF)>>4; 
	if(tbr == 30){				/* interrupt 14: counter 1 */ 
		clock(ur); 
		return; 
	} 
 
1990/1226    
	user = !(ur->psr&PSRPSUPER); 
 
/*	if(u) 
1990/1223    
		u->p->pc = ur->pc;		/* BUG */ 
	if(user){ 
1990/1226    
		print("user trap: %s pc=0x%lux\n", excname(ur->tbr), ur->pc); 
1990/1227    
		print("user trap: %s pc=0x%lux\n", excname(tbr), ur->pc); 
1990/1226    
dumpregs(ur); 
for(;;); 
		sprint(buf, "sys: trap: pc=0x%lux %s", ur->pc, excname(ur->tbr)); 
1990/1227    
		sprint(buf, "sys: trap: pc=0x%lux %s", ur->pc, excname(tbr)); 
1990/1223    
		postnote(u->p, 1, buf, NDebug); 
	}else{ 
1990/1226    
		print("kernel trap: %s pc=0x%lux\n", excname(ur->tbr), ur->pc); 
1990/1227    
		print("kernel trap: %s pc=0x%lux\n", excname(tbr), ur->pc); 
1990/1223    
		dumpregs(ur); 
1990/1226    
for(;;); 
1990/1223    
		exit(); 


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