mirror of
git://git.musl-libc.org/musl
synced 2024-12-27 01:02:12 +00:00
3b94daba71
this is ugly and stupid, but now that the *64 symbol names exist, a lot of broken GNU software detects them in configure, then either breaks during build due to missing off64_t definition, or attempts to compile without function declarations/prototypes. "fixing" it here is easier than telling everyone to add yet another feature test macro to their builds.
56 lines
1.1 KiB
C
56 lines
1.1 KiB
C
#ifndef _SYS_STATVFS_H
|
|
#define _SYS_STATVFS_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define __NEED_fsblkcnt_t
|
|
#define __NEED_fsfilcnt_t
|
|
#include <bits/alltypes.h>
|
|
|
|
#include <endian.h>
|
|
|
|
struct statvfs {
|
|
unsigned long f_bsize, f_frsize;
|
|
fsblkcnt_t f_blocks, f_bfree, f_bavail;
|
|
fsfilcnt_t f_files, f_ffree, f_favail;
|
|
#if __BYTE_ORDER == __LITTLE_ENDIAN
|
|
unsigned long f_fsid;
|
|
unsigned :8*(2*sizeof(int)-sizeof(long));
|
|
#else
|
|
unsigned :8*(2*sizeof(int)-sizeof(long));
|
|
unsigned long f_fsid;
|
|
#endif
|
|
unsigned long f_flag, f_namemax;
|
|
int __reserved[6];
|
|
};
|
|
|
|
int statvfs (const char *, struct statvfs *);
|
|
int fstatvfs (int, struct statvfs *);
|
|
|
|
#define ST_RDONLY 1
|
|
#define ST_NOSUID 2
|
|
#define ST_NODEV 4
|
|
#define ST_NOEXEC 8
|
|
#define ST_SYNCHRONOUS 16
|
|
#define ST_MANDLOCK 64
|
|
#define ST_WRITE 128
|
|
#define ST_APPEND 256
|
|
#define ST_IMMUTABLE 512
|
|
#define ST_NOATIME 1024
|
|
#define ST_NODIRATIME 2048
|
|
|
|
#if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)
|
|
#define statvfs64 statvfs
|
|
#define fstatvfs64 fstatvfs
|
|
#define fsblkcnt64_t fsblkcnt_t
|
|
#define fsfilcnt64_t fsfilcnt_t
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|