api: add remaining functions
[libc-test] / src / api / sys_statvfs.c
diff --git a/src/api/sys_statvfs.c b/src/api/sys_statvfs.c
new file mode 100644 (file)
index 0000000..d43e503
--- /dev/null
@@ -0,0 +1,27 @@
+#include <sys/statvfs.h>
+#define T(t) (t*)0;
+#define F(t,n) {t *y = &x.n;}
+#define C(n) switch(n){case n:;}
+static void f()
+{
+T(fsblkcnt_t)
+T(fsfilcnt_t)
+{
+struct statvfs x;
+F(unsigned long, f_bsize)
+F(unsigned long, f_frsize)
+F(fsblkcnt_t,f_blocks)
+F(fsblkcnt_t,f_bfree)
+F(fsblkcnt_t,f_bavail)
+F(fsfilcnt_t,f_files)
+F(fsfilcnt_t,f_ffree)
+F(fsfilcnt_t,f_favail)
+F(unsigned long, f_fsid)
+F(unsigned long, f_flag)
+F(unsigned long, f_namemax)
+}
+C(ST_RDONLY)
+C(ST_NOSUID)
+int(*p_fstatvfs)(int,struct statvfs*) = fstatvfs;
+int(*p_statvfs)(const char*restrict,struct statvfs*restrict) = statvfs;
+}