1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _BCACHEFS_QUOTA_FORMAT_H
3#define _BCACHEFS_QUOTA_FORMAT_H
4
5/* KEY_TYPE_quota: */
6
7enum quota_types {
8	QTYP_USR		= 0,
9	QTYP_GRP		= 1,
10	QTYP_PRJ		= 2,
11	QTYP_NR			= 3,
12};
13
14enum quota_counters {
15	Q_SPC			= 0,
16	Q_INO			= 1,
17	Q_COUNTERS		= 2,
18};
19
20struct bch_quota_counter {
21	__le64			hardlimit;
22	__le64			softlimit;
23};
24
25struct bch_quota {
26	struct bch_val		v;
27	struct bch_quota_counter c[Q_COUNTERS];
28} __packed __aligned(8);
29
30/* BCH_SB_FIELD_quota: */
31
32struct bch_sb_quota_counter {
33	__le32				timelimit;
34	__le32				warnlimit;
35};
36
37struct bch_sb_quota_type {
38	__le64				flags;
39	struct bch_sb_quota_counter	c[Q_COUNTERS];
40};
41
42struct bch_sb_field_quota {
43	struct bch_sb_field		field;
44	struct bch_sb_quota_type	q[QTYP_NR];
45} __packed __aligned(8);
46
47#endif /* _BCACHEFS_QUOTA_FORMAT_H */
48