diff options
Diffstat (limited to 'sys/src')
-rw-r--r-- | sys/src/chmod.c | 8 | ||||
-rw-r--r-- | sys/src/info.c | 7 | ||||
-rw-r--r-- | sys/src/infoat.c | 8 | ||||
-rw-r--r-- | sys/src/infofd.c | 10 | ||||
-rw-r--r-- | sys/src/mkdir.c | 8 | ||||
-rw-r--r-- | sys/src/mkdirat.c | 8 | ||||
-rw-r--r-- | sys/src/mkfifo.c | 8 | ||||
-rw-r--r-- | sys/src/mknode.c | 7 | ||||
-rw-r--r-- | sys/src/mknodeat.c | 8 | ||||
-rw-r--r-- | sys/src/write.c | 2 |
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; |