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

1991/0625/pc/l.s (diff list | history)

pc/l.s on 1991/0625
1991/0625    
#include "mem.h" 
1991/0614    
 
1991/0625    
GLOBL	gdtptr(SB),$6 
 
	DATA	gdtptr+0(SB)/2, $(6*8) 
	DATA	gdtptr+2(SB)/4, $gdt(SB) 
 
1991/0614    
/* 
1991/0622    
 *  boot processor 
1991/0614    
 */ 
TEXT	start(SB),$0 
 
1991/0625    
	CLI			/* disable interrupts */ 
	MOVW	$NULLSEL,IDTR	/* force shutdown on error */ 
 
	/* point data segment at low memory */ 
	XORL	AX,AX 
	MOVW	AX,DS 
 
	/* load gdt address (valid after paging) */ 
	LEAL	gdtptr(SB),AX 
	MOVL	-KZERO(AX),GDTR 
 
1991/0614    
	CALL	main(SB) 
	/* never returns */ 
 
1991/0619    
/* 
1991/0623    
 *  first 16 ``standard'' traps 
1991/0619    
 */ 
1991/0622    
TEXT	trap0(SB),$0 
 
1991/0623    
	PUSHL	$0	/* put on an error code */ 
1991/0620    
	PUSHL	$0 
	JMP	alltrap 
1991/0622    
 
TEXT	trap1(SB),$0 
 
1991/0623    
	PUSHL	$0	/* put on an error code */ 
1991/0620    
	PUSHL	$1 
	JMP	alltrap 
1991/0622    
 
TEXT	trap2(SB),$0 
 
1991/0623    
	PUSHL	$0	/* put on an error code */ 
1991/0620    
	PUSHL	$2 
	JMP	alltrap 
1991/0622    
 
TEXT	trap3(SB),$0 
 
1991/0623    
	PUSHL	$0	/* put on an error code */ 
1991/0620    
	PUSHL	$3 
	JMP	alltrap 
1991/0622    
 
TEXT	trap4(SB),$0 
 
1991/0623    
	PUSHL	$0	/* put on an error code */ 
1991/0620    
	PUSHL	$4 
	JMP	alltrap 
1991/0622    
 
TEXT	trap5(SB),$0 
 
1991/0623    
	PUSHL	$0	/* put on an error code */ 
1991/0620    
	PUSHL	$5 
	JMP	alltrap 
1991/0622    
 
TEXT	trap6(SB),$0 
 
1991/0623    
	PUSHL	$0	/* put on an error code */ 
1991/0620    
	PUSHL	$6 
	JMP	alltrap 
1991/0622    
 
TEXT	trap7(SB),$0 
 
1991/0623    
	PUSHL	$0	/* put on an error code */ 
1991/0620    
	PUSHL	$7 
	JMP	alltrap 
1991/0622    
 
TEXT	trap8(SB),$0 
 
1991/0620    
	PUSHL	$8 
	JMP	alltrap 
1991/0622    
 
TEXT	trap9(SB),$0 
 
1991/0623    
	PUSHL	$0	/* put on an error code */ 
1991/0620    
	PUSHL	$9 
	JMP	alltrap 
1991/0622    
 
TEXT	trap10(SB),$0 
 
1991/0623    
	PUSHL	$0	/* put on an error code */ 
1991/0620    
	PUSHL	$10 
	JMP	alltrap 
1991/0622    
 
TEXT	trap11(SB),$0 
 
1991/0620    
	PUSHL	$11 
	JMP	alltrap 
1991/0622    
 
TEXT	trap12(SB),$0 
 
1991/0620    
	PUSHL	$12 
	JMP	alltrap 
1991/0622    
 
TEXT	trap13(SB),$0 
 
1991/0620    
	PUSHL	$13 
	JMP	alltrap 
1991/0622    
 
TEXT	trap14(SB),$0 
 
1991/0620    
	PUSHL	$14 
	JMP	alltrap 
1991/0622    
 
TEXT	trap15(SB),$0 
 
1991/0623    
	PUSHL	$0	/* put on an error code */ 
1991/0620    
	PUSHL	$15 
	JMP	alltrap 
1991/0614    
 
1991/0623    
/* 
 *  invalid trap 
 */ 
1991/0622    
TEXT	invtrap(SB),$0 
1991/0619    
 
1991/0623    
	PUSHL	$0	/* put on an error code */ 
1991/0622    
	PUSHL	$16 
	JMP	alltrap 
1991/0619    
 
1991/0623    
/* 
 *  common trap code 
 */ 
1991/0622    
alltrap: 
1991/0623    
 
1991/0625    
	PUSHL	DS 
1991/0622    
	PUSHAL 
1991/0625    
	MOVL	$KDSEL, AX 
	MOVW	AX, DS 
1991/0614    
	CALL	trap(SB) 
1991/0622    
	POPAL 
1991/0625    
	POPL	DS 
	ADDL	$8,SP		/* pop the trap and error codes */ 
1991/0622    
	IRETL 


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