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 _LINUX_DQBLK_XFS_H 7 #define _LINUX_DQBLK_XFS_H 8 #include <linux/types.h> 9 #define XQM_CMD(x) (('X'<<8)+(x)) 10 #define XQM_COMMAND(x) (((x) & (0xff<<8)) == ('X'<<8)) 11 #define XQM_USRQUOTA 0 12 #define XQM_GRPQUOTA 1 13 #define XQM_PRJQUOTA 2 14 #define XQM_MAXQUOTAS 3 15 #define Q_XQUOTAON XQM_CMD(1) 16 #define Q_XQUOTAOFF XQM_CMD(2) 17 #define Q_XGETQUOTA XQM_CMD(3) 18 #define Q_XSETQLIM XQM_CMD(4) 19 #define Q_XGETQSTAT XQM_CMD(5) 20 #define Q_XQUOTARM XQM_CMD(6) 21 #define Q_XQUOTASYNC XQM_CMD(7) 22 #define Q_XGETQSTATV XQM_CMD(8) 23 #define Q_XGETNEXTQUOTA XQM_CMD(9) 24 #define FS_DQUOT_VERSION 1 25 typedef struct fs_disk_quota { 26 __s8 d_version; 27 __s8 d_flags; 28 __u16 d_fieldmask; 29 __u32 d_id; 30 __u64 d_blk_hardlimit; 31 __u64 d_blk_softlimit; 32 __u64 d_ino_hardlimit; 33 __u64 d_ino_softlimit; 34 __u64 d_bcount; 35 __u64 d_icount; 36 __s32 d_itimer; 37 38 __s32 d_btimer; 39 __u16 d_iwarns; 40 __u16 d_bwarns; 41 __s32 d_padding2; 42 __u64 d_rtb_hardlimit; 43 __u64 d_rtb_softlimit; 44 __u64 d_rtbcount; 45 __s32 d_rtbtimer; 46 __u16 d_rtbwarns; 47 __s16 d_padding3; 48 char d_padding4[8]; 49 } fs_disk_quota_t; 50 #define FS_DQ_ISOFT (1<<0) 51 #define FS_DQ_IHARD (1<<1) 52 #define FS_DQ_BSOFT (1<<2) 53 #define FS_DQ_BHARD (1<<3) 54 #define FS_DQ_RTBSOFT (1<<4) 55 #define FS_DQ_RTBHARD (1<<5) 56 #define FS_DQ_LIMIT_MASK (FS_DQ_ISOFT | FS_DQ_IHARD | FS_DQ_BSOFT | \ 57 FS_DQ_BHARD | FS_DQ_RTBSOFT | FS_DQ_RTBHARD) 58 #define FS_DQ_BTIMER (1<<6) 59 #define FS_DQ_ITIMER (1<<7) 60 #define FS_DQ_RTBTIMER (1<<8) 61 #define FS_DQ_TIMER_MASK (FS_DQ_BTIMER | FS_DQ_ITIMER | FS_DQ_RTBTIMER) 62 #define FS_DQ_BWARNS (1<<9) 63 #define FS_DQ_IWARNS (1<<10) 64 #define FS_DQ_RTBWARNS (1<<11) 65 #define FS_DQ_WARNS_MASK (FS_DQ_BWARNS | FS_DQ_IWARNS | FS_DQ_RTBWARNS) 66 #define FS_DQ_BCOUNT (1<<12) 67 #define FS_DQ_ICOUNT (1<<13) 68 #define FS_DQ_RTBCOUNT (1<<14) 69 #define FS_DQ_ACCT_MASK (FS_DQ_BCOUNT | FS_DQ_ICOUNT | FS_DQ_RTBCOUNT) 70 #define FS_QUOTA_UDQ_ACCT (1<<0) 71 #define FS_QUOTA_UDQ_ENFD (1<<1) 72 #define FS_QUOTA_GDQ_ACCT (1<<2) 73 #define FS_QUOTA_GDQ_ENFD (1<<3) 74 #define FS_QUOTA_PDQ_ACCT (1<<4) 75 #define FS_QUOTA_PDQ_ENFD (1<<5) 76 #define FS_USER_QUOTA (1<<0) 77 #define FS_PROJ_QUOTA (1<<1) 78 #define FS_GROUP_QUOTA (1<<2) 79 #define FS_QSTAT_VERSION 1 80 typedef struct fs_qfilestat { 81 __u64 qfs_ino; 82 __u64 qfs_nblks; 83 __u32 qfs_nextents; 84 } fs_qfilestat_t; 85 typedef struct fs_quota_stat { 86 __s8 qs_version; 87 __u16 qs_flags; 88 __s8 qs_pad; 89 fs_qfilestat_t qs_uquota; 90 fs_qfilestat_t qs_gquota; 91 __u32 qs_incoredqs; 92 __s32 qs_btimelimit; 93 __s32 qs_itimelimit; 94 __s32 qs_rtbtimelimit; 95 __u16 qs_bwarnlimit; 96 __u16 qs_iwarnlimit; 97 } fs_quota_stat_t; 98 #define FS_QSTATV_VERSION1 1 99 struct fs_qfilestatv { 100 __u64 qfs_ino; 101 __u64 qfs_nblks; 102 __u32 qfs_nextents; 103 __u32 qfs_pad; 104 }; 105 struct fs_quota_statv { 106 __s8 qs_version; 107 __u8 qs_pad1; 108 __u16 qs_flags; 109 __u32 qs_incoredqs; 110 struct fs_qfilestatv qs_uquota; 111 struct fs_qfilestatv qs_gquota; 112 struct fs_qfilestatv qs_pquota; 113 __s32 qs_btimelimit; 114 __s32 qs_itimelimit; 115 __s32 qs_rtbtimelimit; 116 __u16 qs_bwarnlimit; 117 __u16 qs_iwarnlimit; 118 __u64 qs_pad2[8]; 119 }; 120 #endif 121