aboutsummaryrefslogtreecommitdiff
path: root/sys/src
diff options
context:
space:
mode:
Diffstat (limited to 'sys/src')
-rw-r--r--sys/src/chmod.c8
-rw-r--r--sys/src/info.c7
-rw-r--r--sys/src/infoat.c8
-rw-r--r--sys/src/infofd.c10
-rw-r--r--sys/src/mkdir.c8
-rw-r--r--sys/src/mkdirat.c8
-rw-r--r--sys/src/mkfifo.c8
-rw-r--r--sys/src/mknode.c7
-rw-r--r--sys/src/mknodeat.c8
-rw-r--r--sys/src/write.c2
10 files changed, 73 insertions, 1 deletions
diff --git a/sys/src/chmod.c b/sys/src/chmod.c
new file mode 100644
index 0000000..a37a037
--- /dev/null
+++ b/sys/src/chmod.c
@@ -0,0 +1,8 @@
+#include "internal.h"
+
+int
+sys·chmod(char *path, uint mode)
+{
+ long ret = syscall(·Chmod, path, mode);
+ return error(ret);
+}
diff --git a/sys/src/info.c b/sys/src/info.c
new file mode 100644
index 0000000..60f32a0
--- /dev/null
+++ b/sys/src/info.c
@@ -0,0 +1,7 @@
+#include "internal.h"
+
+int
+sys·info(char *path, sys·Info *file)
+{
+ return sys·infoat(sys·FdCwd, path, 0, sys·InfoAll, file);
+}
diff --git a/sys/src/infoat.c b/sys/src/infoat.c
new file mode 100644
index 0000000..ccbaf18
--- /dev/null
+++ b/sys/src/infoat.c
@@ -0,0 +1,8 @@
+#include "internal.h"
+
+int
+sys·infoat(int dirfd, char *path, int flag, uint mask, sys·Info *file)
+{
+ long ret = syscall(·StatX, dirfd, path, flag, mask, file);
+ return error(ret);
+}
diff --git a/sys/src/infofd.c b/sys/src/infofd.c
new file mode 100644
index 0000000..8b2973b
--- /dev/null
+++ b/sys/src/infofd.c
@@ -0,0 +1,10 @@
+#include "internal.h"
+#include <linux/stat.h>
+
+int
+sys·infofd(int fd, sys·Info *file)
+{
+ if(fd < 0)
+ return sys·ErrorBadFd;
+ return sys·infoat(fd, "", sys·AtEmptyPath, sys·InfoAll, file);
+}
diff --git a/sys/src/mkdir.c b/sys/src/mkdir.c
new file mode 100644
index 0000000..0672912
--- /dev/null
+++ b/sys/src/mkdir.c
@@ -0,0 +1,8 @@
+#include "internal.h"
+
+int
+sys·mkdir(char *path, uint mode)
+{
+ long ret = syscall(·MkdirAt, sys·FdCwd, path, mode);
+ return error(ret);
+}
diff --git a/sys/src/mkdirat.c b/sys/src/mkdirat.c
new file mode 100644
index 0000000..f6239d6
--- /dev/null
+++ b/sys/src/mkdirat.c
@@ -0,0 +1,8 @@
+#include "internal.h"
+
+int
+mkdirat(int dirfd, char *path, uint mode)
+{
+ long ret = syscall(·MkdirAt, dirfd, path, mode);
+ return error(ret);
+}
diff --git a/sys/src/mkfifo.c b/sys/src/mkfifo.c
new file mode 100644
index 0000000..da12f31
--- /dev/null
+++ b/sys/src/mkfifo.c
@@ -0,0 +1,8 @@
+#include "internal.h"
+
+int
+sys·mkfifo(char *path, uint mode)
+{
+ long ret = sys·mknode(path, mode|sys·ModeFifo, 0);
+ return error(ret);
+}
diff --git a/sys/src/mknode.c b/sys/src/mknode.c
new file mode 100644
index 0000000..1824664
--- /dev/null
+++ b/sys/src/mknode.c
@@ -0,0 +1,7 @@
+#include "internal.h"
+
+int
+sys·mknode(char *path, uint mode, uint64 device)
+{
+ return sys·mknodeat(sys·FdCwd, path, mode, device);
+}
diff --git a/sys/src/mknodeat.c b/sys/src/mknodeat.c
new file mode 100644
index 0000000..d592731
--- /dev/null
+++ b/sys/src/mknodeat.c
@@ -0,0 +1,8 @@
+#include "internal.h"
+
+int
+sys·mknodeat(int dirfd, char *path, uint mode, uint64 device)
+{
+ long ret = syscall(·MkNodAt, dirfd, path, mode, device);
+ return error(ret);
+}
diff --git a/sys/src/write.c b/sys/src/write.c
index 16c9f71..7863673 100644
--- a/sys/src/write.c
+++ b/sys/src/write.c
@@ -1,7 +1,7 @@
#include "internal.h"
int
-sys·write(int fd, intptr len, void *buf, intptr *ret)
+sys·write(int fd, uintptr len, void *buf, intptr *ret)
{
long err = *ret = syscall(·Write, fd, buf, len);
return err;