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

1993/1115/pc/trap.c (diff list | history)

1993/1114/sys/src/9/pc/trap.c:136,1441993/1115/sys/src/9/pc/trap.c:136,144 (short | long | prev | next)
1993/1114    
	sethvec(11, intr11, SEGIG, 0); 
	sethvec(12, intr12, SEGIG, 0); 
	sethvec(13, intr13, SEGIG, 0); 
1992/0806    
	sethvec(14, intr14, SEGIG, 0);	/* page fault, interrupts off */ 
1993/1115    
	sethvec(14, intr14, SEGIG, 0);	/* page fault */ 
1993/1114    
	sethvec(15, intr15, SEGIG, 0); 
1992/0806    
	sethvec(16, intr16, SEGIG, 0);	/* math coprocessor, interrupts off */ 
1993/1115    
	sethvec(16, intr16, SEGIG, 0);	/* math coprocessor */ 
1991/0731    
 
	/* 
1991/0904    
	 *  device interrupts 
1993/1114/sys/src/9/pc/trap.c:223,2291993/1115/sys/src/9/pc/trap.c:223,231
1993/0915    
 
 
1991/0614    
/* 
1991/0703    
 *  All traps 
1993/1115    
 *  All trapscome here.  It is slower to have all traps call trap() rather than 
 *  directly vectoring the handler.  However, this avoids a lot of code duplication 
 *  and possible bugs. 
1991/0614    
 */ 
1991/0710    
void 
1991/0703    
trap(Ureg *ur) 
1993/1114/sys/src/9/pc/trap.c:239,2511993/1115/sys/src/9/pc/trap.c:241,246
1991/1112    
	if(user) 
1993/0915    
		up->dbgreg = ur; 
1991/1112    
 
1993/1113    
ur->cs &= 0xffff; 
ur->ds &= 0xffff; 
ur->es &= 0xffff; 
ur->fs &= 0xffff; 
ur->gs &= 0xffff; 
if(user) ur->ss &= 0xffff; 
                 
1991/0709    
	/* 
	 *  tell the 8259 that we're done with the 
1991/0801    
	 *  highest level interrupt (interrupts are still 
1993/1114/sys/src/9/pc/trap.c:313,3251993/1115/sys/src/9/pc/trap.c:308,326
1991/0718    
void 
1993/0915    
dumpregs2(Ureg *ur) 
1991/0718    
{ 
1993/1115    
	ur->cs &= 0xffff; 
	ur->ds &= 0xffff; 
	ur->es &= 0xffff; 
	ur->fs &= 0xffff; 
	ur->gs &= 0xffff; 
 
1993/0915    
	if(up) 
		print("registers for %s %d\n", up->text, up->pid); 
1991/0718    
	else 
		print("registers for kernel\n"); 
1993/0915    
	print("FLAGS=%lux TRAP=%lux ECODE=%lux CS=%lux PC=%lux", ur->flags, ur->trap, 
1993/1115    
	print("FLAGS=%lux TRAP=%lux ECODE=%lux CS=%4.4lux PC=%lux", ur->flags, ur->trap, 
1993/1113    
		ur->ecode, ur->cs, ur->pc); 
	print(" SS=%lux USP=%lux\n", ur->ss, ur->usp); 
1993/1115    
	print(" SS=%4.4lux USP=%lux\n", ur->ss&0xffff, ur->usp); 
1991/0718    
	print("  AX %8.8lux  BX %8.8lux  CX %8.8lux  DX %8.8lux\n", 
		ur->ax, ur->bx, ur->cx, ur->dx); 
1991/1214    
	print("  SI %8.8lux  DI %8.8lux  BP %8.8lux\n", 
1993/1114/sys/src/9/pc/trap.c:326,3321993/1115/sys/src/9/pc/trap.c:327,332
1991/1214    
		ur->si, ur->di, ur->bp); 
1993/1113    
	print("  DS %4.4lux  ES %4.4lux  FS %4.4lux  GS %4.4lux\n", 
		ur->ds, ur->es, ur->fs, ur->gs); 
1993/0915    
                 
1991/0718    
} 
 
1991/0720    
void 


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