summaryrefslogtreecommitdiff
path: root/contrib/sendmail/libsm/shm.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/sendmail/libsm/shm.c')
-rw-r--r--contrib/sendmail/libsm/shm.c102
1 files changed, 0 insertions, 102 deletions
diff --git a/contrib/sendmail/libsm/shm.c b/contrib/sendmail/libsm/shm.c
deleted file mode 100644
index 35ae02856a6ec..0000000000000
--- a/contrib/sendmail/libsm/shm.c
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (c) 2000-2001 Sendmail, Inc. and its suppliers.
- * All rights reserved.
- *
- * By using this file, you agree to the terms and conditions set
- * forth in the LICENSE file which can be found at the top level of
- * the sendmail distribution.
- */
-
-#include <sm/gen.h>
-SM_RCSID("@(#)$Id: shm.c,v 1.10 2001/12/14 00:22:58 ca Exp $")
-
-#if SM_CONF_SHM
-# include <stdlib.h>
-# include <unistd.h>
-# include <errno.h>
-# include <sm/shm.h>
-
-/*
-** SM_SHMSTART -- initialize shared memory segment.
-**
-** Parameters:
-** key -- key for shared memory.
-** size -- size of segment.
-** shmflag -- initial flags.
-** shmid -- pointer to return id.
-** owner -- create segment.
-**
-** Returns:
-** pointer to shared memory segment,
-** NULL on failure.
-**
-** Side Effects:
-** attaches shared memory segment.
-*/
-
-void *
-sm_shmstart(key, size, shmflg, shmid, owner)
- key_t key;
- int size;
- int shmflg;
- int *shmid;
- bool owner;
-{
- int save_errno;
- void *shm = SM_SHM_NULL;
-
- /* default: user/group accessible */
- if (shmflg == 0)
- shmflg = SHM_R|SHM_W|(SHM_R>>3)|(SHM_W>>3);
- if (owner)
- shmflg |= IPC_CREAT|IPC_EXCL;
- *shmid = shmget(key, size, shmflg);
- if (*shmid < 0)
- goto error;
-
- shm = shmat(*shmid, (void *) 0, 0);
- if (shm == SM_SHM_NULL)
- goto error;
-
- return shm;
-
- error:
- save_errno = errno;
- if (shm != SM_SHM_NULL || *shmid >= 0)
- sm_shmstop(shm, *shmid, owner);
- *shmid = SM_SHM_NO_ID;
- errno = save_errno;
- return (void *) 0;
-}
-
-/*
-** SM_SHMSTOP -- stop using shared memory segment.
-**
-** Parameters:
-** shm -- pointer to shared memory.
-** shmid -- id.
-** owner -- delete segment.
-**
-** Returns:
-** 0 on success.
-** < 0 on failure.
-**
-** Side Effects:
-** detaches (and maybe removes) shared memory segment.
-*/
-
-int
-sm_shmstop(shm, shmid, owner)
- void *shm;
- int shmid;
- bool owner;
-{
- int r;
-
- if (shm != SM_SHM_NULL && (r = shmdt(shm)) < 0)
- return r;
- if (owner && shmid >= 0 && (r = shmctl(shmid, IPC_RMID, NULL)) < 0)
- return r;
- return 0;
-}
-#endif /* SM_CONF_SHM */