diff options
author | Elliott Hughes <enh@google.com> | 2016-08-23 17:47:49 -0700 |
---|---|---|
committer | Elliott Hughes <enh@google.com> | 2016-08-23 17:47:49 -0700 |
commit | 9eed624c760b9c70de9a8f75ff84c5f085d62fdc (patch) | |
tree | 2f8b3a9b0d1678fc2ba2eebd54d21687cd3db8ac /libpagemap | |
parent | cb0112fe640d7b8a9668f91d2cad7234bd63f880 (diff) | |
download | extras-9eed624c760b9c70de9a8f75ff84c5f085d62fdc.tar.gz |
Don't invent our own pagemap constants.
Use the uapi ones instead, so I don't have to think about whether ours
are correct.
Bug: http://b/31044648
Change-Id: Ibe4a078ad3223419301a5f585e8ed24dd7366ce2
Diffstat (limited to 'libpagemap')
-rw-r--r-- | libpagemap/include/pagemap/pagemap.h | 40 | ||||
-rw-r--r-- | libpagemap/pm_map.c | 2 |
2 files changed, 8 insertions, 34 deletions
diff --git a/libpagemap/include/pagemap/pagemap.h b/libpagemap/include/pagemap/pagemap.h index 61e59e2f..b03614e8 100644 --- a/libpagemap/include/pagemap/pagemap.h +++ b/libpagemap/include/pagemap/pagemap.h @@ -23,6 +23,8 @@ #include <sys/types.h> #include <sys/queue.h> +#include <linux/kernel-page-flags.h> + __BEGIN_DECLS typedef struct pm_proportional_swap pm_proportional_swap_t; @@ -124,39 +126,11 @@ int pm_kernel_pids(pm_kernel_t *ker, pid_t **pids_out, size_t *len); int pm_kernel_count(pm_kernel_t *ker, uint64_t pfn, uint64_t *count_out); /* Get the page flags (from /proc/kpageflags) of a physical frame. - * The count is returned through *flags_out. */ + * Flag constants are in <linux/kernel-page-flags.h>. + * The count is returned through *flags_out. + */ int pm_kernel_flags(pm_kernel_t *ker, uint64_t pfn, uint64_t *flags_out); -#define PM_PAGE_LOCKED (1 << 0) -#define PM_PAGE_ERROR (1 << 1) -#define PM_PAGE_REFERENCED (1 << 2) -#define PM_PAGE_UPTODATE (1 << 3) -#define PM_PAGE_DIRTY (1 << 4) -#define PM_PAGE_LRU (1 << 5) -#define PM_PAGE_ACTIVE (1 << 6) -#define PM_PAGE_SLAB (1 << 7) -#define PM_PAGE_WRITEBACK (1 << 8) -#define PM_PAGE_RECLAIM (1 << 9) -#define PM_PAGE_BUDDY (1 << 10) - -/* for kernels >= 2.6.31 */ -#define PM_PAGE_MMAP (1 << 11) -#define PM_PAGE_ANON (1 << 12) -#define PM_PAGE_SWAPCACHE (1 << 13) -#define PM_PAGE_SWAPBACKED (1 << 14) -#define PM_PAGE_COMPOUND_HEAD (1 << 15) -#define PM_PAGE_COMPOUND_TAIL (1 << 16) -#define PM_PAGE_HUGE (1 << 17) -#define PM_PAGE_UNEVICTABLE (1 << 18) -#define PM_PAGE_HWPOISON (1 << 19) -#define PM_PAGE_NOPAGE (1 << 20) - -/* for kernels >= 2.6.32 */ -#define PM_PAGE_KSM (1 << 21) - -/* for kernels >= 3.4 */ -#define PM_PAGE_THP (1 << 22) - /* Destroy a pm_kernel_t. */ int pm_kernel_destroy(pm_kernel_t *ker); @@ -180,7 +154,7 @@ int pm_process_usage_flags(pm_process_t *proc, pm_memusage_t *usage_out, int pm_process_workingset(pm_process_t *proc, pm_memusage_t *ws_out, int reset); /* Get the PFNs corresponding to a range of virtual addresses. - * The array of PFNs is returned through *range_out, and the caller has the + * The array of PFNs is returned through *range_out, and the caller has the * responsibility to free it. */ int pm_process_pagemap_range(pm_process_t *proc, uint64_t low, uint64_t hi, @@ -197,7 +171,7 @@ int pm_process_pagemap_range(pm_process_t *proc, /* Get the maps in the virtual address space of this process. * Returns an array of pointers to pm_map_t through *maps. - * The array should be freed by the caller, but the maps should not be + * The array should be freed by the caller, but the maps should not be * modified or destroyed. */ int pm_process_maps(pm_process_t *proc, pm_map_t ***maps_out, size_t *len); diff --git a/libpagemap/pm_map.c b/libpagemap/pm_map.c index 301a1cc3..0060a98c 100644 --- a/libpagemap/pm_map.c +++ b/libpagemap/pm_map.c @@ -109,7 +109,7 @@ int pm_map_workingset(pm_map_t *map, pm_memusage_t *ws_out) { &flags); if (error) goto out; - if (!(flags & PM_PAGE_REFERENCED)) + if (!(flags & KPF_REFERENCED)) continue; error = pm_kernel_count(map->proc->ker, PM_PAGEMAP_PFN(pagemap[i]), |