summaryrefslogtreecommitdiff
path: root/eio.c
diff options
context:
space:
mode:
Diffstat (limited to 'eio.c')
-rw-r--r--eio.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/eio.c b/eio.c
index 609b28c..0f48a71 100644
--- a/eio.c
+++ b/eio.c
@@ -51,6 +51,7 @@
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
+#include <sys/statvfs.h>
#include <limits.h>
#include <fcntl.h>
#include <assert.h>
@@ -1578,6 +1579,11 @@ static void eio_execute (etp_worker *self, eio_req *req)
case EIO_FSTAT: ALLOC (sizeof (EIO_STRUCT_STAT));
req->result = fstat (req->int1, (EIO_STRUCT_STAT *)req->ptr2); break;
+ case EIO_STATVFS: ALLOC (sizeof (EIO_STRUCT_STATVFS));
+ req->result = statvfs (req->ptr1, (EIO_STRUCT_STATVFS *)req->ptr2); break;
+ case EIO_FSTATVFS: ALLOC (sizeof (EIO_STRUCT_STATVFS));
+ req->result = fstatvfs (req->int1, (EIO_STRUCT_STATVFS *)req->ptr2); break;
+
case EIO_CHOWN: req->result = chown (req->ptr1, req->int2, req->int3); break;
case EIO_FCHOWN: req->result = fchown (req->int1, req->int2, req->int3); break;
case EIO_CHMOD: req->result = chmod (req->ptr1, (mode_t)req->int2); break;
@@ -1734,6 +1740,11 @@ eio_req *eio_fstat (int fd, int pri, eio_cb cb, void *data)
REQ (EIO_FSTAT); req->int1 = fd; SEND;
}
+eio_req *eio_fstatvfs (int fd, int pri, eio_cb cb, void *data)
+{
+ REQ (EIO_FSTATVFS); req->int1 = fd; SEND;
+}
+
eio_req *eio_futime (int fd, double atime, double mtime, int pri, eio_cb cb, void *data)
{
REQ (EIO_FUTIME); req->int1 = fd; req->nv1 = atime; req->nv2 = mtime; SEND;
@@ -1815,6 +1826,11 @@ eio_req *eio_lstat (const char *path, int pri, eio_cb cb, void *data)
return eio__1path (EIO_LSTAT, path, pri, cb, data);
}
+eio_req *eio_statvfs (const char *path, int pri, eio_cb cb, void *data)
+{
+ return eio__1path (EIO_STATVFS, path, pri, cb, data);
+}
+
eio_req *eio_unlink (const char *path, int pri, eio_cb cb, void *data)
{
return eio__1path (EIO_UNLINK, path, pri, cb, data);