2 #include <linux/compiler.h>
11 #include <linux/kernel-page-flags.h>
12 #include <asm/uaccess.h>
15 #define KPMSIZE sizeof(u64)
16 #define KPMMASK (KPMSIZE - 1)
24 size_t count, loff_t *ppos)
28 unsigned long src = *ppos;
43 if (!ppage || PageSlab(ppage))
46 pcount = page_mapcount(ppage);
58 *ppos += (
char __user *)out - buf;
60 ret = (
char __user *)out - buf;
66 .read = kpagecount_read,
75 static inline u64 kpf_copy_bit(
u64 kflags,
int ubit,
int kbit)
77 return ((kflags >> kbit) & 1) << ubit;
101 if (!PageSlab(page) && page_mapped(page))
155 #ifdef CONFIG_MEMORY_FAILURE
159 #ifdef CONFIG_ARCH_USES_PG_UNCACHED
174 size_t count, loff_t *ppos)
178 unsigned long src = *ppos;
203 *ppos += (
char __user *)out - buf;
205 ret = (
char __user *)out - buf;
211 .read = kpageflags_read,
214 static int __init proc_page_init(
void)
216 proc_create(
"kpagecount",
S_IRUSR,
NULL, &proc_kpagecount_operations);
217 proc_create(
"kpageflags",
S_IRUSR,
NULL, &proc_kpageflags_operations);