* Unmap memory in user space. */
| 444 | * Unmap memory in user space. |
| 445 | */ |
| 446 | int |
| 447 | copyout_unmap(struct thread *td, vm_offset_t addr, size_t sz) |
| 448 | { |
| 449 | vm_map_t map; |
| 450 | vm_size_t size; |
| 451 | |
| 452 | if (sz == 0) |
| 453 | return (0); |
| 454 | |
| 455 | map = &td->td_proc->p_vmspace->vm_map; |
| 456 | size = (vm_size_t)round_page(sz); |
| 457 | |
| 458 | if (vm_map_remove(map, addr, addr + size) != KERN_SUCCESS) |
| 459 | return (EINVAL); |
| 460 | |
| 461 | return (0); |
| 462 | } |
| 463 | |
| 464 | int32_t |
| 465 | fuword32(volatile const void *addr) |
nothing calls this directly
no test coverage detected