1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef _LINUX_DQBLK_XFS_H
20 #define _LINUX_DQBLK_XFS_H
21 #include <linux/types.h>
22 #define XQM_CMD(x) (('X' << 8) + (x))
23 #define XQM_COMMAND(x) (((x) & (0xff << 8)) == ('X' << 8))
24 #define XQM_USRQUOTA 0
25 #define XQM_GRPQUOTA 1
26 #define XQM_PRJQUOTA 2
27 #define XQM_MAXQUOTAS 3
28 #define Q_XQUOTAON XQM_CMD(1)
29 #define Q_XQUOTAOFF XQM_CMD(2)
30 #define Q_XGETQUOTA XQM_CMD(3)
31 #define Q_XSETQLIM XQM_CMD(4)
32 #define Q_XGETQSTAT XQM_CMD(5)
33 #define Q_XQUOTARM XQM_CMD(6)
34 #define Q_XQUOTASYNC XQM_CMD(7)
35 #define Q_XGETQSTATV XQM_CMD(8)
36 #define Q_XGETNEXTQUOTA XQM_CMD(9)
37 #define FS_DQUOT_VERSION 1
38 typedef struct fs_disk_quota {
39   __s8 d_version;
40   __s8 d_flags;
41   __u16 d_fieldmask;
42   __u32 d_id;
43   __u64 d_blk_hardlimit;
44   __u64 d_blk_softlimit;
45   __u64 d_ino_hardlimit;
46   __u64 d_ino_softlimit;
47   __u64 d_bcount;
48   __u64 d_icount;
49   __s32 d_itimer;
50   __s32 d_btimer;
51   __u16 d_iwarns;
52   __u16 d_bwarns;
53   __s8 d_itimer_hi;
54   __s8 d_btimer_hi;
55   __s8 d_rtbtimer_hi;
56   __s8 d_padding2;
57   __u64 d_rtb_hardlimit;
58   __u64 d_rtb_softlimit;
59   __u64 d_rtbcount;
60   __s32 d_rtbtimer;
61   __u16 d_rtbwarns;
62   __s16 d_padding3;
63   char d_padding4[8];
64 } fs_disk_quota_t;
65 #define FS_DQ_ISOFT (1 << 0)
66 #define FS_DQ_IHARD (1 << 1)
67 #define FS_DQ_BSOFT (1 << 2)
68 #define FS_DQ_BHARD (1 << 3)
69 #define FS_DQ_RTBSOFT (1 << 4)
70 #define FS_DQ_RTBHARD (1 << 5)
71 #define FS_DQ_LIMIT_MASK (FS_DQ_ISOFT | FS_DQ_IHARD | FS_DQ_BSOFT | FS_DQ_BHARD | FS_DQ_RTBSOFT | FS_DQ_RTBHARD)
72 #define FS_DQ_BTIMER (1 << 6)
73 #define FS_DQ_ITIMER (1 << 7)
74 #define FS_DQ_RTBTIMER (1 << 8)
75 #define FS_DQ_TIMER_MASK (FS_DQ_BTIMER | FS_DQ_ITIMER | FS_DQ_RTBTIMER)
76 #define FS_DQ_BWARNS (1 << 9)
77 #define FS_DQ_IWARNS (1 << 10)
78 #define FS_DQ_RTBWARNS (1 << 11)
79 #define FS_DQ_WARNS_MASK (FS_DQ_BWARNS | FS_DQ_IWARNS | FS_DQ_RTBWARNS)
80 #define FS_DQ_BCOUNT (1 << 12)
81 #define FS_DQ_ICOUNT (1 << 13)
82 #define FS_DQ_RTBCOUNT (1 << 14)
83 #define FS_DQ_ACCT_MASK (FS_DQ_BCOUNT | FS_DQ_ICOUNT | FS_DQ_RTBCOUNT)
84 #define FS_DQ_BIGTIME (1 << 15)
85 #define FS_QUOTA_UDQ_ACCT (1 << 0)
86 #define FS_QUOTA_UDQ_ENFD (1 << 1)
87 #define FS_QUOTA_GDQ_ACCT (1 << 2)
88 #define FS_QUOTA_GDQ_ENFD (1 << 3)
89 #define FS_QUOTA_PDQ_ACCT (1 << 4)
90 #define FS_QUOTA_PDQ_ENFD (1 << 5)
91 #define FS_USER_QUOTA (1 << 0)
92 #define FS_PROJ_QUOTA (1 << 1)
93 #define FS_GROUP_QUOTA (1 << 2)
94 #define FS_QSTAT_VERSION 1
95 typedef struct fs_qfilestat {
96   __u64 qfs_ino;
97   __u64 qfs_nblks;
98   __u32 qfs_nextents;
99 } fs_qfilestat_t;
100 typedef struct fs_quota_stat {
101   __s8 qs_version;
102   __u16 qs_flags;
103   __s8 qs_pad;
104   fs_qfilestat_t qs_uquota;
105   fs_qfilestat_t qs_gquota;
106   __u32 qs_incoredqs;
107   __s32 qs_btimelimit;
108   __s32 qs_itimelimit;
109   __s32 qs_rtbtimelimit;
110   __u16 qs_bwarnlimit;
111   __u16 qs_iwarnlimit;
112 } fs_quota_stat_t;
113 #define FS_QSTATV_VERSION1 1
114 struct fs_qfilestatv {
115   __u64 qfs_ino;
116   __u64 qfs_nblks;
117   __u32 qfs_nextents;
118   __u32 qfs_pad;
119 };
120 struct fs_quota_statv {
121   __s8 qs_version;
122   __u8 qs_pad1;
123   __u16 qs_flags;
124   __u32 qs_incoredqs;
125   struct fs_qfilestatv qs_uquota;
126   struct fs_qfilestatv qs_gquota;
127   struct fs_qfilestatv qs_pquota;
128   __s32 qs_btimelimit;
129   __s32 qs_itimelimit;
130   __s32 qs_rtbtimelimit;
131   __u16 qs_bwarnlimit;
132   __u16 qs_iwarnlimit;
133   __u64 qs_pad2[8];
134 };
135 #endif
136