root/sys/dev/pci/drm/include/linux/shrinker.h
/* Public domain. */

#ifndef _LINUX_SHRINKER_H
#define _LINUX_SHRINKER_H

struct shrink_control {
        u_long  nr_to_scan;
        u_long  nr_scanned;
};

struct shrinker {
        u_long  (*count_objects)(struct shrinker *, struct shrink_control *);
        u_long  (*scan_objects)(struct shrinker *, struct shrink_control *);
        long    batch;
        int     seeks;
        void    *private_data;
        TAILQ_ENTRY(shrinker) next;
};

#define SHRINK_STOP     ~0UL

#define DEFAULT_SEEKS   2

static inline void
synchronize_shrinkers(void)
{
}

struct shrinker *shrinker_alloc(u_int, const char *, ...);
void shrinker_free(struct shrinker *);

void shrinker_register(struct shrinker *);

#endif