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

1992/0805/pc/trap.c (diff list | history)

1992/0804/sys/src/9/pc/trap.c:110,1161992/0805/sys/src/9/pc/trap.c:110,116 (short | long | prev | next)
1991/0823    
	sethvec(11, intr11, SEGTG, 0); 
	sethvec(12, intr12, SEGTG, 0); 
	sethvec(13, intr13, SEGTG, 0); 
	sethvec(14, intr14, SEGTG, 0); 
1992/0805    
	sethvec(14, intr14, SEGIG, 0); 
1991/0823    
	sethvec(15, intr15, SEGTG, 0); 
1991/0904    
	sethvec(16, intr16, SEGTG, 0); 
1991/0731    
 
1992/0804/sys/src/9/pc/trap.c:333,3421992/0805/sys/src/9/pc/trap.c:333,351
1991/0720    
	if((ur->cs)&0xffff == KESEL) 
		panic("recursive system call"); 
1991/0718    
 
1991/0720    
	/* 
	 *  do something about floating point!!! 
	 */ 
1992/06271    
	u->scallnr = ur->ax; 
1992/0805    
	if(u->scallnr == RFORK && u->p->fpstate == FPactive){ 
		/* 
		 *  so that the child starts out with the 
		 *  same registers as the parent 
		 */ 
		splhi(); 
		if(u->p->fpstate == FPactive){ 
			fpsave(&u->fpsave); 
			u->p->fpstate = FPinactive; 
		} 
		spllo(); 
	} 
1991/0720    
	sp = ur->usp; 
	u->nerrlab = 0; 
	ret = -1; 
1992/0804/sys/src/9/pc/trap.c:353,3621992/0805/sys/src/9/pc/trap.c:362,369
1992/0625    
		u->s = *((Sargs*)(sp+1*BY2WD)); 
1992/06271    
		u->p->psstate = sysctab[u->scallnr]; 
1992/0625    
 
1992/0804    
if(u->p->fgrp->ref <= 0) print("before syscall %s\n", u->p->psstate); 
1992/06271    
		ret = (*systab[u->scallnr])(u->s.args); 
1991/0720    
		poperror(); 
1992/0804    
if(u->p->fgrp->ref <= 0) print("after syscall %s\n", u->p->psstate); 
1991/0720    
	} 
	if(u->nerrlab){ 
1992/06271    
		print("bad errstack [%d]: %d extra\n", u->scallnr, u->nerrlab); 


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