• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * This header was generated from the Linux kernel headers by update_headers.py,
3  * to provide necessary information from kernel to userspace, such as constants,
4  * structures, and macros, and thus, contains no copyrightable information.
5  */
6 #ifndef _UAPI_LINUX_QUOTA_
7 #define _UAPI_LINUX_QUOTA_
8 #include <linux/types.h>
9 #define __DQUOT_VERSION__	"dquot_6.6.0"
10 #define MAXQUOTAS 3
11 #define USRQUOTA  0
12 #define GRPQUOTA  1
13 #define PRJQUOTA  2
14 #define INITQFNAMES { \
15 	"user",     \
16 	"group",    \
17 	"project",  \
18 	"undefined", \
19 };
20 #define SUBCMDMASK  0x00ff
21 #define SUBCMDSHIFT 8
22 #define QCMD(cmd, type)  (((cmd) << SUBCMDSHIFT) | ((type) & SUBCMDMASK))
23 #define Q_SYNC     0x800001
24 #define Q_QUOTAON  0x800002
25 #define Q_QUOTAOFF 0x800003
26 #define Q_GETFMT   0x800004
27 #define Q_GETINFO  0x800005
28 #define Q_SETINFO  0x800006
29 #define Q_GETQUOTA 0x800007
30 #define Q_SETQUOTA 0x800008
31 #define Q_GETNEXTQUOTA 0x800009
32 #define	QFMT_VFS_OLD 1
33 #define	QFMT_VFS_V0 2
34 #define QFMT_OCFS2 3
35 #define	QFMT_VFS_V1 4
36 #define QIF_DQBLKSIZE_BITS 10
37 #define QIF_DQBLKSIZE (1 << QIF_DQBLKSIZE_BITS)
38 enum {
39 	QIF_BLIMITS_B = 0,
40 	QIF_SPACE_B,
41 	QIF_ILIMITS_B,
42 	QIF_INODES_B,
43 	QIF_BTIME_B,
44 	QIF_ITIME_B,
45 };
46 #define QIF_BLIMITS	(1 << QIF_BLIMITS_B)
47 #define QIF_SPACE	(1 << QIF_SPACE_B)
48 #define QIF_ILIMITS	(1 << QIF_ILIMITS_B)
49 #define QIF_INODES	(1 << QIF_INODES_B)
50 #define QIF_BTIME	(1 << QIF_BTIME_B)
51 #define QIF_ITIME	(1 << QIF_ITIME_B)
52 #define QIF_LIMITS	(QIF_BLIMITS | QIF_ILIMITS)
53 #define QIF_USAGE	(QIF_SPACE | QIF_INODES)
54 #define QIF_TIMES	(QIF_BTIME | QIF_ITIME)
55 #define QIF_ALL		(QIF_LIMITS | QIF_USAGE | QIF_TIMES)
56 struct if_dqblk {
57 	__u64 dqb_bhardlimit;
58 	__u64 dqb_bsoftlimit;
59 	__u64 dqb_curspace;
60 	__u64 dqb_ihardlimit;
61 	__u64 dqb_isoftlimit;
62 	__u64 dqb_curinodes;
63 	__u64 dqb_btime;
64 	__u64 dqb_itime;
65 	__u32 dqb_valid;
66 };
67 struct if_nextdqblk {
68 	__u64 dqb_bhardlimit;
69 	__u64 dqb_bsoftlimit;
70 	__u64 dqb_curspace;
71 	__u64 dqb_ihardlimit;
72 	__u64 dqb_isoftlimit;
73 	__u64 dqb_curinodes;
74 	__u64 dqb_btime;
75 	__u64 dqb_itime;
76 	__u32 dqb_valid;
77 	__u32 dqb_id;
78 };
79 #define IIF_BGRACE	1
80 #define IIF_IGRACE	2
81 #define IIF_FLAGS	4
82 #define IIF_ALL		(IIF_BGRACE | IIF_IGRACE | IIF_FLAGS)
83 enum {
84 	DQF_ROOT_SQUASH_B = 0,
85 	DQF_SYS_FILE_B = 16,
86 
87 	DQF_PRIVATE
88 };
89 #define DQF_ROOT_SQUASH	(1 << DQF_ROOT_SQUASH_B)
90 #define DQF_SYS_FILE	(1 << DQF_SYS_FILE_B)
91 struct if_dqinfo {
92 	__u64 dqi_bgrace;
93 	__u64 dqi_igrace;
94 	__u32 dqi_flags;
95 	__u32 dqi_valid;
96 };
97 #define QUOTA_NL_NOWARN 0
98 #define QUOTA_NL_IHARDWARN 1
99 #define QUOTA_NL_ISOFTLONGWARN 2
100 #define QUOTA_NL_ISOFTWARN 3
101 #define QUOTA_NL_BHARDWARN 4
102 #define QUOTA_NL_BSOFTLONGWARN 5
103 #define QUOTA_NL_BSOFTWARN 6
104 #define QUOTA_NL_IHARDBELOW 7
105 #define QUOTA_NL_ISOFTBELOW 8
106 #define QUOTA_NL_BHARDBELOW 9
107 #define QUOTA_NL_BSOFTBELOW 10
108 enum {
109 	QUOTA_NL_C_UNSPEC,
110 	QUOTA_NL_C_WARNING,
111 	__QUOTA_NL_C_MAX,
112 };
113 #define QUOTA_NL_C_MAX (__QUOTA_NL_C_MAX - 1)
114 enum {
115 	QUOTA_NL_A_UNSPEC,
116 	QUOTA_NL_A_QTYPE,
117 	QUOTA_NL_A_EXCESS_ID,
118 	QUOTA_NL_A_WARNING,
119 	QUOTA_NL_A_DEV_MAJOR,
120 	QUOTA_NL_A_DEV_MINOR,
121 	QUOTA_NL_A_CAUSED_ID,
122 	QUOTA_NL_A_PAD,
123 	__QUOTA_NL_A_MAX,
124 };
125 #define QUOTA_NL_A_MAX (__QUOTA_NL_A_MAX - 1)
126 #endif
127