Green shading in the line number column means the source is part of the translation unit, red means it is conditionally excluded. Highlighted line numbers link to the translation unit page. Highlighted macros link to the macro page.
1: /* 2: * Copyright (c) 1982, 1986 Regents of the University of California. 3: * All rights reserved. 4: * 5: * This code is derived from software contributed to Berkeley by 6: * Robert Elz at The University of Melbourne. 7: * 8: * Redistribution and use in source and binary forms, with or without 9: * modification, are permitted provided that the following conditions 10: * are met: 11: * 1. Redistributions of source code must retain the above copyright 12: * notice, this list of conditions and the following disclaimer. 13: * 2. Redistributions in binary form must reproduce the above copyright 14: * notice, this list of conditions and the following disclaimer in the 15: * documentation and/or other materials provided with the distribution. 16: * 3. Neither the name of the University nor the names of its contributors 17: * may be used to endorse or promote products derived from this software 18: * without specific prior written permission. 19: * 20: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 24: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30: * SUCH DAMAGE. 31: */ 32: 33: #ifndef _UAPI_LINUX_QUOTA_ 34: #define _UAPI_LINUX_QUOTA_ 35: 36: #include <linux/errno.h> 37: #include <linux/types.h> 38: 39: #define __DQUOT_VERSION__ "dquot_6.5.2" 40: 41: #define MAXQUOTAS 2 42: #define USRQUOTA 0 /* element used for user quotas */ 43: #define GRPQUOTA 1 /* element used for group quotas */ 44: 45: /* 46: * Definitions for the default names of the quotas files. 47: */ 48: #define INITQFNAMES { \ 49: "user", /* USRQUOTA */ \ 50: "group", /* GRPQUOTA */ \ 51: "undefined", \ 52: }; 53: 54: /* 55: * Command definitions for the 'quotactl' system call. 56: * The commands are broken into a main command defined below 57: * and a subcommand that is used to convey the type of 58: * quota that is being manipulated (see above). 59: */ 60: #define SUBCMDMASK 0x00ff 61: #define SUBCMDSHIFT 8 62: #define QCMD(cmd, type) (((cmd) << SUBCMDSHIFT) | ((type) & SUBCMDMASK)) 63: 64: #define Q_SYNC 0x800001 /* sync disk copy of a filesystems quotas */ 65: #define Q_QUOTAON 0x800002 /* turn quotas on */ 66: #define Q_QUOTAOFF 0x800003 /* turn quotas off */ 67: #define Q_GETFMT 0x800004 /* get quota format used on given filesystem */ 68: #define Q_GETINFO 0x800005 /* get information about quota files */ 69: #define Q_SETINFO 0x800006 /* set information about quota files */ 70: #define Q_GETQUOTA 0x800007 /* get user quota structure */ 71: #define Q_SETQUOTA 0x800008 /* set user quota structure */ 72: 73: /* Quota format type IDs */ 74: #define QFMT_VFS_OLD 1 75: #define QFMT_VFS_V0 2 76: #define QFMT_OCFS2 3 77: #define QFMT_VFS_V1 4 78: 79: /* Size of block in which space limits are passed through the quota 80: * interface */ 81: #define QIF_DQBLKSIZE_BITS 10 82: #define QIF_DQBLKSIZE (1 << QIF_DQBLKSIZE_BITS) 83: 84: /* 85: * Quota structure used for communication with userspace via quotactl 86: * Following flags are used to specify which fields are valid 87: */ 88: enum { 89: QIF_BLIMITS_B = 0, 90: QIF_SPACE_B, 91: QIF_ILIMITS_B, 92: QIF_INODES_B, 93: QIF_BTIME_B, 94: QIF_ITIME_B, 95: }; 96: 97: #define QIF_BLIMITS (1 << QIF_BLIMITS_B) 98: #define QIF_SPACE (1 << QIF_SPACE_B) 99: #define QIF_ILIMITS (1 << QIF_ILIMITS_B) 100: #define QIF_INODES (1 << QIF_INODES_B) 101: #define QIF_BTIME (1 << QIF_BTIME_B) 102: #define QIF_ITIME (1 << QIF_ITIME_B) 103: #define QIF_LIMITS (QIF_BLIMITS | QIF_ILIMITS) 104: #define QIF_USAGE (QIF_SPACE | QIF_INODES) 105: #define QIF_TIMES (QIF_BTIME | QIF_ITIME) 106: #define QIF_ALL (QIF_LIMITS | QIF_USAGE | QIF_TIMES) 107: 108: struct if_dqblk { 109: __u64 dqb_bhardlimit; 110: __u64 dqb_bsoftlimit; 111: __u64 dqb_curspace; 112: __u64 dqb_ihardlimit; 113: __u64 dqb_isoftlimit; 114: __u64 dqb_curinodes; 115: __u64 dqb_btime; 116: __u64 dqb_itime; 117: __u32 dqb_valid; 118: }; 119: 120: /* 121: * Structure used for setting quota information about file via quotactl 122: * Following flags are used to specify which fields are valid 123: */ 124: #define IIF_BGRACE 1 125: #define IIF_IGRACE 2 126: #define IIF_FLAGS 4 127: #define IIF_ALL (IIF_BGRACE | IIF_IGRACE | IIF_FLAGS) 128: 129: struct if_dqinfo { 130: __u64 dqi_bgrace; 131: __u64 dqi_igrace; 132: __u32 dqi_flags; 133: __u32 dqi_valid; 134: }; 135: 136: /* 137: * Definitions for quota netlink interface 138: */ 139: #define QUOTA_NL_NOWARN 0 140: #define QUOTA_NL_IHARDWARN 1 /* Inode hardlimit reached */ 141: #define QUOTA_NL_ISOFTLONGWARN 2 /* Inode grace time expired */ 142: #define QUOTA_NL_ISOFTWARN 3 /* Inode softlimit reached */ 143: #define QUOTA_NL_BHARDWARN 4 /* Block hardlimit reached */ 144: #define QUOTA_NL_BSOFTLONGWARN 5 /* Block grace time expired */ 145: #define QUOTA_NL_BSOFTWARN 6 /* Block softlimit reached */ 146: #define QUOTA_NL_IHARDBELOW 7 /* Usage got below inode hardlimit */ 147: #define QUOTA_NL_ISOFTBELOW 8 /* Usage got below inode softlimit */ 148: #define QUOTA_NL_BHARDBELOW 9 /* Usage got below block hardlimit */ 149: #define QUOTA_NL_BSOFTBELOW 10 /* Usage got below block softlimit */ 150: 151: enum { 152: QUOTA_NL_C_UNSPEC, 153: QUOTA_NL_C_WARNING, 154: __QUOTA_NL_C_MAX, 155: }; 156: #define QUOTA_NL_C_MAX (__QUOTA_NL_C_MAX - 1) 157: 158: enum { 159: QUOTA_NL_A_UNSPEC, 160: QUOTA_NL_A_QTYPE, 161: QUOTA_NL_A_EXCESS_ID, 162: QUOTA_NL_A_WARNING, 163: QUOTA_NL_A_DEV_MAJOR, 164: QUOTA_NL_A_DEV_MINOR, 165: QUOTA_NL_A_CAUSED_ID, 166: __QUOTA_NL_A_MAX, 167: }; 168: #define QUOTA_NL_A_MAX (__QUOTA_NL_A_MAX - 1) 169: 170: 171: #endif /* _UAPI_LINUX_QUOTA_ */ 172: