diff options
| author | Matthew Dillon <dillon@FreeBSD.org> | 2000-05-29 22:40:54 +0000 |
|---|---|---|
| committer | Matthew Dillon <dillon@FreeBSD.org> | 2000-05-29 22:40:54 +0000 |
| commit | 8b03c8ed5ea3bda230e983629dfc471e69b0f7f2 (patch) | |
| tree | 3f153a655a0604c9397cdb1f14b74dfc48ea45d7 /sys/kern/sysv_shm.c | |
| parent | b620c1f5d6142c704bbbe098611e3c80f313b18c (diff) | |
Notes
Diffstat (limited to 'sys/kern/sysv_shm.c')
| -rw-r--r-- | sys/kern/sysv_shm.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/sys/kern/sysv_shm.c b/sys/kern/sysv_shm.c index 16019dcfebbd..11a55686162b 100644 --- a/sys/kern/sysv_shm.c +++ b/sys/kern/sysv_shm.c @@ -126,12 +126,15 @@ struct shminfo shminfo = { SHMALL }; +static int shm_use_phys; + SYSCTL_DECL(_kern_ipc); SYSCTL_INT(_kern_ipc, OID_AUTO, shmmax, CTLFLAG_RW, &shminfo.shmmax, 0, ""); SYSCTL_INT(_kern_ipc, OID_AUTO, shmmin, CTLFLAG_RW, &shminfo.shmmin, 0, ""); SYSCTL_INT(_kern_ipc, OID_AUTO, shmmni, CTLFLAG_RD, &shminfo.shmmni, 0, ""); SYSCTL_INT(_kern_ipc, OID_AUTO, shmseg, CTLFLAG_RW, &shminfo.shmseg, 0, ""); SYSCTL_INT(_kern_ipc, OID_AUTO, shmall, CTLFLAG_RW, &shminfo.shmall, 0, ""); +SYSCTL_INT(_kern_ipc, OID_AUTO, shm_use_phys, CTLFLAG_RW, &shm_use_phys, 0, ""); static int shm_find_segment_by_key(key) @@ -528,13 +531,13 @@ shmget_allocate_segment(p, uap, mode) * We make sure that we have allocated a pager before we need * to. */ -#ifdef SHM_PHYS_BACKED - shm_handle->shm_object = - vm_pager_allocate(OBJT_PHYS, 0, size, VM_PROT_DEFAULT, 0); -#else - shm_handle->shm_object = - vm_pager_allocate(OBJT_SWAP, 0, size, VM_PROT_DEFAULT, 0); -#endif + if (shm_use_phys) { + shm_handle->shm_object = + vm_pager_allocate(OBJT_PHYS, 0, size, VM_PROT_DEFAULT, 0); + } else { + shm_handle->shm_object = + vm_pager_allocate(OBJT_SWAP, 0, size, VM_PROT_DEFAULT, 0); + } vm_object_clear_flag(shm_handle->shm_object, OBJ_ONEMAPPING); vm_object_set_flag(shm_handle->shm_object, OBJ_NOSPLIT); |
