|
|
|
1991/0727/sys/src/9/power/trap.c:461,514 –
1991/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,549 –
1991/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:
|