Lines Matching refs:dst_page
2599 vm_page_t dst_page = VM_PAGE_NULL;
2779 if ( ((dst_page = vm_page_lookup(object, dst_offset)) == VM_PAGE_NULL) ||
2780 dst_page->fictitious ||
2781 dst_page->absent ||
2782 dst_page->error ||
2783 (dst_page->wire_count && !dst_page->pageout && !dst_page->list_req_pending)) {
2797 if (dst_page->pmapped)
2798 refmod_state = pmap_get_refmod(dst_page->phys_page);
2802 if ( (refmod_state & VM_MEM_REFERENCED) && dst_page->inactive ) {
2809 vm_page_activate(dst_page);
2816 if (dst_page->list_req_pending || !(cntrl_flags & UPL_FOR_PAGEOUT)) {
2824 if (dst_page->dirty || dst_page->precious || (refmod_state & VM_MEM_MODIFIED))
2838 ((refmod_state & VM_MEM_MODIFIED) || dst_page->dirty || dst_page->precious) ) {
2852 if (dst_page->busy && (!(dst_page->list_req_pending && dst_page->pageout))) {
2866 PAGE_SLEEP(object, dst_page, THREAD_UNINT);
2873 if ((dst_page->cleaning || dst_page->absent || dst_page->wire_count != 0) && !dst_page->list_req_pending) {
2886 if (! (cntrl_flags & UPL_ENCRYPT) && dst_page->encrypted) {
2897 was_busy = dst_page->busy;
2898 dst_page->busy = TRUE;
2900 vm_page_decrypt(dst_page, 0);
2905 dst_page->busy = was_busy;
2910 if (dst_page->pageout_queue == TRUE)
2918 vm_pageout_queue_steal(dst_page);
2926 if (dst_page->list_req_pending)
2928 if ((dst_page->dirty || (dst_page->object->internal && dst_page->precious)) && !dst_page->list_req_pending) {
2940 dst_page->list_req_pending = FALSE;
2941 dst_page->busy = FALSE;
2944 dirty = hw_dirty ? TRUE : dst_page->dirty;
2946 if (dst_page->phys_page > upl->highest_page)
2947 upl->highest_page = dst_page->phys_page;
2956 pmap_clear_modify(dst_page->phys_page);
2962 dst_page->cleaning = TRUE;
2963 dst_page->precious = FALSE;
2971 vm_pageclean_setup(dst_page, alias_page, upl->map_object, size - xfer_size);
2982 vm_external_state_set(object->existence_map, dst_page->offset);
2984 dst_page->dirty = dirty;
2987 dst_page->precious = TRUE;
2989 if (dst_page->pageout)
2990 dst_page->busy = TRUE;
3007 dst_page->busy = TRUE;
3008 dst_page->encrypted_cleaning = TRUE;
3015 if ((!dst_page->pageout) && (dst_page->wire_count == 0)) {
3016 dst_page->busy = TRUE;
3017 dst_page->pageout = TRUE;
3018 vm_page_wire(dst_page);
3069 dst_page = vm_page_lookup(object, dst_offset);
3071 if (dst_page != VM_PAGE_NULL) {
3072 if ( !(dst_page->list_req_pending) ) {
3073 if ((cntrl_flags & UPL_RET_ONLY_ABSENT) && !dst_page->absent) {
3082 if (dst_page->cleaning) {
3089 PAGE_SLEEP(object, dst_page, THREAD_UNINT);
3094 if (dst_page->fictitious &&
3095 dst_page->phys_page == vm_page_fictitious_addr) {
3096 assert( !dst_page->speculative);
3100 dst_page->list_req_pending = FALSE;
3102 vm_page_free(dst_page);
3104 dst_page = NULL;
3105 } else if (dst_page->absent) {
3109 dst_page->list_req_pending = FALSE;
3110 dst_page->busy = FALSE;
3114 if (dst_page == VM_PAGE_NULL) {
3133 dst_page = vm_page_grab();
3135 if (dst_page == VM_PAGE_NULL) {
3183 vm_page_insert_internal(dst_page, object, dst_offset, TRUE);
3185 dst_page->absent = TRUE;
3186 dst_page->busy = FALSE;
3197 dst_page->clustered = TRUE;
3208 dst_page->encrypted = TRUE;
3214 dst_page->encrypted = FALSE;
3216 dst_page->overwriting = TRUE;
3218 if (dst_page->fictitious) {
3221 if (dst_page->busy) {
3229 PAGE_SLEEP(object, dst_page, THREAD_UNINT);
3233 if (dst_page->pmapped) {
3239 refmod_state = pmap_disconnect(dst_page->phys_page);
3241 refmod_state = pmap_get_refmod(dst_page->phys_page);
3246 dirty = hw_dirty ? TRUE : dst_page->dirty;
3255 pmap_clear_modify(dst_page->phys_page);
3261 dst_page->cleaning = TRUE;
3262 dst_page->precious = FALSE;
3270 vm_pageclean_setup(dst_page, alias_page, upl->map_object, size - xfer_size);
3288 dst_page->dirty = dirty;
3291 dst_page->precious = TRUE;
3293 if (dst_page->wire_count == 0) {
3298 dst_page->busy = TRUE;
3300 vm_page_wire(dst_page);
3302 if (dst_page->clustered) {
3310 dst_page->reference = FALSE;
3315 dst_page->reference = TRUE;
3317 dst_page->precious = (cntrl_flags & UPL_PRECIOUS) ? TRUE : FALSE;
3319 if (dst_page->phys_page > upl->highest_page)
3320 upl->highest_page = dst_page->phys_page;
3322 user_page_list[entry].phys_addr = dst_page->phys_page;
3323 user_page_list[entry].pageout = dst_page->pageout;
3324 user_page_list[entry].absent = dst_page->absent;
3325 user_page_list[entry].dirty = dst_page->dirty;
3326 user_page_list[entry].precious = dst_page->precious;
3328 if (dst_page->clustered == TRUE)
3329 user_page_list[entry].speculative = dst_page->speculative;
3332 user_page_list[entry].cs_validated = dst_page->cs_validated;
3333 user_page_list[entry].cs_tainted = dst_page->cs_tainted;
3348 VM_PAGE_CONSUME_CLUSTERED(dst_page);
4722 vm_page_t dst_page;
4882 dst_page = vm_page_lookup(object, dst_offset);
4889 if ((dst_page == VM_PAGE_NULL) || (dst_page->busy) ||
4890 (dst_page->encrypted) ||
4891 (dst_page->unusual && (dst_page->error ||
4892 dst_page->restart ||
4893 dst_page->absent ||
4894 dst_page->fictitious))) {
4915 &prot, &dst_page, &top_page,
4924 PAGE_WAKEUP_DONE(dst_page);
4934 if (top_page->object != dst_page->object) {
4979 dst_page->phys_page >= (max_valid_dma_address >> PAGE_SHIFT) ) {
4991 if (dst_page->wire_count) {
5012 if (dst_page->pmapped)
5013 refmod = pmap_disconnect(dst_page->phys_page);
5016 vm_page_copy(dst_page, low_page);
5018 low_page->reference = dst_page->reference;
5019 low_page->dirty = dst_page->dirty;
5034 dst_page = low_page;
5040 dst_page->busy = FALSE;
5045 vm_page_wire(dst_page);
5053 assert(!dst_page->fictitious);
5054 dst_page->busy = TRUE;
5063 dst_page->reference = TRUE;
5066 dst_page->dirty = TRUE;
5068 if (dst_page->phys_page > upl->highest_page)
5069 upl->highest_page = dst_page->phys_page;
5072 user_page_list[entry].phys_addr = dst_page->phys_page;
5073 user_page_list[entry].pageout = dst_page->pageout;
5074 user_page_list[entry].absent = dst_page->absent;
5075 user_page_list[entry].dirty = dst_page->dirty;
5076 user_page_list[entry].precious = dst_page->precious;
5078 if (dst_page->clustered == TRUE)
5079 user_page_list[entry].speculative = dst_page->speculative;
5082 user_page_list[entry].cs_validated = dst_page->cs_validated;
5083 user_page_list[entry].cs_tainted = dst_page->cs_tainted;
5090 VM_PAGE_CONSUME_CLUSTERED(dst_page);
5128 dst_page = vm_page_lookup(object, offset);
5130 if (dst_page == VM_PAGE_NULL)
5134 vm_page_unwire(dst_page);