Merge tag 'i2c-for-6.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa...
[linux-block.git] / mm / damon / sysfs-common.h
CommitLineData
39240595
SP
1/* SPDX-License-Identifier: GPL-2.0 */
2/*
3 * Common Primitives for DAMON Sysfs Interface
4 *
5 * Author: SeongJae Park <sj@kernel.org>
6 */
7
8#include <linux/damon.h>
9#include <linux/kobject.h>
10
11extern struct mutex damon_sysfs_lock;
d332fe11
SP
12
13struct damon_sysfs_ul_range {
14 struct kobject kobj;
15 unsigned long min;
16 unsigned long max;
17};
18
19struct damon_sysfs_ul_range *damon_sysfs_ul_range_alloc(
20 unsigned long min,
21 unsigned long max);
22void damon_sysfs_ul_range_release(struct kobject *kobj);
23
e56397e8 24extern const struct kobj_type damon_sysfs_ul_range_ktype;
c8e7b4d0
SP
25
26/*
27 * schemes directory
28 */
29
30struct damon_sysfs_schemes {
31 struct kobject kobj;
32 struct damon_sysfs_scheme **schemes_arr;
33 int nr;
34};
35
36struct damon_sysfs_schemes *damon_sysfs_schemes_alloc(void);
37void damon_sysfs_schemes_rm_dirs(struct damon_sysfs_schemes *schemes);
38
e56397e8 39extern const struct kobj_type damon_sysfs_schemes_ktype;
c8e7b4d0
SP
40
41int damon_sysfs_set_schemes(struct damon_ctx *ctx,
42 struct damon_sysfs_schemes *sysfs_schemes);
43
44void damon_sysfs_schemes_update_stats(
45 struct damon_sysfs_schemes *sysfs_schemes,
46 struct damon_ctx *ctx);
f1d13cac
SP
47
48int damon_sysfs_schemes_update_regions_start(
49 struct damon_sysfs_schemes *sysfs_schemes,
6ad243b8 50 struct damon_ctx *ctx, bool total_bytes_only);
f1d13cac 51
6a080670
SP
52void damos_sysfs_mark_finished_regions_updates(struct damon_ctx *ctx);
53
76126332
SP
54bool damos_sysfs_regions_upd_done(void);
55
f1d13cac 56int damon_sysfs_schemes_update_regions_stop(struct damon_ctx *ctx);
772c15e5
SP
57
58int damon_sysfs_schemes_clear_regions(
59 struct damon_sysfs_schemes *sysfs_schemes,
60 struct damon_ctx *ctx);
d91beaa5 61
9e736fdf 62int damos_sysfs_set_quota_scores(struct damon_sysfs_schemes *sysfs_schemes,
d91beaa5 63 struct damon_ctx *ctx);
c71f8a71
SP
64
65void damos_sysfs_update_effective_quotas(
66 struct damon_sysfs_schemes *sysfs_schemes,
67 struct damon_ctx *ctx);