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

1991/0731/power/trap.c (diff list | history)

1991/0727/sys/src/9/power/trap.c:461,5141991/0731/sys/src/9/power/trap.c:461,468 (short | long | prev | next)
1990/0227    
} 
 
 
#undef	CHDIR	/* BUG */ 
1991/0710    
#include "/sys/src/libc/9syscall/sys.h" 
1991/0731    
#include "../port/systab.h" 
1990/0227    
 
typedef long Syscall(ulong*); 
1990/11211    
Syscall sysbind, sysbrk_, syschdir, sysclose, syscreate, sysdeath; 
1990/0227    
Syscall	sysdup, syserrstr, sysexec, sysexits, sysfork, sysforkpgrp; 
1990/11211    
Syscall	sysfstat, sysfwstat, sysgetpid, sysmount, sysnoted; 
1990/0227    
Syscall	sysnotify, sysopen, syspipe, sysr1, sysread, sysremove, sysseek; 
1991/0705    
Syscall syssleep, sysstat, syswait, syswrite, syswstat, sysalarm, syssegbrk; 
Syscall syssegattach, syssegdetach, syssegfree, syssegflush; 
                 
1990/0227    
Syscall *systab[]={ 
	[SYSR1]		sysr1, 
1990/11211    
	[ERRSTR]	syserrstr, 
1990/0227    
	[BIND]		sysbind, 
	[CHDIR]		syschdir, 
	[CLOSE]		sysclose, 
	[DUP]		sysdup, 
1991/0513    
	[ALARM]		sysalarm, 
1990/0227    
	[EXEC]		sysexec, 
	[EXITS]		sysexits, 
	[FORK]		sysfork, 
	[FORKPGRP]	sysforkpgrp, 
	[FSTAT]		sysfstat, 
1991/0705    
	[SEGBRK]	syssegbrk, 
1990/0227    
	[MOUNT]		sysmount, 
	[OPEN]		sysopen, 
	[READ]		sysread, 
	[SEEK]		sysseek, 
	[SLEEP]		syssleep, 
	[STAT]		sysstat, 
	[WAIT]		syswait, 
	[WRITE]		syswrite, 
	[PIPE]		syspipe, 
	[CREATE]	syscreate, 
1990/11211    
	[___USERSTR___]	sysdeath, 
1990/0227    
	[BRK_]		sysbrk_, 
	[REMOVE]	sysremove, 
	[WSTAT]		syswstat, 
	[FWSTAT]	sysfwstat, 
	[NOTIFY]	sysnotify, 
	[NOTED]		sysnoted, 
1991/0705    
	[SEGATTACH]	syssegattach, 
	[SEGDETACH]	syssegdetach, 
	[SEGFREE]	syssegfree, 
	[SEGFLUSH]	syssegflush, 
1990/0227    
}; 
                 
long 
syscall(Ureg *aur) 
{ 
1991/0727/sys/src/9/power/trap.c:543,5491991/0731/sys/src/9/power/trap.c:497,503
1990/0227    
	u->nerrlab = 0; 
	ret = -1; 
1990/0511    
	if(!waserror()){ 
		if(r1 >= sizeof systab/BY2WD){ 
1991/0731    
		if(r1 >= sizeof systab/sizeof systab[0]){ 
1990/0511    
			pprint("bad sys call number %d pc %lux\n", r1, ((Ureg*)UREGADDR)->pc); 
1990/1110    
			msg = "sys: bad sys call"; 
1990/0511    
	    Bad: 


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