Revert "Roll NDK to r11c and extract it into its own repository."
[android_tools.git] / ndk / platforms / android-21 / arch-arm64 / usr / include / sys / vfs.h
blob5358ffb8a2ddc3946b95c459e0b583683924a7a0
1 /*
2 * Copyright (C) 2008 The Android Open Source Project
3 * All rights reserved.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in
12 * the documentation and/or other materials provided with the
13 * distribution.
15 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
18 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
19 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
21 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
22 * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
23 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
25 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE.
28 #ifndef _SYS_VFS_H_
29 #define _SYS_VFS_H_
31 #include <stdint.h>
32 #include <sys/cdefs.h>
33 #include <sys/types.h>
35 __BEGIN_DECLS
37 /* The kernel's __kernel_fsid_t has a 'val' member but glibc uses '__val'. */
38 typedef struct { int __val[2]; } __fsid_t;
39 typedef __fsid_t fsid_t;
41 #if defined(__aarch64__) || defined(__x86_64__)
42 #define __STATFS64_BODY \
43 uint64_t f_type; \
44 uint64_t f_bsize; \
45 uint64_t f_blocks; \
46 uint64_t f_bfree; \
47 uint64_t f_bavail; \
48 uint64_t f_files; \
49 uint64_t f_ffree; \
50 fsid_t f_fsid; \
51 uint64_t f_namelen; \
52 uint64_t f_frsize; \
53 uint64_t f_flags; \
54 uint64_t f_spare[4]; \
56 #elif defined(__mips__) && defined(__LP64__)
57 /* 64-bit MIPS. */
58 #define __STATFS64_BODY \
59 uint64_t f_type; \
60 uint64_t f_bsize; \
61 uint64_t f_frsize; /* Fragment size - unsupported. */ \
62 uint64_t f_blocks; \
63 uint64_t f_bfree; \
64 uint64_t f_files; \
65 uint64_t f_ffree; \
66 uint64_t f_bavail; \
67 fsid_t f_fsid; \
68 uint64_t f_namelen; \
69 uint64_t f_flags; \
70 uint64_t f_spare[5]; \
72 #elif defined(__mips__)
73 /* 32-bit MIPS (corresponds to the kernel's statfs64 type). */
74 #define __STATFS64_BODY \
75 uint32_t f_type; \
76 uint32_t f_bsize; \
77 uint32_t f_frsize; \
78 uint32_t __pad; \
79 uint64_t f_blocks; \
80 uint64_t f_bfree; \
81 uint64_t f_files; \
82 uint64_t f_ffree; \
83 uint64_t f_bavail; \
84 fsid_t f_fsid; \
85 uint32_t f_namelen; \
86 uint32_t f_flags; \
87 uint32_t f_spare[5]; \
89 #else
90 /* 32-bit ARM or x86 (corresponds to the kernel's statfs64 type). */
91 #define __STATFS64_BODY \
92 uint32_t f_type; \
93 uint32_t f_bsize; \
94 uint64_t f_blocks; \
95 uint64_t f_bfree; \
96 uint64_t f_bavail; \
97 uint64_t f_files; \
98 uint64_t f_ffree; \
99 fsid_t f_fsid; \
100 uint32_t f_namelen; \
101 uint32_t f_frsize; \
102 uint32_t f_flags; \
103 uint32_t f_spare[4]; \
105 #endif
107 struct statfs { __STATFS64_BODY };
108 struct statfs64 { __STATFS64_BODY };
110 #undef __STATFS64_BODY
112 /* Declare that we have the f_namelen, f_frsize, and f_flags fields. */
113 #define _STATFS_F_NAMELEN
114 #define _STATFS_F_FRSIZE
115 #define _STATFS_F_FLAGS
117 #define ADFS_SUPER_MAGIC 0xadf5
118 #define AFFS_SUPER_MAGIC 0xADFF
119 #define BEFS_SUPER_MAGIC 0x42465331
120 #define BFS_MAGIC 0x1BADFACE
121 #define CIFS_MAGIC_NUMBER 0xFF534D42
122 #define CODA_SUPER_MAGIC 0x73757245
123 #define COH_SUPER_MAGIC 0x012FF7B7
124 #define CRAMFS_MAGIC 0x28cd3d45
125 #define DEVFS_SUPER_MAGIC 0x1373
126 #define EFS_SUPER_MAGIC 0x00414A53
127 #define EXT_SUPER_MAGIC 0x137D
128 #define EXT2_OLD_SUPER_MAGIC 0xEF51
129 #define EXT2_SUPER_MAGIC 0xEF53
130 #define EXT3_SUPER_MAGIC 0xEF53
131 #define HFS_SUPER_MAGIC 0x4244
132 #define HPFS_SUPER_MAGIC 0xF995E849
133 #define HUGETLBFS_MAGIC 0x958458f6
134 #define ISOFS_SUPER_MAGIC 0x9660
135 #define JFFS2_SUPER_MAGIC 0x72b6
136 #define JFS_SUPER_MAGIC 0x3153464a
137 #define MINIX_SUPER_MAGIC 0x137F /* orig. minix */
138 #define MINIX_SUPER_MAGIC2 0x138F /* 30 char minix */
139 #define MINIX2_SUPER_MAGIC 0x2468 /* minix V2 */
140 #define MINIX2_SUPER_MAGIC2 0x2478 /* minix V2, 30 char names */
141 #define MSDOS_SUPER_MAGIC 0x4d44
142 #define NCP_SUPER_MAGIC 0x564c
143 #define NFS_SUPER_MAGIC 0x6969
144 #define NTFS_SB_MAGIC 0x5346544e
145 #define OPENPROM_SUPER_MAGIC 0x9fa1
146 #define PROC_SUPER_MAGIC 0x9fa0
147 #define QNX4_SUPER_MAGIC 0x002f
148 #define REISERFS_SUPER_MAGIC 0x52654973
149 #define ROMFS_MAGIC 0x7275
150 #define SMB_SUPER_MAGIC 0x517B
151 #define SYSV2_SUPER_MAGIC 0x012FF7B6
152 #define SYSV4_SUPER_MAGIC 0x012FF7B5
153 #define TMPFS_MAGIC 0x01021994
154 #define UDF_SUPER_MAGIC 0x15013346
155 #define UFS_MAGIC 0x00011954
156 #define USBDEVICE_SUPER_MAGIC 0x9fa2
157 #define VXFS_SUPER_MAGIC 0xa501FCF5
158 #define XENIX_SUPER_MAGIC 0x012FF7B4
159 #define XFS_SUPER_MAGIC 0x58465342
160 #define _XIAFS_SUPER_MAGIC 0x012FD16D
162 extern int statfs(const char*, struct statfs*) __nonnull((1, 2));
163 extern int statfs64(const char*, struct statfs64*) __nonnull((1, 2));
164 extern int fstatfs(int, struct statfs*) __nonnull((2));
165 extern int fstatfs64(int, struct statfs64*) __nonnull((2));
167 __END_DECLS
169 #endif /* _SYS_VFS_H_ */