]> git.sesse.net Git - bcachefs-tools-debian/blob - include/linux/shrinker.h
Update bcachefs sources to 783085c3cc44 kbuild: Allow gcov to be enabled on the comma...
[bcachefs-tools-debian] / include / linux / shrinker.h
1 #ifndef __TOOLS_LINUX_SHRINKER_H
2 #define __TOOLS_LINUX_SHRINKER_H
3
4 #include <linux/list.h>
5 #include <linux/types.h>
6
7 struct shrink_control {
8         gfp_t gfp_mask;
9         unsigned long nr_to_scan;
10 };
11
12 #define SHRINK_STOP (~0UL)
13
14 struct seq_buf;
15 struct shrinker {
16         unsigned long (*count_objects)(struct shrinker *,
17                                        struct shrink_control *sc);
18         unsigned long (*scan_objects)(struct shrinker *,
19                                       struct shrink_control *sc);
20         void (*to_text)(struct seq_buf *, struct shrinker *);
21
22         int seeks;      /* seeks to recreate an obj */
23         long batch;     /* reclaim batch size, 0 = default */
24         struct list_head list;
25         void    *private_data;
26 };
27
28 static inline void shrinker_free(struct shrinker *s)
29 {
30         free(s);
31 }
32
33 struct shrinker *shrinker_alloc(unsigned int, const char *, ...);
34
35 int shrinker_register(struct shrinker *);
36 void shrinker_unregister(struct shrinker *);
37
38 void run_shrinkers(gfp_t gfp_mask, bool);
39
40 #endif /* __TOOLS_LINUX_SHRINKER_H */