| OLD | NEW |
| 1 #include <sys/statvfs.h> | 1 #include <sys/statvfs.h> |
| 2 #include <sys/statfs.h> | 2 #include <sys/statfs.h> |
| 3 #include "syscall.h" | 3 #include "syscall.h" |
| 4 #include "libc.h" | 4 #include "libc.h" |
| 5 | 5 |
| 6 int __statfs(const char *path, struct statfs *buf) | 6 int __statfs(const char* path, struct statfs* buf) { |
| 7 { | 7 *buf = (struct statfs){0}; |
| 8 » *buf = (struct statfs){0}; | |
| 9 #ifdef SYS_statfs64 | 8 #ifdef SYS_statfs64 |
| 10 » return syscall(SYS_statfs64, path, sizeof *buf, buf); | 9 return syscall(SYS_statfs64, path, sizeof *buf, buf); |
| 11 #else | 10 #else |
| 12 » return syscall(SYS_statfs, path, buf); | 11 return syscall(SYS_statfs, path, buf); |
| 13 #endif | 12 #endif |
| 14 } | 13 } |
| 15 | 14 |
| 16 int __fstatfs(int fd, struct statfs *buf) | 15 int __fstatfs(int fd, struct statfs* buf) { |
| 17 { | 16 *buf = (struct statfs){0}; |
| 18 » *buf = (struct statfs){0}; | |
| 19 #ifdef SYS_fstatfs64 | 17 #ifdef SYS_fstatfs64 |
| 20 » return syscall(SYS_fstatfs64, fd, sizeof *buf, buf); | 18 return syscall(SYS_fstatfs64, fd, sizeof *buf, buf); |
| 21 #else | 19 #else |
| 22 » return syscall(SYS_fstatfs, fd, buf); | 20 return syscall(SYS_fstatfs, fd, buf); |
| 23 #endif | 21 #endif |
| 24 } | 22 } |
| 25 | 23 |
| 26 weak_alias(__statfs, statfs); | 24 weak_alias(__statfs, statfs); |
| 27 weak_alias(__fstatfs, fstatfs); | 25 weak_alias(__fstatfs, fstatfs); |
| 28 | 26 |
| 29 static void fixup(struct statvfs *out, const struct statfs *in) | 27 static void fixup(struct statvfs* out, const struct statfs* in) { |
| 30 { | 28 *out = (struct statvfs){0}; |
| 31 » *out = (struct statvfs){0}; | 29 out->f_bsize = in->f_bsize; |
| 32 » out->f_bsize = in->f_bsize; | 30 out->f_frsize = in->f_frsize ? in->f_frsize : in->f_bsize; |
| 33 » out->f_frsize = in->f_frsize ? in->f_frsize : in->f_bsize; | 31 out->f_blocks = in->f_blocks; |
| 34 » out->f_blocks = in->f_blocks; | 32 out->f_bfree = in->f_bfree; |
| 35 » out->f_bfree = in->f_bfree; | 33 out->f_bavail = in->f_bavail; |
| 36 » out->f_bavail = in->f_bavail; | 34 out->f_files = in->f_files; |
| 37 » out->f_files = in->f_files; | 35 out->f_ffree = in->f_ffree; |
| 38 » out->f_ffree = in->f_ffree; | 36 out->f_favail = in->f_ffree; |
| 39 » out->f_favail = in->f_ffree; | 37 out->f_fsid = in->f_fsid.__val[0]; |
| 40 » out->f_fsid = in->f_fsid.__val[0]; | 38 out->f_flag = in->f_flags; |
| 41 » out->f_flag = in->f_flags; | 39 out->f_namemax = in->f_namelen; |
| 42 » out->f_namemax = in->f_namelen; | |
| 43 } | 40 } |
| 44 | 41 |
| 45 int statvfs(const char *restrict path, struct statvfs *restrict buf) | 42 int statvfs(const char* restrict path, struct statvfs* restrict buf) { |
| 46 { | 43 struct statfs kbuf; |
| 47 » struct statfs kbuf; | 44 if (__statfs(path, &kbuf) < 0) |
| 48 » if (__statfs(path, &kbuf)<0) return -1; | 45 return -1; |
| 49 » fixup(buf, &kbuf); | 46 fixup(buf, &kbuf); |
| 50 » return 0; | 47 return 0; |
| 51 } | 48 } |
| 52 | 49 |
| 53 int fstatvfs(int fd, struct statvfs *buf) | 50 int fstatvfs(int fd, struct statvfs* buf) { |
| 54 { | 51 struct statfs kbuf; |
| 55 » struct statfs kbuf; | 52 if (__fstatfs(fd, &kbuf) < 0) |
| 56 » if (__fstatfs(fd, &kbuf)<0) return -1; | 53 return -1; |
| 57 » fixup(buf, &kbuf); | 54 fixup(buf, &kbuf); |
| 58 » return 0; | 55 return 0; |
| 59 } | 56 } |
| 60 | 57 |
| 61 LFS64(statvfs); | 58 LFS64(statvfs); |
| 62 weak_alias(__statfs, statfs64); | 59 weak_alias(__statfs, statfs64); |
| 63 LFS64(fstatvfs); | 60 LFS64(fstatvfs); |
| 64 weak_alias(__fstatfs, fstatfs64); | 61 weak_alias(__fstatfs, fstatfs64); |
| OLD | NEW |