Lines Matching refs:shadow
152 * those pages that have been changed. The "shadow"
155 * field indicates where in the "shadow" these contents begin.
470 vm_object_template.shadow = VM_OBJECT_NULL;
649 vm_object_t shadow = VM_OBJECT_NULL;
807 object->shadow != VM_OBJECT_NULL) {
813 * useless shadow chain.
882 * Remove shadow now if we don't
886 shadow = object->shadow;
887 object->shadow = VM_OBJECT_NULL;
896 assert(object->shadow == VM_OBJECT_NULL);
915 * If we have a shadow that we need
919 if (! cache_shadows && shadow != VM_OBJECT_NULL) {
920 object = shadow;
928 * returns with a shadow for us to deallocate,
930 * when we are done deallocating the shadow.
952 * Terminate this object. If it had a shadow,
955 * we are done. "pageout" objects have a shadow,
959 shadow = object->pageout?VM_OBJECT_NULL:object->shadow;
963 if (shadow != VM_OBJECT_NULL) {
964 object = shadow;
990 vm_object_t shadow;
1043 * If the object had a shadow, we let vm_object_deallocate
1044 * deallocate it. "pageout" objects have a shadow, but
1049 shadow = object->pageout?VM_OBJECT_NULL:object->shadow;
1052 if (shadow != VM_OBJECT_NULL) {
1054 return shadow;
1056 vm_object_deallocate(shadow);
1080 * The shadow object reference is left alone.
1290 * Detach the object from its shadow if we are the shadow's
1291 * copy. The reference we hold on the shadow must be dropped
1294 if (((shadow_object = object->shadow) != VM_OBJECT_NULL) &&
1330 * object's reference on its shadow object yet.
1344 * and no longer needs its shadow object but still holds a
1421 assert(object->shadow != VM_OBJECT_NULL);
1488 object->shadow = VM_OBJECT_NULL;
1550 object->pageout ? VM_OBJECT_NULL : object->shadow;
1559 * its shadow object.
1846 if (object->shadow) {
1853 tmp_object = object->shadow;
1879 * shadow chain from the top-level object to
1998 * Must follow shadow chain to remove access
2003 next_object = object->shadow;
2679 * completely shadow the original object, since
2680 * it may have several users who want to shadow
2684 assert((old_copy->shadow == src_object) &&
2727 * Make the old copy-object shadow the new one.
2737 old_copy->shadow = new_copy;
2740 new_copy->ref_count++; /* for old_copy->shadow ref. */
2756 new_copy->shadow = src_object;
2919 * Determine if we really need a shadow.
2923 (source->shadow == VM_OBJECT_NULL ||
2924 source->shadow->copy == VM_OBJECT_NULL))
2944 result->shadow = source;
3028 * knowledge is important to the shadow object mechanism.]
3441 * pages that shadow them.
3555 * If the shadow offset is 0, the use the existence map from
3556 * the backing object if there is one. If the shadow offset is
3559 * XXX - If the shadow offset is not 0 then a bit copy is needed
3581 * Note that the reference to backing_object->shadow
3587 object->shadow = backing_object->shadow;
3588 if (object->shadow) {
3591 /* no shadow, therefore no shadow offset... */
3594 assert((object->shadow == VM_OBJECT_NULL) ||
3595 (object->shadow->copy != backing_object));
3628 * Make the parent shadow the next object
3637 * conditionally increment shadow's
3640 * on shadow alone.
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);
3656 object->shadow = backing_object->shadow;
3657 if (object->shadow) {
3660 /* no shadow, therefore no shadow offset... */
3789 backing_object = object->shadow;
3802 /* try and collapse the rest of the shadow chain */
3824 /* try and collapse the rest of the shadow chain */
3837 * just shadow the next object in the chain, old
3842 if (backing_object->shadow != VM_OBJECT_NULL &&
3843 backing_object->shadow->copy == backing_object) {
3844 /* try and collapse the rest of the shadow chain */
3915 /* try and collapse the rest of the shadow chain */
3947 /* try and collapse the rest of the shadow chain */
3965 /* try and collapse the rest of the shadow chain */
3976 * object no longer has to shadow the backing
3977 * object; it can shadow the next one in the
4014 /* try and collapse the rest of the shadow chain */
4069 /* try and collapse the rest of the shadow chain */
4110 /* try and collapse the rest of the shadow chain */
4274 (prev_object->shadow != VM_OBJECT_NULL) ||
4460 printf(", shadow=0x%x", object->shadow);
4466 object = object->shadow;
4501 iprintf("shadow=0x%x", object->shadow);
4502 if (object->shadow) {
4504 vm_object_t shadow = object;
4505 while((shadow = shadow->shadow))
4682 obj = obj->shadow;
4812 vm_object_t shadow;
4845 * If the object had a shadow, we let
4847 * "pageout" objects have a shadow, but
4852 shadow = object->pageout?VM_OBJECT_NULL:object->shadow;
4854 && (shadow != VM_OBJECT_NULL)) {
4855 vm_object_deallocate(shadow);
5011 vm_object_t shadow;
5072 shadow = object->pageout?VM_OBJECT_NULL:object->shadow;
5081 if (shadow != VM_OBJECT_NULL) {
5083 object = shadow;
5547 * even as we iterate down the shadow chain. Locks on intermediate objects
5567 /* iterate on shadow, if present */
5568 if (object->shadow != VM_OBJECT_NULL) {
5569 vm_object_t tmp_object = object->shadow;
5590 * even as we iterate down the shadow chain. Locks on intermediate objects
5606 (object->shadow != VM_OBJECT_NULL)) {
5607 vm_object_t tmp_object = object->shadow;
5706 object1->copy || object1->shadow || object1->shadowed ||
5709 * We don't deal with copy or shadow objects (yet).
5733 object2->copy || object2->shadow || object2->shadowed ||
5854 /* there should be no "shadow" */
5855 assert(!object1->shadow);
5856 assert(!object2->shadow);