1 /* Public domain. */
2 
3 #ifndef _LINUX_SHRINKER_H
4 #define _LINUX_SHRINKER_H
5 
6 struct shrink_control {
7 	u_long	nr_to_scan;
8 	u_long	nr_scanned;
9 };
10 
11 struct shrinker {
12 	u_long	(*count_objects)(struct shrinker *, struct shrink_control *);
13 	u_long	(*scan_objects)(struct shrinker *, struct shrink_control *);
14 	long	batch;
15 	int	seeks;
16 	void	*private_data;
17 	TAILQ_ENTRY(shrinker) next;
18 };
19 
20 #define SHRINK_STOP	~0UL
21 
22 #define DEFAULT_SEEKS	2
23 
24 static inline void
synchronize_shrinkers(void)25 synchronize_shrinkers(void)
26 {
27 }
28 
29 struct shrinker *shrinker_alloc(u_int, const char *, ...);
30 void shrinker_free(struct shrinker *);
31 
32 void shrinker_register(struct shrinker *);
33 
34 #endif
35