Module Name: src Committed By: pooka Date: Thu Jan 13 15:38:30 UTC 2011
Modified Files: src/sys/rump/librump/rumpkern: lwproc.c rump_private.h rumpcopy.c vm.c Log Message: Introduce RUMP_LOCALPROC_P() macro and use it. To generate a diff of this commit: cvs rdiff -u -r1.9 -r1.10 src/sys/rump/librump/rumpkern/lwproc.c cvs rdiff -u -r1.68 -r1.69 src/sys/rump/librump/rumpkern/rump_private.h cvs rdiff -u -r1.15 -r1.16 src/sys/rump/librump/rumpkern/rumpcopy.c cvs rdiff -u -r1.105 -r1.106 src/sys/rump/librump/rumpkern/vm.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/rump/librump/rumpkern/lwproc.c diff -u src/sys/rump/librump/rumpkern/lwproc.c:1.9 src/sys/rump/librump/rumpkern/lwproc.c:1.10 --- src/sys/rump/librump/rumpkern/lwproc.c:1.9 Wed Jan 12 12:51:21 2011 +++ src/sys/rump/librump/rumpkern/lwproc.c Thu Jan 13 15:38:29 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: lwproc.c,v 1.9 2011/01/12 12:51:21 pooka Exp $ */ +/* $NetBSD: lwproc.c,v 1.10 2011/01/13 15:38:29 pooka Exp $ */ /* * Copyright (c) 2010, 2011 Antti Kantee. All Rights Reserved. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: lwproc.c,v 1.9 2011/01/12 12:51:21 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lwproc.c,v 1.10 2011/01/13 15:38:29 pooka Exp $"); #include <sys/param.h> #include <sys/atomic.h> @@ -78,7 +78,7 @@ cv_destroy(&p->p_lwpcv); /* non-kernel vmspaces are not shared */ - if (p->p_vmspace != vmspace_kernel()) { + if (!RUMP_LOCALPROC_P(p)) { KASSERT(p->p_vmspace->vm_refcnt == 1); kmem_free(p->p_vmspace, sizeof(*p->p_vmspace)); } Index: src/sys/rump/librump/rumpkern/rump_private.h diff -u src/sys/rump/librump/rumpkern/rump_private.h:1.68 src/sys/rump/librump/rumpkern/rump_private.h:1.69 --- src/sys/rump/librump/rumpkern/rump_private.h:1.68 Tue Jan 11 09:22:32 2011 +++ src/sys/rump/librump/rumpkern/rump_private.h Thu Jan 13 15:38:29 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: rump_private.h,v 1.68 2011/01/11 09:22:32 pooka Exp $ */ +/* $NetBSD: rump_private.h,v 1.69 2011/01/13 15:38:29 pooka Exp $ */ /* * Copyright (c) 2007 Antti Kantee. All Rights Reserved. @@ -88,6 +88,8 @@ #define RUMPMEM_UNLIMITED ((unsigned long)-1) extern unsigned long rump_physmemlimit; +#define RUMP_LOCALPROC_P(p) (p->p_vmspace == vmspace_kernel()) + void rump_component_init(enum rump_component_type); int rump_component_count(enum rump_component_type); Index: src/sys/rump/librump/rumpkern/rumpcopy.c diff -u src/sys/rump/librump/rumpkern/rumpcopy.c:1.15 src/sys/rump/librump/rumpkern/rumpcopy.c:1.16 --- src/sys/rump/librump/rumpkern/rumpcopy.c:1.15 Sun Jan 9 14:12:37 2011 +++ src/sys/rump/librump/rumpkern/rumpcopy.c Thu Jan 13 15:38:29 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpcopy.c,v 1.15 2011/01/09 14:12:37 pooka Exp $ */ +/* $NetBSD: rumpcopy.c,v 1.16 2011/01/13 15:38:29 pooka Exp $ */ /* * Copyright (c) 2009 Antti Kantee. All Rights Reserved. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rumpcopy.c,v 1.15 2011/01/09 14:12:37 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rumpcopy.c,v 1.16 2011/01/13 15:38:29 pooka Exp $"); #include <sys/param.h> #include <sys/lwp.h> @@ -46,7 +46,7 @@ return EFAULT; } - if (curproc->p_vmspace == vmspace_kernel()) { + if (RUMP_LOCALPROC_P(curproc)) { memcpy(kaddr, uaddr, len); } else if (len) { error = rumpuser_sp_copyin(curproc->p_vmspace->vm_map.pmap, @@ -65,7 +65,7 @@ return EFAULT; } - if (curproc->p_vmspace == vmspace_kernel()) { + if (RUMP_LOCALPROC_P(curproc)) { memcpy(uaddr, kaddr, len); } else if (len) { error = rumpuser_sp_copyout(curproc->p_vmspace->vm_map.pmap, @@ -79,7 +79,7 @@ { int error = 0; - if (curproc->p_vmspace == vmspace_kernel()) + if (RUMP_LOCALPROC_P(curproc)) *(char *)uaddr = byte; else error = rumpuser_sp_copyout(curproc->p_vmspace->vm_map.pmap, @@ -115,7 +115,7 @@ if (len == 0) return 0; - if (curproc->p_vmspace == vmspace_kernel()) + if (RUMP_LOCALPROC_P(curproc)) return copystr(uaddr, kaddr, len, done); if ((rv = rumpuser_sp_copyinstr(curproc->p_vmspace->vm_map.pmap, @@ -144,7 +144,7 @@ size_t slen; int error; - if (curproc->p_vmspace == vmspace_kernel()) + if (RUMP_LOCALPROC_P(curproc)) return copystr(kaddr, uaddr, len, done); slen = strlen(kaddr)+1; Index: src/sys/rump/librump/rumpkern/vm.c diff -u src/sys/rump/librump/rumpkern/vm.c:1.105 src/sys/rump/librump/rumpkern/vm.c:1.106 --- src/sys/rump/librump/rumpkern/vm.c:1.105 Sat Jan 8 09:40:05 2011 +++ src/sys/rump/librump/rumpkern/vm.c Thu Jan 13 15:38:29 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: vm.c,v 1.105 2011/01/08 09:40:05 pooka Exp $ */ +/* $NetBSD: vm.c,v 1.106 2011/01/13 15:38:29 pooka Exp $ */ /* * Copyright (c) 2007-2010 Antti Kantee. All Rights Reserved. @@ -41,7 +41,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vm.c,v 1.105 2011/01/08 09:40:05 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vm.c,v 1.106 2011/01/13 15:38:29 pooka Exp $"); #include <sys/param.h> #include <sys/atomic.h> @@ -378,7 +378,7 @@ if (*addr != 0) panic("uvm_mmap() variant unsupported"); - if (curproc->p_vmspace == vmspace_kernel()) { + if (RUMP_LOCALPROC_P(curproc)) { uaddr = rumpuser_anonmmap(NULL, size, 0, 0, &error); } else { error = rumpuser_sp_anonmmap(curproc->p_vmspace->vm_map.pmap, @@ -763,7 +763,7 @@ bp->b_saveaddr = bp->b_data; /* remote case */ - if (curproc->p_vmspace != vmspace_kernel()) { + if (!RUMP_LOCALPROC_P(curproc)) { bp->b_data = rump_hypermalloc(len, 0, true, "vmapbuf"); if (BUF_ISWRITE(bp)) { copyin(bp->b_saveaddr, bp->b_data, len); @@ -776,7 +776,7 @@ { /* remote case */ - if (bp->b_proc->p_vmspace != vmspace_kernel()) { + if (!RUMP_LOCALPROC_P(bp->b_proc)) { if (BUF_ISREAD(bp)) { copyout_proc(bp->b_proc, bp->b_data, bp->b_saveaddr, len);