Add a helper for detecting page map pages

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
diff --git a/kern/include/page_alloc.h b/kern/include/page_alloc.h
index ad9c0fa..484f62d 100644
--- a/kern/include/page_alloc.h
+++ b/kern/include/page_alloc.h
@@ -81,3 +81,9 @@
 void lock_page(struct page *page);
 void unlock_page(struct page *page);
 void print_pageinfo(struct page *page);
+static inline bool page_is_pagemap(struct page *page);
+
+static inline bool page_is_pagemap(struct page *page)
+{
+	return atomic_read(&page->pg_flags) & PG_PAGEMAP ? true : false;
+}
diff --git a/kern/src/mm.c b/kern/src/mm.c
index 9476deb..0890591 100644
--- a/kern/src/mm.c
+++ b/kern/src/mm.c
@@ -626,7 +626,7 @@
 		if (exec)
 			icache_flush_page(0, page2kva(page));
 		ret = map_page_at_addr(p, page, va + i * PGSIZE, pte_prot);
-		if (atomic_read(&page->pg_flags) & PG_PAGEMAP)
+		if (page_is_pagemap(page))
 			pm_put_page(page);
 		if (ret)
 			break;
@@ -860,7 +860,7 @@
 		return 0;
 	page = pa2page(pte_get_paddr(pte));
 	pte_clear(pte);
-	if (!(atomic_read(&page->pg_flags) & PG_PAGEMAP))
+	if (!page_is_pagemap(page))
 		page_decref(page);
 	return 0;
 }
@@ -905,7 +905,7 @@
 /* Helper - drop the page differently based on where it is from */
 static void __put_page(struct page *page)
 {
-	if (atomic_read(&page->pg_flags) & PG_PAGEMAP)
+	if (page_is_pagemap(page))
 		pm_put_page(page);
 	else
 		page_decref(page);
@@ -1068,7 +1068,7 @@
 	/* the VMR's existence in the PM (via the mmap) allows us to have PTE point
 	 * to a_page without it magically being reallocated.  For non-PM memory
 	 * (anon memory or private pages) we transferred the ref to the PTE. */
-	if (atomic_read(&a_page->pg_flags) & PG_PAGEMAP)
+	if (page_is_pagemap(a_page))
 		pm_put_page(a_page);
 out:
 	spin_unlock(&p->vmr_lock);