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

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

1991/0722/sys/src/9/pc/trap.c:223,2301991/0723/sys/src/9/pc/trap.c:223,228 (short | long | prev | next)
1991/0720    
	ulong	sp; 
	long	ret; 
	int	i; 
	static int times; 
ulong	*z; 
 
1991/0718    
	u->p->insyscall = 1; 
	u->p->pc = ur->pc; 
1991/0722/sys/src/9/pc/trap.c:240,2501991/0723/sys/src/9/pc/trap.c:238,243
1991/0720    
	sp = ur->usp; 
	u->nerrlab = 0; 
	ret = -1; 
z = (ulong *)sp; 
print("syscall %lux %lux %lux %lux\n", *z, *(z+1), *(z+2), *(z+3)); 
dumpregs(ur); 
if(++times==3) 
	panic("3rd time in syscall"); 
	if(!waserror()){ 
		if(ax >= sizeof systab/BY2WD){ 
			pprint("bad sys call number %d pc %lux\n", ax, ur->pc); 
1991/0722/sys/src/9/pc/trap.c:256,2621991/0723/sys/src/9/pc/trap.c:249,254
1991/0720    
		ret = (*systab[ax])((ulong*)(sp+BY2WD)); 
		poperror(); 
	} 
print("return from syscall\n"); 
	if(u->nerrlab){ 
		print("bad errstack [%d]: %d extra\n", ax, u->nerrlab); 
		for(i = 0; i < NERR; i++) 


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