summaryrefslogtreecommitdiffstats
path: root/usr/include/sys/vfs.h
blob: 6fb1eabc80868da8dadff43a1c662f7cc6a9a921 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
/*
 * sys/vfs.h
 */

#ifndef _SYS_VFS_H
#define _SYS_VFS_H

#include <stdint.h>
#include <klibc/extern.h>
#include <sys/types.h>
#include <bitsize.h>
#include <klibc/sysconfig.h>

/* struct statfs64 -- there seems to be two standards -
   one for 32 and one for 64 bits, and they're incompatible.
   Worse, some 64-bit platforms seem to use the 32-bit layout.
   Of course, there is no includable header that does this well. */

#if _KLIBC_STATFS_F_TYPE_64

struct statfs {
	uint64_t f_type;
	uint64_t f_bsize;
	uint64_t f_blocks;
	uint64_t f_bfree;
	uint64_t f_bavail;
	uint64_t f_files;
	uint64_t f_ffree;
	__kernel_fsid_t f_fsid;
	uint64_t f_namelen;
	uint64_t f_frsize;
	uint64_t f_spare[5];
};

#elif _KLIBC_STATFS_F_TYPE_32B

struct statfs {
	uint32_t f_type;
	uint32_t f_bsize;
	uint32_t f_frsize;
	uint32_t __pad;
	uint64_t f_blocks;
	uint64_t f_bfree;
	uint64_t f_files;
	uint64_t f_ffree;
	uint64_t f_bavail;
	__kernel_fsid_t f_fsid;
	uint32_t f_namelen;
	uint32_t f_spare[6];
};

#else /* not _KLIBC_STATFS_F_TYPE_64 */

struct statfs {
	uint32_t f_type;
	uint32_t f_bsize;
	uint64_t f_blocks;
	uint64_t f_bfree;
	uint64_t f_bavail;
	uint64_t f_files;
	uint64_t f_ffree;
	__kernel_fsid_t f_fsid;
	uint32_t f_namelen;
	uint32_t f_frsize;
	uint32_t f_spare[5];
};

#endif /* _KLIBC_STATFS_F_TYPE_64 */

__extern int statfs(const char *, struct statfs *);
__extern int fstatfs(int, struct statfs *);

/* Various filesystem types */
#define ADFS_SUPER_MAGIC	0xadf5
#define AFFS_SUPER_MAGIC	0xadff
#define AFS_FS_MAGIC		0x6B414653	/* 'kAFS' */
#define AUTOFS_SUPER_MAGIC	0x0187
#define BFS_MAGIC		0x1BADFACE
#define CAPIFS_SUPER_MAGIC	0x434e
#define CIFS_MAGIC_NUMBER	0xFF534D42
#define CODA_SUPER_MAGIC	0x73757245
#define CRAMFS_MAGIC		0x28cd3d45
#define DEVFS_SUPER_MAGIC	0x1373
#define DEVPTS_SUPER_MAGIC	0x1cd1
#define EFS_SUPER_MAGIC		0x414A53
#define EVENTPOLLFS_MAGIC	0x03111965
#define EXT2_SUPER_MAGIC	0xEF53
#define EXT3_SUPER_MAGIC	0xEF53
#define GADGETFS_MAGIC		0xaee71ee7
#define HFSPLUS_SUPER_MAGIC	0x482b
#define HFS_MFS_SUPER_MAGIC	0xD2D7	/* MFS MDB (super block) */
#define HFS_SUPER_MAGIC		0x4244	/* "BD": HFS MDB (super block) */
#define HPFS_SUPER_MAGIC 0xf995e849
#define HUGETLBFS_MAGIC		0x958458f6
#define HWGFS_MAGIC		0x12061983
#define IBMASMFS_MAGIC		0x66726f67
#define ISOFS_SUPER_MAGIC	0x9660
#define JFFS2_SUPER_MAGIC	0x72b6
#define JFFS_MAGIC_BITMASK	0x34383931	/* "1984" */
#define JFFS_MAGIC_SB_BITMASK	0x07c0	/* 1984 */
#define JFS_SUPER_MAGIC		0x3153464a	/* "JFS1" */
#define MINIX2_SUPER_MAGIC	0x2468	/* minix V2 fs */
#define MINIX2_SUPER_MAGIC2	0x2478	/* minix V2 fs, 30 char names */
#define MINIX_SUPER_MAGIC	0x137F	/* original minix fs */
#define MINIX_SUPER_MAGIC2	0x138F	/* minix fs, 30 char names */
#define MSDOS_SUPER_MAGIC	0x4d44	/* MD */
#define NCP_SUPER_MAGIC		0x564c
#define NFS_SUPER_MAGIC		0x6969
#define NFS_SUPER_MAGIC		0x6969
#define OPENPROM_SUPER_MAGIC	0x9fa1
#define OPROFILEFS_MAGIC	0x6f70726f
#define PFMFS_MAGIC		0xa0b4d889
#define PIPEFS_MAGIC		0x50495045
#define PROC_SUPER_MAGIC	0x9fa0
#define QNX4_SUPER_MAGIC	0x002f	/* qnx4 fs detection */
#define RAMFS_MAGIC		0x858458f6
#define REISERFS_SUPER_MAGIC	0x52654973
#define ROMFS_MAGIC		0x7275
#define SMB_SUPER_MAGIC		0x517B
#define SOCKFS_MAGIC		0x534F434B
#define SYSFS_MAGIC		0x62656572
#define TMPFS_MAGIC		0x01021994
#define UDF_SUPER_MAGIC		0x15013346
#define UFS_MAGIC		0x00011954
#define UFS_MAGIC_4GB		0x05231994	/* fs > 4 GB && fs_featurebits */
#define UFS_MAGIC_FEA		0x00195612	/* fs_featurebits supported */
#define UFS_MAGIC_LFN		0x00095014	/* fs supports filenames > 14 chars */
#define UFS_MAGIC_SEC		0x00612195	/* B1 security fs */
#define USBDEVICE_SUPER_MAGIC	0x9fa2
#define VXFS_SUPER_MAGIC	0xa501FCF5

#endif				/* _SYS_VFS_H */