1951a39d68df598db08dfced8b4707755864a0492Ying Wang/****************************************************************************
2951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************
3951a39d68df598db08dfced8b4707755864a0492Ying Wang ***
4951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   This header was automatically generated from a Linux kernel header
5951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   of the same name, to make information necessary for userspace to
6951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   call into the kernel available to libc.  It contains only constants,
7951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   structures, and macros generated from the original header, and thus,
8951a39d68df598db08dfced8b4707755864a0492Ying Wang ***   contains no copyrightable information.
9951a39d68df598db08dfced8b4707755864a0492Ying Wang ***
10951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************
11951a39d68df598db08dfced8b4707755864a0492Ying Wang ****************************************************************************/
12951a39d68df598db08dfced8b4707755864a0492Ying Wang#ifndef _LINUX_QUOTA_
13951a39d68df598db08dfced8b4707755864a0492Ying Wang#define _LINUX_QUOTA_
14951a39d68df598db08dfced8b4707755864a0492Ying Wang
15951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <linux/errno.h>
16951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <linux/types.h>
17951a39d68df598db08dfced8b4707755864a0492Ying Wang
18951a39d68df598db08dfced8b4707755864a0492Ying Wang#define __DQUOT_VERSION__ "dquot_6.5.1"
19951a39d68df598db08dfced8b4707755864a0492Ying Wang#define __DQUOT_NUM_VERSION__ 6*10000+5*100+1
20951a39d68df598db08dfced8b4707755864a0492Ying Wang
21951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef __kernel_uid32_t qid_t;
22951a39d68df598db08dfced8b4707755864a0492Ying Wangtypedef __u64 qsize_t;
23951a39d68df598db08dfced8b4707755864a0492Ying Wang
24951a39d68df598db08dfced8b4707755864a0492Ying Wang#define QUOTABLOCK_BITS 10
25951a39d68df598db08dfced8b4707755864a0492Ying Wang#define QUOTABLOCK_SIZE (1 << QUOTABLOCK_BITS)
26951a39d68df598db08dfced8b4707755864a0492Ying Wang
27951a39d68df598db08dfced8b4707755864a0492Ying Wang#define qb2kb(x) ((x) << (QUOTABLOCK_BITS-10))
28951a39d68df598db08dfced8b4707755864a0492Ying Wang#define kb2qb(x) ((x) >> (QUOTABLOCK_BITS-10))
29951a39d68df598db08dfced8b4707755864a0492Ying Wang#define toqb(x) (((x) + QUOTABLOCK_SIZE - 1) >> QUOTABLOCK_BITS)
30951a39d68df598db08dfced8b4707755864a0492Ying Wang
31951a39d68df598db08dfced8b4707755864a0492Ying Wang#define MAXQUOTAS 2
32951a39d68df598db08dfced8b4707755864a0492Ying Wang#define USRQUOTA 0
33951a39d68df598db08dfced8b4707755864a0492Ying Wang#define GRPQUOTA 1
34951a39d68df598db08dfced8b4707755864a0492Ying Wang
35951a39d68df598db08dfced8b4707755864a0492Ying Wang#define INITQFNAMES {   "user",     "group",     "undefined",  };
36951a39d68df598db08dfced8b4707755864a0492Ying Wang
37951a39d68df598db08dfced8b4707755864a0492Ying Wang#define SUBCMDMASK 0x00ff
38951a39d68df598db08dfced8b4707755864a0492Ying Wang#define SUBCMDSHIFT 8
39951a39d68df598db08dfced8b4707755864a0492Ying Wang#define QCMD(cmd, type) (((cmd) << SUBCMDSHIFT) | ((type) & SUBCMDMASK))
40951a39d68df598db08dfced8b4707755864a0492Ying Wang
41951a39d68df598db08dfced8b4707755864a0492Ying Wang#define Q_SYNC 0x800001
42951a39d68df598db08dfced8b4707755864a0492Ying Wang#define Q_QUOTAON 0x800002
43951a39d68df598db08dfced8b4707755864a0492Ying Wang#define Q_QUOTAOFF 0x800003
44951a39d68df598db08dfced8b4707755864a0492Ying Wang#define Q_GETFMT 0x800004
45951a39d68df598db08dfced8b4707755864a0492Ying Wang#define Q_GETINFO 0x800005
46951a39d68df598db08dfced8b4707755864a0492Ying Wang#define Q_SETINFO 0x800006
47951a39d68df598db08dfced8b4707755864a0492Ying Wang#define Q_GETQUOTA 0x800007
48951a39d68df598db08dfced8b4707755864a0492Ying Wang#define Q_SETQUOTA 0x800008
49951a39d68df598db08dfced8b4707755864a0492Ying Wang
50951a39d68df598db08dfced8b4707755864a0492Ying Wang#define QIF_BLIMITS 1
51951a39d68df598db08dfced8b4707755864a0492Ying Wang#define QIF_SPACE 2
52951a39d68df598db08dfced8b4707755864a0492Ying Wang#define QIF_ILIMITS 4
53951a39d68df598db08dfced8b4707755864a0492Ying Wang#define QIF_INODES 8
54951a39d68df598db08dfced8b4707755864a0492Ying Wang#define QIF_BTIME 16
55951a39d68df598db08dfced8b4707755864a0492Ying Wang#define QIF_ITIME 32
56951a39d68df598db08dfced8b4707755864a0492Ying Wang#define QIF_LIMITS (QIF_BLIMITS | QIF_ILIMITS)
57951a39d68df598db08dfced8b4707755864a0492Ying Wang#define QIF_USAGE (QIF_SPACE | QIF_INODES)
58951a39d68df598db08dfced8b4707755864a0492Ying Wang#define QIF_TIMES (QIF_BTIME | QIF_ITIME)
59951a39d68df598db08dfced8b4707755864a0492Ying Wang#define QIF_ALL (QIF_LIMITS | QIF_USAGE | QIF_TIMES)
60951a39d68df598db08dfced8b4707755864a0492Ying Wang
61951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct if_dqblk {
62951a39d68df598db08dfced8b4707755864a0492Ying Wang __u64 dqb_bhardlimit;
63951a39d68df598db08dfced8b4707755864a0492Ying Wang __u64 dqb_bsoftlimit;
64951a39d68df598db08dfced8b4707755864a0492Ying Wang __u64 dqb_curspace;
65951a39d68df598db08dfced8b4707755864a0492Ying Wang __u64 dqb_ihardlimit;
66951a39d68df598db08dfced8b4707755864a0492Ying Wang __u64 dqb_isoftlimit;
67951a39d68df598db08dfced8b4707755864a0492Ying Wang __u64 dqb_curinodes;
68951a39d68df598db08dfced8b4707755864a0492Ying Wang __u64 dqb_btime;
69951a39d68df598db08dfced8b4707755864a0492Ying Wang __u64 dqb_itime;
70951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 dqb_valid;
71951a39d68df598db08dfced8b4707755864a0492Ying Wang};
72951a39d68df598db08dfced8b4707755864a0492Ying Wang
73951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IIF_BGRACE 1
74951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IIF_IGRACE 2
75951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IIF_FLAGS 4
76951a39d68df598db08dfced8b4707755864a0492Ying Wang#define IIF_ALL (IIF_BGRACE | IIF_IGRACE | IIF_FLAGS)
77951a39d68df598db08dfced8b4707755864a0492Ying Wang
78951a39d68df598db08dfced8b4707755864a0492Ying Wangstruct if_dqinfo {
79951a39d68df598db08dfced8b4707755864a0492Ying Wang __u64 dqi_bgrace;
80951a39d68df598db08dfced8b4707755864a0492Ying Wang __u64 dqi_igrace;
81951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 dqi_flags;
82951a39d68df598db08dfced8b4707755864a0492Ying Wang __u32 dqi_valid;
83951a39d68df598db08dfced8b4707755864a0492Ying Wang};
84951a39d68df598db08dfced8b4707755864a0492Ying Wang
85951a39d68df598db08dfced8b4707755864a0492Ying Wang#include <sys/cdefs.h>
86951a39d68df598db08dfced8b4707755864a0492Ying Wang
87951a39d68df598db08dfced8b4707755864a0492Ying Wang#endif
88