- size_t len, n = 0;
- char *line = NULL;
- const char *v;
- FILE *f;
-
- memset(val, 0, sizeof(*val));
- val->mem_unit = 1;
-
- f = fopen("/proc/meminfo", "r");
- if (!f)
- return;
-
- while ((len = getline(&line, &n, f)) != -1) {
- if ((v = strcmp_prefix(line, "MemTotal:")))
- val->totalram = parse_meminfo_line(v);
-
- if ((v = strcmp_prefix(line, "MemAvailable:")))
- val->freeram = parse_meminfo_line(v);
- }
-
- fclose(f);
- free(line);
+ mutex_lock(&shrinker_lock);
+ list_add_tail(&shrinker->list, &shrinker_list);
+ mutex_unlock(&shrinker_lock);
+ return 0;