* To avoid problems with several return arguments, we
* pass a packet.
*
- * BSHM definition is in bshm.h
+ * BSHM definition is in bshm.h
*
* By Kern Sibbald, May MM
*
+ * Version $Id$
+ *
* Note, this routine was originally written so that the DEVICE structures
* could be shared between the child processes. Now that the Storage
* daemon is threaded, these routines are no longer needed. Rather than
*/
/*
- Copyright (C) 2000, 2001, 2002 Kern Sibbald and John Walker
+ Copyright (C) 2000-2004 Kern Sibbald and John Walker
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
*/
+#ifdef implemented
+
#include "bacula.h"
-#ifndef HAVE_CYGWIN
+#if !defined(HAVE_CYGWIN) && !defined(HAVE_WIN32)
#ifdef NEED_SHARED_MEMORY
#define SHM_KEY 0x0BACB01 /* key for shared memory */
Dmsg1(110, "shm_create size=%d\n", shm->size);
for (i=0; i<MAX_TRIES; i++) {
if ((shmid = shmget(shmkey, shm->size, shm->perms | IPC_CREAT)) < 0) {
- Emsg1(M_WARN, 0, "shmget failure key = %x\n", shmkey);
+ Emsg1(M_WARN, 0, "shmget failure key = %x\n", shmkey);
shmkey++;
continue;
}
not_found = FALSE;
break;
}
- if (not_found)
+ if (not_found)
Emsg2(M_ABORT, 0, "Could not get %d bytes of shared memory: %s\n", shm->size, strerror(errno));
shm->shmkey = shmkey;
shm->shmid = shmid;
Dmsg2(110, "shm_create return key=%x id=%d\n", shmkey, shmid);
shmkey++; /* leave set for next time */
-#else
+#else
shm->shmbuf = NULL;
shm->shmkey = 0; /* reference count */
#endif
if ((shmid = shmget(shm->shmkey, shm->size, 0)) < 0)
Emsg2(M_ABORT, 0, "Could not get %d bytes of shared memory: %s\n", shm->size, strerror(errno));
Dmsg1(110, "shm_open shmat with id=%d\n", shmid);
- shmbuf = shmat(shmid, NULL, 0);
+ shmbuf = shmat(shmid, NULL, 0);
Dmsg1(110, "shm_open buf=%x\n", shmbuf);
if (shmbuf == (char *) -1)
Emsg1(M_ABORT, 0, "Could not attach shared memory: %s\n", strerror(errno));
#ifdef NEED_SHARED_MEMORY
if (shm->size) {
if (shmdt(shm->shmbuf) < 0) {
- Emsg1(M_ERROR, 0, "Error detaching shared memory: %s\n", strerror(errno));
+ Emsg1(M_ERROR, 0, "Error detaching shared memory: %s\n", strerror(errno));
}
}
#else
#ifdef NEED_SHARED_MEMORY
if (shm->size) {
if (shmctl(shm->shmid, IPC_RMID, NULL) < 0) {
- Emsg1(M_ERROR, 0, "Could not destroy shared memory: %s\n", strerror(errno));
+ Emsg1(M_ERROR, 0, "Could not destroy shared memory: %s\n", strerror(errno));
}
}
#else
}
#endif /* ! HAVE_CYGWIN */
+
+#endif