diff options
Diffstat (limited to 'sys/compat/linuxkpi/common/include/linux/shrinker.h')
-rw-r--r-- | sys/compat/linuxkpi/common/include/linux/shrinker.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/sys/compat/linuxkpi/common/include/linux/shrinker.h b/sys/compat/linuxkpi/common/include/linux/shrinker.h index a865241cc7cb..eb95dafb83ce 100644 --- a/sys/compat/linuxkpi/common/include/linux/shrinker.h +++ b/sys/compat/linuxkpi/common/include/linux/shrinker.h @@ -27,6 +27,8 @@ #define _LINUXKPI_LINUX_SHRINKER_H_ #include <sys/queue.h> + +#include <linux/bitops.h> #include <linux/gfp.h> struct shrink_control { @@ -39,6 +41,8 @@ struct shrinker { unsigned long (*count_objects)(struct shrinker *, struct shrink_control *); unsigned long (*scan_objects)(struct shrinker *, struct shrink_control *); int seeks; + unsigned int flags; + void * private_data; long batch; TAILQ_ENTRY(shrinker) next; }; @@ -47,10 +51,23 @@ struct shrinker { #define DEFAULT_SEEKS 2 +#define SHRINKER_REGISTERED BIT(0) +#define SHRINKER_ALLOCATED BIT(1) + +struct shrinker *linuxkpi_shrinker_alloc( + unsigned int flags, const char *fmt, ...); int linuxkpi_register_shrinker(struct shrinker *s); void linuxkpi_unregister_shrinker(struct shrinker *s); +void linuxkpi_shrinker_free(struct shrinker *shrinker); void linuxkpi_synchronize_shrinkers(void); +#define shrinker_alloc(flags, fmt, ...) \ + linuxkpi_shrinker_alloc(flags, fmt __VA_OPT__(,) __VA_ARGS__) +#define shrinker_register(shrinker) \ + linuxkpi_register_shrinker(shrinker) +#define shrinker_free(shrinker) \ + linuxkpi_shrinker_free(shrinker) + #if defined(LINUXKPI_VERSION) && LINUXKPI_VERSION >= 60000 #define register_shrinker(s, ...) linuxkpi_register_shrinker(s) #else |