| .. | .. | 
|---|
| 2 | 2 | #ifndef _LINUX_SHRINKER_H | 
|---|
| 3 | 3 | #define _LINUX_SHRINKER_H | 
|---|
| 4 | 4 |  | 
|---|
|  | 5 | +#include <linux/android_vendor.h> | 
|---|
|  | 6 | + | 
|---|
| 5 | 7 | /* | 
|---|
| 6 | 8 | * This struct is used to pass information from page reclaim to the shrinkers. | 
|---|
| 7 | 9 | * We consolidate the values for easier extention later. | 
|---|
| .. | .. | 
|---|
| 31 | 33 |  | 
|---|
| 32 | 34 | /* current memcg being shrunk (for memcg aware shrinkers) */ | 
|---|
| 33 | 35 | struct mem_cgroup *memcg; | 
|---|
|  | 36 | +	ANDROID_OEM_DATA_ARRAY(1, 3); | 
|---|
| 34 | 37 | }; | 
|---|
| 35 | 38 |  | 
|---|
| 36 | 39 | #define SHRINK_STOP (~0UL) | 
|---|
| .. | .. | 
|---|
| 69 | 72 |  | 
|---|
| 70 | 73 | /* These are for internal use */ | 
|---|
| 71 | 74 | struct list_head list; | 
|---|
| 72 |  | -#ifdef CONFIG_MEMCG_KMEM | 
|---|
|  | 75 | +#ifdef CONFIG_MEMCG | 
|---|
| 73 | 76 | /* ID in shrinker_idr */ | 
|---|
| 74 | 77 | int id; | 
|---|
| 75 | 78 | #endif | 
|---|
| .. | .. | 
|---|
| 81 | 84 | /* Flags */ | 
|---|
| 82 | 85 | #define SHRINKER_NUMA_AWARE	(1 << 0) | 
|---|
| 83 | 86 | #define SHRINKER_MEMCG_AWARE	(1 << 1) | 
|---|
|  | 87 | +/* | 
|---|
|  | 88 | + * It just makes sense when the shrinker is also MEMCG_AWARE for now, | 
|---|
|  | 89 | + * non-MEMCG_AWARE shrinker should not have this flag set. | 
|---|
|  | 90 | + */ | 
|---|
|  | 91 | +#define SHRINKER_NONSLAB	(1 << 2) | 
|---|
| 84 | 92 |  | 
|---|
| 85 | 93 | extern int prealloc_shrinker(struct shrinker *shrinker); | 
|---|
| 86 | 94 | extern void register_shrinker_prepared(struct shrinker *shrinker); | 
|---|