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)25synchronize_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