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

1990/08163/gnot/trap.c (diff list | history)

1990/0816/sys/src/9/gnot/trap.c:243,2481990/08163/sys/src/9/gnot/trap.c:243,249 (short | long | prev | next)
1990/03091    
	ulong r0; 
	Ureg *ur; 
1990/0513    
	char *msg; 
1990/08163    
	long fpnull = 0; 
1990/03091    
 
	u->p->insyscall = 1; 
	ur = aur; 
1990/0816/sys/src/9/gnot/trap.c:249,2641990/08163/sys/src/9/gnot/trap.c:250,268
1990/0312    
	u->p->pc = ur->pc; 
1990/03091    
	if(ur->sr & SUPER) 
		panic("recursive system call"); 
#ifdef asdf 
	/* 
	 * since the system call interface does not 
	 * guarantee anything about registers 
1990/08163    
	 * guarantee anything about registers, but the fpcr is more than 
	 * just a register...  BUG 
1990/03091    
	 */ 
	if(u->p->fpstate == FPactive) { 
		u->p->fpstate = FPinit;		/* BUG */ 
		ur->status &= ~CU1; 
1990/08163    
	splhi(); 
	fpsave(&u->fpsave); 
	if(u->p->fpstate==FPactive || u->fpsave.type){ 
		fprestore((FPsave*)&fpnull); 
		u->p->fpstate = FPinit; 
		m->fpstate = FPinit; 
1990/03091    
	} 
#endif 
1990/08163    
	spllo(); 
1990/03091    
	r0 = ur->r0; 
	sp = ur->usp; 
 


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