aboutsummaryrefslogtreecommitdiffstats
path: root/sys/linux/quotactl.txt
blob: 2112a4878e9ab55629fba6ec5d5cf755a6f47e7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# Copyright 2023 syzkaller project authors. All rights reserved.
# Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.

include <uapi/linux/quota.h>

quotactl$Q_SYNC(cmd flags[quota_cmd_sync], special const[0], id const[0], addr const[0])
quotactl$Q_QUOTAON(cmd flags[quota_cmd_quota_on], special ptr[in, blockdev_filename], id uid, addr ptr[in, filename])
quotactl$Q_QUOTAOFF(cmd flags[quota_cmd_quota_off], special ptr[in, blockdev_filename], id uid, addr const[0])
quotactl$Q_GETFMT(cmd flags[quota_cmd_getfmt], special ptr[in, blockdev_filename], id uid, addr ptr[out, int32])
quotactl$Q_GETINFO(cmd flags[quota_cmd_getinfo], special ptr[in, blockdev_filename], id uid, addr ptr[out, if_dqinfo])
quotactl$Q_SETINFO(cmd flags[quota_cmd_setinfo], special ptr[in, blockdev_filename], id uid, addr ptr[in, if_dqinfo])
quotactl$Q_GETQUOTA(cmd flags[quota_cmd_getquota], special ptr[in, blockdev_filename], id uid, addr ptr[out, if_dqblk])
quotactl$Q_SETQUOTA(cmd flags[quota_cmd_setquota], special ptr[in, blockdev_filename], id uid, addr ptr[in, if_dqblk])
quotactl$Q_GETNEXTQUOTA(cmd flags[quota_cmd_getnextquota], special ptr[in, blockdev_filename], id uid, addr ptr[out, if_nextdqblk])

quotactl_fd$Q_SYNC(fd fd, cmd flags[quota_cmd_sync], id const[0], addr const[0])
quotactl_fd$Q_QUOTAON(fd fd, cmd flags[quota_cmd_quota_on], id uid, addr ptr[in, filename])
quotactl_fd$Q_QUOTAOFF(fd fd, cmd flags[quota_cmd_quota_off], id uid, addr const[0])
quotactl_fd$Q_GETFMT(fd fd, cmd flags[quota_cmd_getfmt], id uid, addr ptr[out, int32])
quotactl_fd$Q_GETINFO(fd fd, cmd flags[quota_cmd_getinfo], id uid, addr ptr[out, if_dqinfo])
quotactl_fd$Q_SETINFO(fd fd, cmd flags[quota_cmd_setinfo], id uid, addr ptr[in, if_dqinfo])
quotactl_fd$Q_GETQUOTA(fd fd, cmd flags[quota_cmd_getquota], id uid, addr ptr[out, if_dqblk])
quotactl_fd$Q_SETQUOTA(fd fd, cmd flags[quota_cmd_setquota], id uid, addr ptr[in, if_dqblk])
quotactl_fd$Q_GETNEXTQUOTA(fd fd, cmd flags[quota_cmd_getnextquota], id uid, addr ptr[out, if_nextdqblk])

if_dqinfo {
	dqi_bgrace	int64
	dqi_igrace	int64
	dqi_flags	flags[quota_dgqinfo_flags, int32]
	dqi_valid	flags[quota_dgqinfo_valid, int32]
}

if_dqblk {
	dqb_bhardlimit	int64
	dqb_bsoftlimit	int64
	dqb_curspace	int64
	dqb_ihardlimit	int64
	dqb_isoftlimit	int64
	dqb_curinodes	int64
	dqb_btime	int64
	dqb_itime	int64
	dqb_valid	int32
}

if_nextdqblk {
	dqb_bhardlimit	int64
	dqb_bsoftlimit	int64
	dqb_curspace	int64
	dqb_ihardlimit	int64
	dqb_isoftlimit	int64
	dqb_curinodes	int64
	dqb_btime	int64
	dqb_itime	int64
	dqb_valid	int32
	dqb_id		int32
}

quota_dgqinfo_flags = DQF_ROOT_SQUASH
quota_dgqinfo_valid = IIF_BGRACE, IIF_IGRACE, IIF_FLAGS

