xref: /openbsd-src/sys/dev/pci/drm/include/linux/shrinker.h (revision 1bb76ff151c0aba8e3312a604e4cd2e5195cf4b7)
1a4e118acSkettenis /* Public domain. */
2a4e118acSkettenis 
3a4e118acSkettenis #ifndef _LINUX_SHRINKER_H
4a4e118acSkettenis #define _LINUX_SHRINKER_H
5a4e118acSkettenis 
6a4e118acSkettenis struct shrink_control {
7a4e118acSkettenis 	u_long	nr_to_scan;
8a4e118acSkettenis 	u_long	nr_scanned;
9a4e118acSkettenis };
10a4e118acSkettenis 
11a4e118acSkettenis struct shrinker {
12a4e118acSkettenis 	u_long	(*count_objects)(struct shrinker *, struct shrink_control *);
13a4e118acSkettenis 	u_long	(*scan_objects)(struct shrinker *, struct shrink_control *);
14a4e118acSkettenis 	long	batch;
15a4e118acSkettenis 	int	seeks;
16a4e118acSkettenis 	TAILQ_ENTRY(shrinker) next;
17a4e118acSkettenis };
18a4e118acSkettenis 
19a4e118acSkettenis #define SHRINK_STOP	~0UL
20a4e118acSkettenis 
21a4e118acSkettenis #define DEFAULT_SEEKS	2
22a4e118acSkettenis 
23*1bb76ff1Sjsg int register_shrinker(struct shrinker *, const char *format, ...);
243990936dSjsg void unregister_shrinker(struct shrinker *);
25a4e118acSkettenis 
26*1bb76ff1Sjsg static inline void
synchronize_shrinkers(void)27*1bb76ff1Sjsg synchronize_shrinkers(void)
28*1bb76ff1Sjsg {
29*1bb76ff1Sjsg }
30*1bb76ff1Sjsg 
31a4e118acSkettenis #endif
32