1202375Srdivacky#pragma once
2202375Srdivacky
3202375Srdivacky#ifdef __cplusplus
4202375Srdivackyextern "C" {
5202375Srdivacky#endif
6202375Srdivacky
7202375Srdivacky#include <features.h>
8202375Srdivacky
9202375Srdivacky#define __NEED_fsblkcnt_t
10202375Srdivacky#define __NEED_fsfilcnt_t
11202375Srdivacky#include <bits/alltypes.h>
12202375Srdivacky
13202375Srdivacky#include <endian.h>
14202375Srdivacky
15202375Srdivackystruct statvfs {
16226633Sdim    unsigned long f_bsize, f_frsize;
17207618Srdivacky    fsblkcnt_t f_blocks, f_bfree, f_bavail;
18202375Srdivacky    fsfilcnt_t f_files, f_ffree, f_favail;
19202375Srdivacky#if __BYTE_ORDER == __LITTLE_ENDIAN
20202375Srdivacky    unsigned long f_fsid;
21202375Srdivacky    unsigned : 8 * (2 * sizeof(int) - sizeof(long));
22202375Srdivacky#else
23202375Srdivacky    unsigned : 8 * (2 * sizeof(int) - sizeof(long));
24202375Srdivacky    unsigned long f_fsid;
25202375Srdivacky#endif
26202375Srdivacky    unsigned long f_flag, f_namemax;
27202375Srdivacky    int __reserved[6];
28218893Sdim};
29202375Srdivacky
30202375Srdivackyint statvfs(const char* __restrict, struct statvfs* __restrict);
31218893Sdimint fstatvfs(int, struct statvfs*);
32202375Srdivacky
33202375Srdivacky#define ST_RDONLY 1
34218893Sdim#define ST_NOSUID 2
35218893Sdim#define ST_NODEV 4
36202375Srdivacky#define ST_NOEXEC 8
37202375Srdivacky#define ST_SYNCHRONOUS 16
38202375Srdivacky#define ST_MANDLOCK 64
39202375Srdivacky#define ST_WRITE 128
40202375Srdivacky#define ST_APPEND 256
41202375Srdivacky#define ST_IMMUTABLE 512
42202375Srdivacky#define ST_NOATIME 1024
43202375Srdivacky#define ST_NODIRATIME 2048
44202375Srdivacky
45202375Srdivacky#ifdef __cplusplus
46202375Srdivacky}
47202375Srdivacky#endif
48202375Srdivacky