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

1991/1114/pc/trap.c (diff list | history)

1991/1113/sys/src/9/pc/trap.c:342,3551991/1114/sys/src/9/pc/trap.c:342,357 (short | long | prev | next)
1991/0720    
			print("sp=%lux pc=%lux\n", u->errlab[i].sp, u->errlab[i].pc); 
		panic("error stack"); 
	} 
1991/1114    
 
1991/0720    
	u->p->insyscall = 0; 
1991/0926    
	u->p->psstate = 0; 
1991/0801    
	ur->ax = ret; 
1991/0802    
	if(ax == NOTED){ 
1991/1114    
	if(ax == NOTED) 
1991/0720    
		noted(ur, *(ulong*)(sp+BY2WD)); 
1991/1112    
	} else if(u->p->procctl || (u->nnote && ax!=FORK)){ 
1991/1114    
 
	splhi(); 
	if(ax!=FORK && (u->p->procctl || u->nnote)) 
1991/0720    
		notify(ur); 
	} 
	return ret; 
1991/0710    
} 
 
1991/1113/sys/src/9/pc/trap.c:360,3711991/1114/sys/src/9/pc/trap.c:362,375
1991/0710    
void 
1991/0720    
notify(Ureg *ur) 
1991/0710    
{ 
1991/0720    
	ulong sp; 
1991/1114    
	ulong s, sp; 
1991/0720    
 
1991/1112    
	if(u->p->procctl) 
		procctl(u->p); 
	if(u->nnote==0) 
1991/0720    
		return; 
1991/1114    
 
	s = spllo(); 
1991/1112    
	lock(&u->p->debug); 
1991/0727    
	u->p->notepending = 0; 
1991/0720    
	if(u->note[0].flag!=NUser && (u->notified || u->notify==0)){ 
1991/1113/sys/src/9/pc/trap.c:407,4121991/1114/sys/src/9/pc/trap.c:411,417
1991/0720    
		memmove(&u->note[0], &u->note[1], u->nnote*sizeof(Note)); 
	} 
	unlock(&u->p->debug); 
1991/1114    
	splx(s); 
1991/0710    
} 
 
1991/0720    
/* 


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