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

1994/0512/pc/trap.c (diff list | history)

1994/0407/sys/src/9/pc/trap.c:183,1901994/0512/sys/src/9/pc/trap.c:183,190 (short | long | prev | next)
1991/0709    
	 *  Set the 8259 as master with edge triggered 
	 *  input with fully nested interrupts. 
1991/0704    
	 */ 
1991/0709    
	outb(Int0ctl, 0x11);		/* ICW1 - edge triggered, master, 
					   ICW4 will be sent */ 
1994/0512    
	outb(Int0ctl, (1<<4)|(1<<3)|(1<<0));	/* ICW1 - master, level triggered, 
					  	 ICW4 will be sent */ 
1991/0709    
	outb(Int0aux, Int0vec);		/* ICW2 - interrupt vector offset */ 
1991/0731    
	outb(Int0aux, 0x04);		/* ICW3 - have slave on level 2 */ 
1991/0709    
	outb(Int0aux, 0x01);		/* ICW4 - 8086 mode, not buffered */ 
1994/0407/sys/src/9/pc/trap.c:195,2021994/0512/sys/src/9/pc/trap.c:195,202
1991/0731    
	 *  Set the 8259 as master with edge triggered 
	 *  input with fully nested interrupts. 
	 */ 
	outb(Int1ctl, 0x11);		/* ICW1 - edge triggered, master, 
					   ICW4 will be sent */ 
1994/0512    
	outb(Int1ctl, (1<<4)|(1<<3)|(1<<0));	/* ICW1 - master, level triggered, 
					  	 ICW4 will be sent */ 
1991/0731    
	outb(Int1aux, Int1vec);		/* ICW2 - interrupt vector offset */ 
	outb(Int1aux, 0x02);		/* ICW3 - I am a slave on level 2 */ 
	outb(Int1aux, 0x01);		/* ICW4 - 8086 mode, not buffered */ 
1994/0407/sys/src/9/pc/trap.c:222,2311994/0512/sys/src/9/pc/trap.c:222,228
1991/1113    
[13]	"general protection violation", 
}; 
 
1993/0915    
Ureg lasttrap, *lastur; 
1993/1113    
Proc *lastup; 
1993/0915    
 
                 
1991/0614    
/* 
1993/1124    
 *  All traps come here.  It is slower to have all traps call trap() rather than 
1993/1115    
 *  directly vectoring the handler.  However, this avoids a lot of code duplication 
1994/0407/sys/src/9/pc/trap.c:265,2731994/0512/sys/src/9/pc/trap.c:262,267
1991/1113    
	} 
 
1993/0217    
	if(v>=256 || (h = halloc.ivec[v]) == 0){ 
1993/0915    
lasttrap = *ur; 
lastur = ur; 
1993/1113    
lastup = up; 
1993/0224    
		/* an old 386 generates these fairly often, no idea why */ 
1991/1214    
		if(v == 13) 
			return; 
1994/0407/sys/src/9/pc/trap.c:307,3161994/0512/sys/src/9/pc/trap.c:301,306
1993/0915    
	splhi(); 
	if(user && (up->procctl || up->nnote)) 
1991/0910    
		notify(ur); 
1993/1113    
                 
lastup = up; 
1993/0915    
lasttrap = *ur; 
lastur = ur; 
1991/0806    
} 
 
/* 
1994/0407/sys/src/9/pc/trap.c:349,3591994/0512/sys/src/9/pc/trap.c:339,344
1993/0915    
	dumpregs2(ur); 
1993/1113    
	print("  magic %lux %lux %lux\n", x[0], x[1], x[2]); 
	print("  ur %lux up %lux\n", ur, up); 
1993/0915    
	dumpregs2(&lasttrap); 
1993/1113    
	print("  lastur %lux lastup %lux\n", lastur); 
splhi(); 
dumpstack(); 
for(;;); 
1993/0915    
} 
 
void 


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