quota_cmd_sync = Q_SYNC_USR, Q_SYNC_GRP, Q_SYNC_PRJ
quota_cmd_quota_on = Q_QUOTAON_USR, Q_QUOTAON_GRP, Q_QUOTAON_PRJ
quota_cmd_quota_off = Q_QUOTAOFF_USR, Q_QUOTAOFF_GRP, Q_QUOTAOFF_PRJ
quota_cmd_getfmt = Q_GETFMT_USR, Q_GETFMT_GRP, Q_GETFMT_PRJ
quota_cmd_getinfo = Q_GETINFO_USR, Q_GETINFO_GRP, Q_GETINFO_PRJ
quota_cmd_setinfo = Q_SETINFO_USR, Q_SETINFO_GRP, Q_SETINFO_PRJ
quota_cmd_getquota = Q_GETQUOTA_USR, Q_GETQUOTA_GRP, Q_GETQUOTA_PRJ
quota_cmd_setquota = Q_SETQUOTA_USR, Q_SETQUOTA_GRP, Q_SETQUOTA_PRJ
quota_cmd_getnextquota = Q_GETNEXTQUOTA_USR, Q_GETNEXTQUOTA_GRP, Q_GETNEXTQUOTA_PRJ

define Q_SYNC_USR	(Q_SYNC << SUBCMDSHIFT) | USRQUOTA
define Q_SYNC_GRP	(Q_SYNC << SUBCMDSHIFT) | GRPQUOTA
define Q_SYNC_PRJ	(Q_SYNC << SUBCMDSHIFT) | PRJQUOTA
define Q_QUOTAON_USR	(Q_QUOTAON << SUBCMDSHIFT) | USRQUOTA
define Q_QUOTAON_GRP	(Q_QUOTAON << SUBCMDSHIFT) | GRPQUOTA
define Q_QUOTAON_PRJ	(Q_QUOTAON << SUBCMDSHIFT) | PRJQUOTA
define Q_QUOTAOFF_USR	(Q_QUOTAOFF << SUBCMDSHIFT) | USRQUOTA
define Q_QUOTAOFF_GRP	(Q_QUOTAOFF << SUBCMDSHIFT) | GRPQUOTA
define Q_QUOTAOFF_PRJ	(Q_QUOTAOFF << SUBCMDSHIFT) | PRJQUOTA
define Q_GETFMT_USR	(Q_GETFMT << SUBCMDSHIFT) | USRQUOTA
define Q_GETFMT_GRP	(Q_GETFMT << SUBCMDSHIFT) | GRPQUOTA
define Q_GETFMT_PRJ	(Q_GETFMT << SUBCMDSHIFT) | PRJQUOTA
define Q_GETINFO_USR	(Q_GETINFO << SUBCMDSHIFT) | USRQUOTA
define Q_GETINFO_GRP	(Q_GETINFO << SUBCMDSHIFT) | GRPQUOTA
define Q_GETINFO_PRJ	(Q_GETINFO << SUBCMDSHIFT) | PRJQUOTA
define Q_SETINFO_USR	(Q_SETINFO << SUBCMDSHIFT) | USRQUOTA
define Q_SETINFO_GRP	(Q_SETINFO << SUBCMDSHIFT) | GRPQUOTA
define Q_SETINFO_PRJ	(Q_SETINFO << SUBCMDSHIFT) | PRJQUOTA
define Q_GETQUOTA_USR	(Q_GETQUOTA << SUBCMDSHIFT) | USRQUOTA
define Q_GETQUOTA_GRP	(Q_GETQUOTA << SUBCMDSHIFT) | GRPQUOTA
define Q_GETQUOTA_PRJ	(Q_GETQUOTA << SUBCMDSHIFT) | PRJQUOTA
define Q_SETQUOTA_USR	(Q_SETQUOTA << SUBCMDSHIFT) | USRQUOTA
define Q_SETQUOTA_GRP	(Q_SETQUOTA << SUBCMDSHIFT) | GRPQUOTA
define Q_SETQUOTA_PRJ	(Q_SETQUOTA << SUBCMDSHIFT) | PRJQUOTA
define Q_GETNEXTQUOTA_USR	(Q_GETNEXTQUOTA << SUBCMDSHIFT) | USRQUOTA
define Q_GETNEXTQUOTA_GRP	(Q_GETNEXTQUOTA << SUBCMDSHIFT) | GRPQUOTA
define Q_GETNEXTQUOTA_PRJ	(Q_GETNEXTQUOTA << SUBCMDSHIFT) | PRJQUOTA