Deleted Added
full compact
sysv_shm.c (60758) sysv_shm.c (61081)
1/* $FreeBSD: head/sys/kern/sysv_shm.c 60758 2000-05-21 13:52:13Z peter $ */
1/* $FreeBSD: head/sys/kern/sysv_shm.c 61081 2000-05-29 22:40:54Z dillon $ */
2/* $NetBSD: sysv_shm.c,v 1.23 1994/07/04 23:25:12 glass Exp $ */
3
4/*
5 * Copyright (c) 1994 Adam Glass and Charles Hannum. All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:

--- 111 unchanged lines hidden (view full) ---

121struct shminfo shminfo = {
122 SHMMAX,
123 SHMMIN,
124 SHMMNI,
125 SHMSEG,
126 SHMALL
127};
128
2/* $NetBSD: sysv_shm.c,v 1.23 1994/07/04 23:25:12 glass Exp $ */
3
4/*
5 * Copyright (c) 1994 Adam Glass and Charles Hannum. All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:

--- 111 unchanged lines hidden (view full) ---

121struct shminfo shminfo = {
122 SHMMAX,
123 SHMMIN,
124 SHMMNI,
125 SHMSEG,
126 SHMALL
127};
128
129static int shm_use_phys;
130
129SYSCTL_DECL(_kern_ipc);
130SYSCTL_INT(_kern_ipc, OID_AUTO, shmmax, CTLFLAG_RW, &shminfo.shmmax, 0, "");
131SYSCTL_INT(_kern_ipc, OID_AUTO, shmmin, CTLFLAG_RW, &shminfo.shmmin, 0, "");
132SYSCTL_INT(_kern_ipc, OID_AUTO, shmmni, CTLFLAG_RD, &shminfo.shmmni, 0, "");
133SYSCTL_INT(_kern_ipc, OID_AUTO, shmseg, CTLFLAG_RW, &shminfo.shmseg, 0, "");
134SYSCTL_INT(_kern_ipc, OID_AUTO, shmall, CTLFLAG_RW, &shminfo.shmall, 0, "");
131SYSCTL_DECL(_kern_ipc);
132SYSCTL_INT(_kern_ipc, OID_AUTO, shmmax, CTLFLAG_RW, &shminfo.shmmax, 0, "");
133SYSCTL_INT(_kern_ipc, OID_AUTO, shmmin, CTLFLAG_RW, &shminfo.shmmin, 0, "");
134SYSCTL_INT(_kern_ipc, OID_AUTO, shmmni, CTLFLAG_RD, &shminfo.shmmni, 0, "");
135SYSCTL_INT(_kern_ipc, OID_AUTO, shmseg, CTLFLAG_RW, &shminfo.shmseg, 0, "");
136SYSCTL_INT(_kern_ipc, OID_AUTO, shmall, CTLFLAG_RW, &shminfo.shmall, 0, "");
137SYSCTL_INT(_kern_ipc, OID_AUTO, shm_use_phys, CTLFLAG_RW, &shm_use_phys, 0, "");
135
136static int
137shm_find_segment_by_key(key)
138 key_t key;
139{
140 int i;
141
142 for (i = 0; i < shmalloced; i++)

--- 380 unchanged lines hidden (view full) ---

523 shm_handle = (struct shm_handle *)
524 malloc(sizeof(struct shm_handle), M_SHM, M_WAITOK);
525 shmid = IXSEQ_TO_IPCID(segnum, shmseg->shm_perm);
526
527 /*
528 * We make sure that we have allocated a pager before we need
529 * to.
530 */
138
139static int
140shm_find_segment_by_key(key)
141 key_t key;
142{
143 int i;
144
145 for (i = 0; i < shmalloced; i++)

--- 380 unchanged lines hidden (view full) ---

526 shm_handle = (struct shm_handle *)
527 malloc(sizeof(struct shm_handle), M_SHM, M_WAITOK);
528 shmid = IXSEQ_TO_IPCID(segnum, shmseg->shm_perm);
529
530 /*
531 * We make sure that we have allocated a pager before we need
532 * to.
533 */
531#ifdef SHM_PHYS_BACKED
532 shm_handle->shm_object =
533 vm_pager_allocate(OBJT_PHYS, 0, size, VM_PROT_DEFAULT, 0);
534#else
535 shm_handle->shm_object =
536 vm_pager_allocate(OBJT_SWAP, 0, size, VM_PROT_DEFAULT, 0);
537#endif
534 if (shm_use_phys) {
535 shm_handle->shm_object =
536 vm_pager_allocate(OBJT_PHYS, 0, size, VM_PROT_DEFAULT, 0);
537 } else {
538 shm_handle->shm_object =
539 vm_pager_allocate(OBJT_SWAP, 0, size, VM_PROT_DEFAULT, 0);
540 }
538 vm_object_clear_flag(shm_handle->shm_object, OBJ_ONEMAPPING);
539 vm_object_set_flag(shm_handle->shm_object, OBJ_NOSPLIT);
540
541 shmseg->shm_internal = shm_handle;
542 shmseg->shm_perm.cuid = shmseg->shm_perm.uid = cred->cr_uid;
543 shmseg->shm_perm.cgid = shmseg->shm_perm.gid = cred->cr_gid;
544 shmseg->shm_perm.mode = (shmseg->shm_perm.mode & SHMSEG_WANTED) |
545 (mode & ACCESSPERMS) | SHMSEG_ALLOCATED;

--- 133 unchanged lines hidden ---
541 vm_object_clear_flag(shm_handle->shm_object, OBJ_ONEMAPPING);
542 vm_object_set_flag(shm_handle->shm_object, OBJ_NOSPLIT);
543
544 shmseg->shm_internal = shm_handle;
545 shmseg->shm_perm.cuid = shmseg->shm_perm.uid = cred->cr_uid;
546 shmseg->shm_perm.cgid = shmseg->shm_perm.gid = cred->cr_gid;
547 shmseg->shm_perm.mode = (shmseg->shm_perm.mode & SHMSEG_WANTED) |
548 (mode & ACCESSPERMS) | SHMSEG_ALLOCATED;

--- 133 unchanged lines hidden ---