diff options
Diffstat (limited to 'uisimulator')
| -rw-r--r-- | uisimulator/x11/io.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/uisimulator/x11/io.c b/uisimulator/x11/io.c index 87ef6ba..2951b1f 100644 --- a/uisimulator/x11/io.c +++ b/uisimulator/x11/io.c @@ -21,6 +21,7 @@ #include <stdlib.h> #include <string.h> #include <sys/stat.h> +#include <sys/vfs.h> #include <dirent.h> #include <fcntl.h> @@ -107,3 +108,23 @@ int x11_open(char *name, int opts) } return open(name, opts); } + +void fat_size(unsigned int* size, unsigned int* free) +{ + struct statfs fs; + + if (!statfs(".", &fs)) { + DEBUGF("statfs: bsize=%d blocks=%d free=%d\n", + fs.f_bsize, fs.f_blocks, fs.f_bfree); + if (size) + *size = fs.f_blocks * (fs.f_bsize / 1024); + if (free) + *free = fs.f_bfree * (fs.f_bsize / 1024); + } + else { + if (size) + *size = 0; + if (free) + *free = 0; + } +} |