Changeset View
Changeset View
Standalone View
Standalone View
sys/vm/vm_object.c
Show First 20 Lines • Show All 2,501 Lines • ▼ Show 20 Lines | for (; obj; obj = obj->backing_object) | ||||
} | } | ||||
} | } | ||||
return 0; | return 0; | ||||
} | } | ||||
static int | static int | ||||
vm_object_in_map(vm_object_t object) | vm_object_in_map(vm_object_t object) | ||||
{ | { | ||||
VPS_ITERATOR_DECL(vps_iter); | |||||
struct proc *p; | struct proc *p; | ||||
/* sx_slock(&allproc_lock); */ | /* VPS_LIST_RLOCK(); */ | ||||
VPS_FOREACH(vps_iter) { | |||||
CURVPS_SET(vps_iter); | |||||
/* sx_slock(&V_allproc_lock); */ | |||||
FOREACH_PROC_IN_SYSTEM(p) { | FOREACH_PROC_IN_SYSTEM(p) { | ||||
if (!p->p_vmspace /* || (p->p_flag & (P_SYSTEM|P_WEXIT)) */) | if (!p->p_vmspace | ||||
/* || (p->p_flag & (P_SYSTEM|P_WEXIT)) */) | |||||
continue; | continue; | ||||
if (_vm_object_in_map(&p->p_vmspace->vm_map, object, 0)) { | if (_vm_object_in_map(&p->p_vmspace->vm_map, object, | ||||
/* sx_sunlock(&allproc_lock); */ | 0)) { | ||||
/* sx_sunlock(&V_allproc_lock); */ | |||||
return 1; | return 1; | ||||
} | } | ||||
} | } | ||||
/* sx_sunlock(&allproc_lock); */ | /* sx_sunlock(&V_allproc_lock); */ | ||||
CURVPS_RESTORE(); | |||||
} | |||||
/* VPS_LIST_RUNLOCK(); */ | |||||
if (_vm_object_in_map(kernel_map, object, 0)) | if (_vm_object_in_map(kernel_map, object, 0)) | ||||
return 1; | return 1; | ||||
return 0; | return 0; | ||||
} | } | ||||
DB_SHOW_COMMAND(vmochk, vm_object_check) | DB_SHOW_COMMAND(vmochk, vm_object_check) | ||||
{ | { | ||||
vm_object_t object; | vm_object_t object; | ||||
▲ Show 20 Lines • Show All 164 Lines • Show Last 20 Lines |