+ kern_return_t retval = KERN_SUCCESS;
+
+ hibernate_page_list_t * page_list = NULL;
+ hibernate_page_list_t * page_list_wired = NULL;
+ hibernate_page_list_t * page_list_pal = NULL;
+
+ page_list = hibernate_page_list_allocate(TRUE);
+ if (!page_list) {
+ HIBLOG("%s: failed for page_list\n", __FUNCTION__);
+ retval = KERN_RESOURCE_SHORTAGE;
+ goto done;
+ }
+ page_list_wired = hibernate_page_list_allocate(FALSE);
+ if (!page_list_wired) {
+ kfree(page_list, page_list->list_size);
+ HIBLOG("%s: failed for page_list_wired\n", __FUNCTION__);
+ retval = KERN_RESOURCE_SHORTAGE;
+ goto done;
+ }
+ page_list_pal = hibernate_page_list_allocate(FALSE);
+ if (!page_list_pal) {
+ kfree(page_list, page_list->list_size);
+ kfree(page_list_wired, page_list_wired->list_size);
+ HIBLOG("%s: failed for page_list_pal\n", __FUNCTION__);
+ retval = KERN_RESOURCE_SHORTAGE;
+ goto done;
+ }
+ *page_list_ret = page_list;
+ *page_list_wired_ret = page_list_wired;
+ *page_list_pal_ret = page_list_pal;
+
+done:
+ return retval;
+}