summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/linux/mm.h8
-rw-r--r--linux/shrinker.c15
2 files changed, 7 insertions, 16 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 4bf80ba3..744a14ce 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -2,6 +2,7 @@
#ifndef _TOOLS_LINUX_MM_H
#define _TOOLS_LINUX_MM_H
+#include <sys/syscall.h>
#include <linux/types.h>
struct sysinfo {
@@ -20,6 +21,11 @@ struct sysinfo {
__u32 mem_unit; /* Memory unit size in bytes */
};
-extern void si_meminfo(struct sysinfo * val);
+
+
+static inline void si_meminfo(struct sysinfo *val)
+{
+ BUG_ON(syscall(SYS_sysinfo, val));
+}
#endif /* _TOOLS_LINUX_MM_H */
diff --git a/linux/shrinker.c b/linux/shrinker.c
index 91f633b5..7658fb7e 100644
--- a/linux/shrinker.c
+++ b/linux/shrinker.c
@@ -33,21 +33,6 @@ void unregister_shrinker(struct shrinker *shrinker)
mutex_unlock(&shrinker_lock);
}
-struct meminfo {
- u64 total;
- u64 available;
-};
-
-void si_meminfo(struct sysinfo *val)
-{
- long page_size = sysconf(_SC_PAGESIZE);
- memset(val, 0, sizeof(*val));
- val->mem_unit = 1;
-
- val->totalram = sysconf(_SC_PHYS_PAGES) * page_size;
- val->freeram = sysconf(_SC_AVPHYS_PAGES) * page_size;
-}
-
static void run_shrinkers_allocation_failed(gfp_t gfp_mask)
{
struct shrinker *shrinker;