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*1bb76ff1Sjsgsynchronize_shrinkers(void) 28*1bb76ff1Sjsg { 29*1bb76ff1Sjsg } 30*1bb76ff1Sjsg 31a4e118acSkettenis #endif 32