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

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

1992/0803/sys/src/9/power/trap.c:83,921992/0805/sys/src/9/power/trap.c:83,91 (short | long | prev | next)
1990/0227    
	ecode = EXCCODE(ur->cause); 
1992/0527    
	LEDON(ecode); 
1990/0227    
	user = ur->status&KUP; 
1991/1110    
	if(u) { 
1990/0227    
		u->p->pc = ur->pc;		/* BUG */ 
1992/0805    
	if(u) 
1991/1110    
		u->dbgreg = ur; 
	} 
1992/0805    
 
1990/0227    
	switch(ecode){ 
	case CINT: 
		if(u && u->p->state==Running){ 
1992/0803/sys/src/9/power/trap.c:505,5111992/0805/sys/src/9/power/trap.c:504,510
1992/0407    
	p = u->p; 
	p->insyscall = 1; 
1990/0227    
	ur = aur; 
1992/0407    
	p->pc = ur->pc;		/* BUG */ 
1992/0805    
	p->pc = ur->pc; 
1991/1110    
	u->dbgreg = aur; 
1990/0901    
	ur->cause = 15<<2;		/* for debugging: system call is undef 15; 
1990/0227    
	/* 
1992/0803/sys/src/9/power/trap.c:574,5791992/0805/sys/src/9/power/trap.c:573,579
1991/1214    
	*--sp = nargs; 
	((Ureg*)UREGADDR)->usp = (ulong)sp; 
	((Ureg*)UREGADDR)->pc = entry - 4;	/* syscall advances it */ 
1992/0805    
	u->fpsave.fpstatus = initfp.fpstatus; 
1991/1214    
	return USTKTOP-BY2WD;			/* address of user-level clock */ 
1990/0227    
} 
 


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