+#define UPL_LITE 0x100
+#define UPL_IO_WIRE 0x200
+#define UPL_ACCESS_BLOCKED 0x400
+#define UPL_ENCRYPTED 0x800
+
+
+/* flags for upl_create flags parameter */
+#define UPL_CREATE_EXTERNAL 0
+#define UPL_CREATE_INTERNAL 0x1
+#define UPL_CREATE_LITE 0x2
+
+extern kern_return_t vm_object_iopl_request(
+ vm_object_t object,
+ vm_object_offset_t offset,
+ upl_size_t size,
+ upl_t *upl_ptr,
+ upl_page_info_array_t user_page_list,
+ unsigned int *page_list_count,
+ int cntrl_flags);
+
+extern kern_return_t vm_object_super_upl_request(
+ vm_object_t object,
+ vm_object_offset_t offset,
+ upl_size_t size,
+ upl_size_t super_cluster,
+ upl_t *upl,
+ upl_page_info_t *user_page_list,
+ unsigned int *page_list_count,
+ int cntrl_flags);
+
+/* should be just a regular vm_map_enter() */
+extern kern_return_t vm_map_enter_upl(
+ vm_map_t map,
+ upl_t upl,
+ vm_map_offset_t *dst_addr);
+
+/* should be just a regular vm_map_remove() */
+extern kern_return_t vm_map_remove_upl(
+ vm_map_t map,
+ upl_t upl);
+
+#ifdef UPL_DEBUG
+extern kern_return_t upl_ubc_alias_set(
+ upl_t upl,
+ unsigned int alias1,
+ unsigned int alias2);
+extern int upl_ubc_alias_get(
+ upl_t upl,
+ unsigned int * al,
+ unsigned int * al2);
+#endif /* UPL_DEBUG */
+
+/* wired page list structure */
+typedef unsigned long *wpl_array_t;
+
+extern void vm_page_free_list(
+ register vm_page_t mem);
+
+extern void vm_page_free_reserve(int pages);
+
+extern void vm_pageout_throttle_down(vm_page_t page);
+extern void vm_pageout_throttle_up(vm_page_t page);
+
+/*
+ * ENCRYPTED SWAP:
+ */
+extern void upl_encrypt(
+ upl_t upl,
+ upl_offset_t crypt_offset,
+ upl_size_t crypt_size);
+extern void vm_page_encrypt(
+ vm_page_t page,
+ vm_map_offset_t kernel_map_offset);
+extern boolean_t vm_pages_encrypted; /* are there encrypted pages ? */
+extern void vm_page_decrypt(
+ vm_page_t page,
+ vm_map_offset_t kernel_map_offset);
+extern kern_return_t vm_paging_map_object(
+ vm_map_offset_t *address,
+ vm_page_t page,
+ vm_object_t object,
+ vm_object_offset_t offset,
+ vm_map_size_t *size);
+extern void vm_paging_unmap_object(
+ vm_object_t object,
+ vm_map_offset_t start,
+ vm_map_offset_t end);
+decl_simple_lock_data(extern, vm_paging_lock)