pagemap: add mmap-exclusive bit for marking pages mapped only here
[firefly-linux-kernel-4.4.55.git] / tools / vm / page-types.c
index 603ec916716b34561e974e6195421675daba7802..7f73fa32a590b5f5177affb4b2e6df93dc3e2f2f 100644 (file)
@@ -62,6 +62,7 @@
 #define PM_PFRAME_MASK         ((1LL << PM_PFRAME_BITS) - 1)
 #define PM_PFRAME(x)           ((x) & PM_PFRAME_MASK)
 #define PM_SOFT_DIRTY          (1ULL << 55)
+#define PM_MMAP_EXCLUSIVE      (1ULL << 56)
 #define PM_FILE                        (1ULL << 61)
 #define PM_SWAP                        (1ULL << 62)
 #define PM_PRESENT             (1ULL << 63)
@@ -91,6 +92,8 @@
 #define KPF_SLOB_FREE          49
 #define KPF_SLUB_FROZEN                50
 #define KPF_SLUB_DEBUG         51
+#define KPF_FILE               62
+#define KPF_MMAP_EXCLUSIVE     63
 
 #define KPF_ALL_BITS           ((uint64_t)~0ULL)
 #define KPF_HACKERS_BITS       (0xffffULL << 32)
@@ -140,6 +143,9 @@ static const char * const page_flag_names[] = {
        [KPF_SLOB_FREE]         = "P:slob_free",
        [KPF_SLUB_FROZEN]       = "A:slub_frozen",
        [KPF_SLUB_DEBUG]        = "E:slub_debug",
+
+       [KPF_FILE]              = "F:file",
+       [KPF_MMAP_EXCLUSIVE]    = "1:mmap_exclusive",
 };
 
 
@@ -443,6 +449,10 @@ static uint64_t expand_overloaded_flags(uint64_t flags, uint64_t pme)
 
        if (pme & PM_SOFT_DIRTY)
                flags |= BIT(SOFTDIRTY);
+       if (pme & PM_FILE)
+               flags |= BIT(FILE);
+       if (pme & PM_MMAP_EXCLUSIVE)
+               flags |= BIT(MMAP_EXCLUSIVE);
 
        return flags;
 }