VSF Documented
statvfs.h
Go to the documentation of this file.
1#ifndef __VSF_LINUX_STATVFS_H__
2#define __VSF_LINUX_STATVFS_H__
3
5
6#if VSF_LINUX_CFG_RELATIVE_PATH == ENABLED
7# include "../sys/types.h"
8#else
9# include <sys/types.h>
10#endif
11
12#ifdef __cplusplus
13extern "C" {
14#endif
15
16#define ST_RDONLY (1 << 0)
17#define ST_NOSUID (1 << 1)
18#define ST_NODEV (1 << 2)
19#define ST_NOEXEC (1 << 3)
20#define ST_SYNCHRONOUS (1 << 4)
21#define ST_VALID (1 << 5)
22#define ST_MANDLOCK (1 << 6)
23#define ST_NOATIME (1 << 10)
24#define ST_NODIRATIME (1 << 11)
25#define ST_REAATIME (1 << 12)
26#define ST_NOSYMFOLLOW (1 << 13)
27
28struct statvfs {
29 unsigned long f_bsize;
30 unsigned long f_frsize;
37 unsigned long f_fsid;
38 unsigned long f_flag;
39 unsigned long f_namemax;
40};
41
42struct statvfs64 {
43 unsigned long f_bsize;
44 unsigned long f_frsize;
51 unsigned long f_fsid;
52 unsigned long f_flag;
53 unsigned long f_namemax;
54};
55
56#if VSF_LINUX_APPLET_USE_SYS_STATVFS == ENABLED
59
65# ifndef __VSF_APPLET__
67# endif
68#endif
69
70#if defined(__VSF_APPLET__) && (defined(__VSF_APPLET_LIB__) || defined(__VSF_APPLET_LINUX_SYS_STATVFS_LIB__))\
71 && VSF_APPLET_CFG_ABI_PATCH != ENABLED && VSF_LINUX_APPLET_USE_SYS_STATVFS == ENABLED
72
73#ifndef VSF_LINUX_APPLET_SYS_STATVFS_VPLT
74# if VSF_LINUX_USE_APPLET == ENABLED
75# define VSF_LINUX_APPLET_SYS_STATVFS_VPLT \
76 ((vsf_linux_sys_statvfs_vplt_t *)(VSF_LINUX_APPLET_VPLT->sys_statvfs_vplt))
77# else
78# define VSF_LINUX_APPLET_SYS_STATVFS_VPLT \
79 ((vsf_linux_sys_statvfs_vplt_t *)vsf_vplt((void *)0))
80# endif
81#endif
82
83#define VSF_LINUX_APPLET_SYS_STATVFS_ENTRY(__NAME) \
84 VSF_APPLET_VPLT_ENTRY_FUNC_ENTRY(VSF_LINUX_APPLET_SYS_STATVFS_VPLT, __NAME)
85#define VSF_LINUX_APPLET_SYS_STATVFS_IMP(...) \
86 VSF_APPLET_VPLT_ENTRY_FUNC_IMP(VSF_LINUX_APPLET_SYS_STATVFS_VPLT, __VA_ARGS__)
87
88VSF_LINUX_APPLET_SYS_STATVFS_IMP(fstatvfs, int, int fd, struct statvfs *buf) {
90 return VSF_LINUX_APPLET_SYS_STATVFS_ENTRY(fstatvfs)(fd, buf);
91}
92VSF_LINUX_APPLET_SYS_STATVFS_IMP(statvfs, int, const char *path, struct statvfs *buf) {
94 return VSF_LINUX_APPLET_SYS_STATVFS_ENTRY(statvfs)(path, buf);
95}
96VSF_LINUX_APPLET_SYS_STATVFS_IMP(fstatvfs64, int, int fd, struct statvfs64 *buf) {
98 return VSF_LINUX_APPLET_SYS_STATVFS_ENTRY(fstatvfs64)(fd, buf);
99}
100VSF_LINUX_APPLET_SYS_STATVFS_IMP(statvfs64, int, const char *path, struct statvfs64 *buf) {
102 return VSF_LINUX_APPLET_SYS_STATVFS_ENTRY(statvfs64)(path, buf);
103}
104
105#else
106
107int fstatvfs(int fd, struct statvfs *buf);
108int statvfs(const char *path, struct statvfs *buf);
109
110int fstatvfs64(int fd, struct statvfs64 *buf);
111int statvfs64(const char *path, struct statvfs64 *buf);
112
113#endif
114
115#ifdef __cplusplus
116}
117#endif
118
119#endif
blkcnt_t fsblkcnt_t
Definition types.h:105
blkcnt64_t fsblkcnt64_t
Definition types.h:106
unsigned long long fsfilcnt64_t
Definition types.h:108
unsigned long fsfilcnt_t
Definition types.h:107
__VSF_VPLT_DECORATOR__ vsf_linux_sys_statvfs_vplt_t vsf_linux_sys_statvfs_vplt
Definition vsf_linux_fs.c:3663
int fstatvfs64(int fd, struct statvfs64 *buf)
Definition vsf_linux_fs.c:2655
int fstatvfs(int fd, struct statvfs *buf)
Definition vsf_linux_fs.c:2643
Definition statvfs.h:42
fsblkcnt64_t f_bfree
Definition statvfs.h:46
unsigned long f_frsize
Definition statvfs.h:44
fsblkcnt64_t f_blocks
Definition statvfs.h:45
unsigned long f_bsize
Definition statvfs.h:43
unsigned long f_fsid
Definition statvfs.h:51
fsblkcnt64_t f_bavail
Definition statvfs.h:47
fsfilcnt64_t f_files
Definition statvfs.h:48
unsigned long f_namemax
Definition statvfs.h:53
fsfilcnt64_t f_ffree
Definition statvfs.h:49
fsfilcnt64_t f_favail
Definition statvfs.h:50
unsigned long f_flag
Definition statvfs.h:52
Definition statvfs.h:28
unsigned long f_namemax
Definition statvfs.h:39
unsigned long f_fsid
Definition statvfs.h:37
unsigned long f_bsize
Definition statvfs.h:29
fsblkcnt_t f_bavail
Definition statvfs.h:33
fsfilcnt_t f_files
Definition statvfs.h:34
fsfilcnt_t f_ffree
Definition statvfs.h:35
fsfilcnt_t f_favail
Definition statvfs.h:36
fsblkcnt_t f_blocks
Definition statvfs.h:31
fsblkcnt_t f_bfree
Definition statvfs.h:32
unsigned long f_flag
Definition statvfs.h:38
unsigned long f_frsize
Definition statvfs.h:30
Definition statvfs.h:57
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(fstatvfs64)
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(fstatvfs)
vsf_vplt_info_t info
Definition statvfs.h:58
VSF_APPLET_VPLT_ENTRY_FUNC_DEF(statvfs64)
Definition vsf_cfg.h:95
#define __VSF_VPLT_DECORATOR__
Definition vsf_cfg.h:93
#define VSF_APPLET_VPLT_ENTRY_FUNC_TRACE()
Definition vsf_cfg.h:165