github.com/afumu/libc@v0.0.6/musl/include/sys/quota.h (about)

     1  #ifndef _SYS_QUOTA_H
     2  #define _SYS_QUOTA_H
     3  
     4  #ifdef __cplusplus
     5  extern "C" {
     6  #endif
     7  
     8  #include <stdint.h>
     9  
    10  #define _LINUX_QUOTA_VERSION 2
    11  
    12  #define dbtob(num) ((num) << 10)
    13  #define btodb(num) ((num) >> 10)
    14  #define fs_to_dq_blocks(num, blksize) (((num) * (blksize)) / 1024)
    15  
    16  #define MAX_IQ_TIME 604800
    17  #define MAX_DQ_TIME 604800
    18  
    19  #define MAXQUOTAS 2
    20  #define USRQUOTA  0
    21  #define GRPQUOTA  1
    22  
    23  #define INITQFNAMES { "user", "group", "undefined" };
    24  
    25  #define QUOTAFILENAME "quota"
    26  #define QUOTAGROUP "staff"
    27  
    28  #define NR_DQHASH 43
    29  #define NR_DQUOTS 256
    30  
    31  #define SUBCMDMASK       0x00ff
    32  #define SUBCMDSHIFT      8
    33  #define QCMD(cmd, type)  (((cmd) << SUBCMDSHIFT) | ((type) & SUBCMDMASK))
    34  
    35  #define Q_SYNC     0x800001
    36  #define Q_QUOTAON  0x800002
    37  #define Q_QUOTAOFF 0x800003
    38  #define Q_GETFMT   0x800004
    39  #define Q_GETINFO  0x800005
    40  #define Q_SETINFO  0x800006
    41  #define Q_GETQUOTA 0x800007
    42  #define Q_SETQUOTA 0x800008
    43  
    44  #define	QFMT_VFS_OLD 1
    45  #define	QFMT_VFS_V0 2
    46  #define QFMT_OCFS2 3
    47  #define	QFMT_VFS_V1 4
    48  
    49  #define QIF_BLIMITS	1
    50  #define QIF_SPACE	2
    51  #define QIF_ILIMITS	4
    52  #define QIF_INODES	8
    53  #define QIF_BTIME	16
    54  #define QIF_ITIME	32
    55  #define QIF_LIMITS	(QIF_BLIMITS | QIF_ILIMITS)
    56  #define QIF_USAGE	(QIF_SPACE | QIF_INODES)
    57  #define QIF_TIMES	(QIF_BTIME | QIF_ITIME)
    58  #define QIF_ALL		(QIF_LIMITS | QIF_USAGE | QIF_TIMES)
    59  
    60  struct dqblk {
    61  	uint64_t dqb_bhardlimit;
    62  	uint64_t dqb_bsoftlimit;
    63  	uint64_t dqb_curspace;
    64  	uint64_t dqb_ihardlimit;
    65  	uint64_t dqb_isoftlimit;
    66  	uint64_t dqb_curinodes;
    67  	uint64_t dqb_btime;
    68  	uint64_t dqb_itime;
    69  	uint32_t dqb_valid;
    70  };
    71  
    72  #define	dq_bhardlimit	dq_dqb.dqb_bhardlimit
    73  #define	dq_bsoftlimit	dq_dqb.dqb_bsoftlimit
    74  #define dq_curspace	dq_dqb.dqb_curspace
    75  #define dq_valid	dq_dqb.dqb_valid
    76  #define	dq_ihardlimit	dq_dqb.dqb_ihardlimit
    77  #define	dq_isoftlimit	dq_dqb.dqb_isoftlimit
    78  #define	dq_curinodes	dq_dqb.dqb_curinodes
    79  #define	dq_btime	dq_dqb.dqb_btime
    80  #define	dq_itime	dq_dqb.dqb_itime
    81  
    82  #define dqoff(UID)      ((long long)(UID) * sizeof (struct dqblk))
    83  
    84  #define IIF_BGRACE	1
    85  #define IIF_IGRACE	2
    86  #define IIF_FLAGS	4
    87  #define IIF_ALL		(IIF_BGRACE | IIF_IGRACE | IIF_FLAGS)
    88  
    89  struct dqinfo {
    90  	uint64_t dqi_bgrace;
    91  	uint64_t dqi_igrace;
    92  	uint32_t dqi_flags;
    93  	uint32_t dqi_valid;
    94  };
    95  
    96  int quotactl(int, const char *, int, char *);
    97  
    98  #ifdef __cplusplus
    99  }
   100  #endif
   101  
   102  #endif