| 268 | } |
| 269 | |
| 270 | static u_long * |
| 271 | v2sizev(vm_offset_t va) |
| 272 | { |
| 273 | vm_paddr_t pa; |
| 274 | struct vm_page *p; |
| 275 | |
| 276 | pa = pmap_kextract(va); |
| 277 | if (pa == 0) |
| 278 | panic("MemGuard detected double-free of %p", (void *)va); |
| 279 | p = PHYS_TO_VM_PAGE(pa); |
| 280 | KASSERT(vm_page_wired(p) && p->a.queue == PQ_NONE, |
| 281 | ("MEMGUARD: Expected wired page %p in vtomgfifo!", p)); |
| 282 | return (&p->plinks.memguard.v); |
| 283 | } |
| 284 | |
| 285 | /* |
| 286 | * Allocate a single object of specified size with specified flags |
no test coverage detected