summaryrefslogtreecommitdiff
path: root/components/libc
diff options
context:
space:
mode:
authorxqyjlj <[email protected]>2023-03-29 11:54:25 +0800
committerguo <[email protected]>2023-03-31 10:56:37 +0800
commitcd1e0a790124c216c5df3d3eb448e98f37f22097 (patch)
tree8ae0d8b8805c6b98a7948f2b0d17759e39986775 /components/libc
parente4bd8e00f0e7b56b181c810f73249eb6fc9b63f9 (diff)
✨ feat(components): add statfs, statfs64, fstatfs, fstatfs64 support
Diffstat (limited to 'components/libc')
-rw-r--r--components/libc/compilers/common/include/sys/statfs.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/components/libc/compilers/common/include/sys/statfs.h b/components/libc/compilers/common/include/sys/statfs.h
index 818ec9eb77..8765e1d820 100644
--- a/components/libc/compilers/common/include/sys/statfs.h
+++ b/components/libc/compilers/common/include/sys/statfs.h
@@ -5,6 +5,7 @@
*
* Change Logs:
* Date Author Notes
+ * 2023-03-27 xqyjlj adapt musl
*/
#ifndef __SYS_STATFS_H__
@@ -16,16 +17,31 @@
extern "C" {
#endif
+#ifdef RT_USING_MUSLLIBC
+/* this is required for musl <sys/statfs.h> */
+#ifndef _POSIX_SOURCE
+#define _POSIX_SOURCE
+#include_next <sys/statfs.h>
+/* limiting influence of _POSIX_SOURCE */
+#undef _POSIX_SOURCE
+
+#else /* def _POSIX_SOURCE */
+#include_next <sys/statfs.h>
+#endif
+#else
struct statfs
{
size_t f_bsize; /* block size */
size_t f_blocks; /* total data blocks in file system */
size_t f_bfree; /* free blocks in file system */
+ size_t f_bavail; /* free blocks available to unprivileged user*/
};
int statfs(const char *path, struct statfs *buf);
int fstatfs(int fd, struct statfs *buf);
+#endif
+
#ifdef __cplusplus
}
#endif