From 8306b655f9d9a291126ed4947c481ea540c9b835 Mon Sep 17 00:00:00 2001 From: Nicholas Date: Thu, 18 Nov 2021 11:27:04 -0800 Subject: added more syscalls --- sys/src/chdir.c | 3 ++- sys/src/chdirfd.c | 8 ++++++++ sys/src/exec.c | 8 ++++++++ sys/src/fork.c | 8 ++++++++ sys/src/internal.h | 1 + 5 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 sys/src/chdirfd.c create mode 100644 sys/src/exec.c create mode 100644 sys/src/fork.c (limited to 'sys') diff --git a/sys/src/chdir.c b/sys/src/chdir.c index fd1385d..d64446a 100644 --- a/sys/src/chdir.c +++ b/sys/src/chdir.c @@ -3,5 +3,6 @@ int sys·chdir(char *path) { - return syscall(·Chdir, path); + intptr ret = syscall(·Chdir, path); + return error(ret); } diff --git a/sys/src/chdirfd.c b/sys/src/chdirfd.c new file mode 100644 index 0000000..ad84d2b --- /dev/null +++ b/sys/src/chdirfd.c @@ -0,0 +1,8 @@ +#include "internal.h" + +int +sys·chdirfd(int fd) +{ + intptr ret = syscall(·FChdir, fd); + return error(ret); +} diff --git a/sys/src/exec.c b/sys/src/exec.c new file mode 100644 index 0000000..d00e9dd --- /dev/null +++ b/sys/src/exec.c @@ -0,0 +1,8 @@ +#include "internal.h" + +int +sys·exec(char *prog, char *argv[], char *env[]) +{ + intptr ret = syscall(·ExecVe, prog, argv, env); + return error(ret); +} diff --git a/sys/src/fork.c b/sys/src/fork.c new file mode 100644 index 0000000..c33caa2 --- /dev/null +++ b/sys/src/fork.c @@ -0,0 +1,8 @@ +#include "internal.h" + +int +sys·fork(void) +{ + intptr ret = syscall(·Fork); + return error(ret); +} diff --git a/sys/src/internal.h b/sys/src/internal.h index bf3d0ec..e8bb76c 100644 --- a/sys/src/internal.h +++ b/sys/src/internal.h @@ -4,6 +4,7 @@ #include #include +#define syscall0(n) _syscall0(n) #define syscall1(n,a1) _syscall1(n,sysarg(a1)) #define syscall2(n,a1,a2) _syscall2(n,sysarg(a1),sysarg(a2)) #define syscall3(n,a1,a2,a3) _syscall3(n,sysarg(a1),sysarg(a2),sysarg(a3)) -- cgit v1.2.1