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