mirror of
https://git.musl-libc.org/git/musl
synced 2025-01-23 06:32:05 +03:00
400c5e5c83
to deal with the fact that the public headers may be used with pre-c99 compilers, __restrict is used in place of restrict, and defined appropriately for any supported compiler. we also avoid the form [restrict] since older versions of gcc rejected it due to a bug in the original c99 standard, and instead use the form *restrict.
62 lines
1.2 KiB
C
62 lines
1.2 KiB
C
#ifndef _SYS_STATVFS_H
|
|
#define _SYS_STATVFS_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if __STDC_VERSION__ >= 199901L
|
|
#define __restrict restrict
|
|
#elif !defined(__GNUC__)
|
|
#define __restrict
|
|
#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 *__restrict, struct statvfs *__restrict);
|
|
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
|