Index: kernel/generic/include/mm/page.h
===================================================================
--- kernel/generic/include/mm/page.h	(revision f126c876616f5bbece442f6a35e0434e74d4c869)
+++ kernel/generic/include/mm/page.h	(revision 2a2fbc84d3b2a2ff06b9bb236ff8e813c17ce223)
@@ -48,5 +48,6 @@
 	void (* mapping_insert)(as_t *, uintptr_t, uintptr_t, unsigned int);
 	void (* mapping_remove)(as_t *, uintptr_t);
-	pte_t *(* mapping_find)(as_t *, uintptr_t, bool);
+	bool (* mapping_find)(as_t *, uintptr_t, bool, pte_t *);
+	void (* mapping_update)(as_t *, uintptr_t, bool, pte_t *);
 	void (* mapping_make_global)(uintptr_t, size_t);
 } page_mapping_operations_t;
@@ -60,5 +61,6 @@
 extern void page_mapping_insert(as_t *, uintptr_t, uintptr_t, unsigned int);
 extern void page_mapping_remove(as_t *, uintptr_t);
-extern pte_t *page_mapping_find(as_t *, uintptr_t, bool);
+extern bool page_mapping_find(as_t *, uintptr_t, bool, pte_t *);
+extern void page_mapping_update(as_t *, uintptr_t, bool, pte_t *);
 extern void page_mapping_make_global(uintptr_t, size_t);
 extern pte_t *page_table_create(unsigned int);
