| 2636 | #include <ddb/ddb.h> |
| 2637 | |
| 2638 | static int |
| 2639 | _vm_object_in_map(vm_map_t map, vm_object_t object, vm_map_entry_t entry) |
| 2640 | { |
| 2641 | vm_map_t tmpm; |
| 2642 | vm_map_entry_t tmpe; |
| 2643 | vm_object_t obj; |
| 2644 | |
| 2645 | if (map == 0) |
| 2646 | return 0; |
| 2647 | |
| 2648 | if (entry == 0) { |
| 2649 | VM_MAP_ENTRY_FOREACH(tmpe, map) { |
| 2650 | if (_vm_object_in_map(map, object, tmpe)) { |
| 2651 | return 1; |
| 2652 | } |
| 2653 | } |
| 2654 | } else if (entry->eflags & MAP_ENTRY_IS_SUB_MAP) { |
| 2655 | tmpm = entry->object.sub_map; |
| 2656 | VM_MAP_ENTRY_FOREACH(tmpe, tmpm) { |
| 2657 | if (_vm_object_in_map(tmpm, object, tmpe)) { |
| 2658 | return 1; |
| 2659 | } |
| 2660 | } |
| 2661 | } else if ((obj = entry->object.vm_object) != NULL) { |
| 2662 | for (; obj; obj = obj->backing_object) |
| 2663 | if (obj == object) { |
| 2664 | return 1; |
| 2665 | } |
| 2666 | } |
| 2667 | return 0; |
| 2668 | } |
| 2669 | |
| 2670 | static int |
| 2671 | vm_object_in_map(vm_object_t object) |