+
+#ifdef DEBUG
+#define VM_PAGE_DEBUG_INIT(m) ((m)->pagerowned = 0, (m)->ptpage = 0)
+#else
+#define VM_PAGE_DEBUG_INIT(m)
+#endif
+
+#define VM_PAGE_INIT(mem, object, offset) { \
+ (mem)->busy = TRUE; \
+ (mem)->tabled = FALSE; \
+ vm_page_insert((mem), (object), (offset)); \
+ (mem)->absent = FALSE; \
+ (mem)->fictitious = FALSE; \
+ (mem)->page_lock = VM_PROT_NONE; \
+ (mem)->unlock_request = VM_PROT_NONE; \
+ (mem)->laundry = FALSE; \
+ (mem)->active = FALSE; \
+ (mem)->inactive = FALSE; \
+ (mem)->wire_count = 0; \
+ (mem)->clean = TRUE; \
+ (mem)->copy_on_write = FALSE; \
+ (mem)->fake = TRUE; \
+ VM_PAGE_DEBUG_INIT(mem); \
+}
+
+void vm_page_activate __P((vm_page_t));
+vm_page_t vm_page_alloc __P((vm_object_t, vm_offset_t));
+void vm_page_copy __P((vm_page_t, vm_page_t));
+void vm_page_deactivate __P((vm_page_t));
+void vm_page_free __P((vm_page_t));
+void vm_page_insert __P((vm_page_t, vm_object_t, vm_offset_t));
+vm_page_t vm_page_lookup __P((vm_object_t, vm_offset_t));
+void vm_page_remove __P((vm_page_t));
+void vm_page_rename __P((vm_page_t, vm_object_t, vm_offset_t));
+void vm_page_startup __P((vm_offset_t *, vm_offset_t *));
+void vm_page_unwire __P((vm_page_t));
+void vm_page_wire __P((vm_page_t));
+boolean_t vm_page_zero_fill __P((vm_page_t));
+
+#endif /* KERNEL */
+#endif /* !_VM_PAGE_ */