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

1991/0718/pc/fault386.c (diff list | history)

1991/0716/sys/src/9/pc/fault386.c:7,191991/0718/sys/src/9/pc/fault386.c:7,38 (short | long | prev | next)
1991/0711    
#include	"io.h" 
1991/0710    
 
void 
faultinit(void) 
1991/0718    
fault386(Ureg *ur) 
1991/0710    
{ 
1991/0716    
	setvec(Faultvec, fault386); 
1991/0718    
	ulong addr; 
	int read; 
	int user; 
 
print("fault386\n"); 
dumpregs(ur); 
for(;;); 
	addr = getcr2(); 
	read = !(ur->ecode & 2); 
	user = (ur->ecode & 4); 
	if(fault(addr, read) < 0){ 
		if(user){ 
			pprint("user %s error addr=0x%lux\n", read? "read" : "write", addr); 
			pprint("status=0x%lux pc=0x%lux sp=0x%lux\n", ur->flags, ur->pc, ur->usp); 
			pexit("Suicide", 0); 
		} 
		u->p->state = MMUing; 
		dumpregs(ur); 
		panic("fault: 0x%lux", addr); 
	} 
1991/0710    
} 
 
void 
fault386(Ureg *ur) 
1991/0718    
faultinit(void) 
1991/0710    
{ 
	panic("fault"); 
1991/0718    
	setvec(Faultvec, fault386); 
1991/0710    
} 


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