Lines Matching defs:backing_object
192 vm_object_t backing_object);
196 vm_object_t backing_object);
3428 vm_object_t backing_object)
3438 * Move all in-memory pages from backing_object
3444 while (!queue_empty(&backing_object->memq)) {
3446 p = (vm_page_t) queue_first(&backing_object->memq);
3517 || (!backing_object->pager_created
3518 && (backing_object->pager == MEMORY_OBJECT_NULL)));
3523 if (backing_object->pager != MEMORY_OBJECT_NULL) {
3527 * Move the pager from backing_object to object.
3535 object->pager = backing_object->pager;
3539 object->pager_created = backing_object->pager_created;
3540 object->pager_control = backing_object->pager_control;
3541 object->pager_ready = backing_object->pager_ready;
3542 object->pager_initialized = backing_object->pager_initialized;
3544 backing_object->paging_offset + backing_offset;
3567 if (backing_offset || (size != backing_object->size)) {
3569 vm_external_destroy(backing_object->existence_map,
3570 backing_object->size);
3574 object->existence_map = backing_object->existence_map;
3576 backing_object->existence_map = VM_EXTERNAL_NULL;
3580 * Object now shadows whatever backing_object did.
3581 * Note that the reference to backing_object->shadow
3582 * moves from within backing_object to within object.
3586 assert(!backing_object->phys_contiguous);
3587 object->shadow = backing_object->shadow;
3589 object->shadow_offset += backing_object->shadow_offset;
3595 (object->shadow->copy != backing_object));
3598 * Discard backing_object.
3605 assert((backing_object->ref_count == 1) &&
3606 (backing_object->resident_page_count == 0) &&
3607 (backing_object->paging_in_progress == 0));
3609 backing_object->alive = FALSE;
3610 vm_object_unlock(backing_object);
3613 (integer_t)backing_object, 0,0,0,0);
3615 vm_object_lock_destroy(backing_object);
3617 zfree(vm_object_zone, backing_object);
3625 vm_object_t backing_object)
3632 vm_object_lock_assert_exclusive(backing_object);
3642 if (backing_object->shadow != VM_OBJECT_NULL) {
3643 vm_object_lock(backing_object->shadow);
3644 vm_object_lock_assert_exclusive(backing_object->shadow);
3645 backing_object->shadow->ref_count++;
3647 vm_object_res_reference(backing_object->shadow);
3648 vm_object_unlock(backing_object->shadow);
3651 vm_object_reference(backing_object->shadow);
3655 assert(!backing_object->phys_contiguous);
3656 object->shadow = backing_object->shadow;
3658 object->shadow_offset += backing_object->shadow_offset;
3668 if (backing_object->copy == object) {
3669 backing_object->copy = VM_OBJECT_NULL;
3673 * Drop the reference count on backing_object.
3696 if (backing_object->ref_count > 2 ||
3697 (!backing_object->named && backing_object->ref_count > 1)) {
3698 vm_object_lock_assert_exclusive(backing_object);
3699 backing_object->ref_count--;
3702 vm_object_res_deallocate(backing_object);
3703 assert(backing_object->ref_count > 0);
3705 vm_object_unlock(backing_object);
3716 vm_object_res_reference(backing_object);
3720 vm_object_unlock(backing_object);
3721 vm_object_deallocate(backing_object);
3758 register vm_object_t backing_object;
3789 backing_object = object->shadow;
3790 if (backing_object == VM_OBJECT_NULL) {
3803 vm_object_lock(backing_object);
3807 object = backing_object;
3811 vm_object_lock(backing_object);
3822 if (!backing_object->internal ||
3823 backing_object->paging_in_progress != 0) {
3828 object = backing_object;
3836 * pages' case), if we bypass backing_object and
3839 * BOTH into the (former) backing_object and into the
3842 if (backing_object->shadow != VM_OBJECT_NULL &&
3843 backing_object->shadow->copy == backing_object) {
3848 object = backing_object;
3864 * since collapsing a backing_object dumps new pages
3872 if (backing_object->ref_count == 1 &&
3875 || !backing_object->pager_created
3881 (integer_t)backing_object, (integer_t)object,
3882 (integer_t)backing_object->pager,
3883 (integer_t)backing_object->pager_control, 0);
3894 vm_object_unlock(backing_object);
3904 vm_object_do_collapse(object, backing_object);
3919 object = backing_object;
3942 if (backing_object->pager_created
3944 && (backing_object->existence_map == VM_EXTERNAL_NULL)
3951 object = backing_object;
3969 object = backing_object;
3987 backing_rcount = backing_object->resident_page_count;
4009 if (EXISTS_IN_OBJECT(backing_object, hint_offset +
4018 object = backing_object;
4023 * If the object's window onto the backing_object
4026 * walk the backing_object's resident pages first.
4038 size > ((backing_object->existence_map) ?
4047 backing_rcount = backing_object->resident_page_count;
4048 p = (vm_page_t)queue_first(&backing_object->memq);
4073 object = backing_object;
4083 if (backing_rcount || backing_object->existence_map)
4101 if (EXISTS_IN_OBJECT(backing_object, offset +
4114 object = backing_object;
4129 vm_object_do_bypass(object, backing_object);