diff options
| author | Bruce M Simpson <bms@FreeBSD.org> | 2003-10-05 12:41:08 +0000 |
|---|---|---|
| committer | Bruce M Simpson <bms@FreeBSD.org> | 2003-10-05 12:41:08 +0000 |
| commit | 5d264f84f3d33226bf217321f96c7c7ce297bec7 (patch) | |
| tree | 9f98d47bafb216e8383012df10a90997ad9a8e43 | |
| parent | d184af19f540d4704ea5a56d3d158c69268d2086 (diff) | |
Notes
| -rw-r--r-- | sys/vm/vm_extern.h | 2 | ||||
| -rw-r--r-- | sys/vm/vm_glue.c | 29 |
2 files changed, 31 insertions, 0 deletions
diff --git a/sys/vm/vm_extern.h b/sys/vm/vm_extern.h index ee71f8133e5a2..07f28fa31db38 100644 --- a/sys/vm/vm_extern.h +++ b/sys/vm/vm_extern.h @@ -88,6 +88,8 @@ void vmspace_unshare(struct proc *); void vmspace_free(struct vmspace *); void vmspace_exitfree(struct proc *); void vnode_pager_setsize(struct vnode *, vm_ooffset_t); +void vslock(void *, u_int); +void vsunlock(void *, u_int); void vm_object_print(/* db_expr_t */ long, boolean_t, /* db_expr_t */ long, char *); int vm_fault_quick(caddr_t v, int prot); diff --git a/sys/vm/vm_glue.c b/sys/vm/vm_glue.c index b1e1cdfa96def..6e2872f65ebfa 100644 --- a/sys/vm/vm_glue.c +++ b/sys/vm/vm_glue.c @@ -180,6 +180,35 @@ useracc(addr, len, rw) } /* + * MPSAFE + */ +void +vslock(addr, len) + void *addr; + u_int len; +{ + + vm_map_wire(&curproc->p_vmspace->vm_map, trunc_page((vm_offset_t)addr), + round_page((vm_offset_t)addr + len), + VM_MAP_WIRE_SYSTEM|VM_MAP_WIRE_NOHOLES); +} + +/* + * MPSAFE + */ +void +vsunlock(addr, len) + void *addr; + u_int len; +{ + + vm_map_unwire(&curproc->p_vmspace->vm_map, + trunc_page((vm_offset_t)addr), + round_page((vm_offset_t)addr + len), + VM_MAP_WIRE_SYSTEM|VM_MAP_WIRE_NOHOLES); +} + +/* * Create the U area for a new process. * This routine directly affects the fork perf for a process. */ |
