aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas <nbnoll@eml.cc>2021-11-18 11:27:04 -0800
committerNicholas <nbnoll@eml.cc>2021-11-18 11:27:04 -0800
commit8306b655f9d9a291126ed4947c481ea540c9b835 (patch)
tree1363fc0092c5e02ffd7a8910d9abd29ab8da280f
parent7eb20457ff3d80cc81d54204ffd2c9edaf991905 (diff)
added more syscalls
-rw-r--r--sys/src/chdir.c3
-rw-r--r--sys/src/chdirfd.c8
-rw-r--r--sys/src/exec.c8
-rw-r--r--sys/src/fork.c8
-rw-r--r--sys/src/internal.h1
5 files changed, 27 insertions, 1 deletions
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 <sys.h>
#include <syscall.h>
+#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))