+----------------------------------------------------------------------+
*/
+#include "zend_shared_alloc.h"
+
+#ifdef USE_MMAP
+
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/mman.h>
-#include "zend_shared_alloc.h"
-
#if defined(MAP_ANON) && !defined(MAP_ANONYMOUS)
# define MAP_ANONYMOUS MAP_ANON
#endif
detach_segment,
segment_type_size
};
+
+#endif /* USE_MMAP */
+----------------------------------------------------------------------+
*/
+#include "zend_shared_alloc.h"
+
+#ifdef USE_SHM_OPEN
+
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
-#include "zend_shared_alloc.h"
-
typedef struct {
zend_shared_segment common;
int shm_fd;
(detach_segment_t)detach_segment,
segment_type_size
};
+
+#endif /* USE_SHM_OPEN */
+----------------------------------------------------------------------+
*/
+#include "zend_shared_alloc.h"
+
+#ifdef USE_SHM
+
#if defined(__FreeBSD__)
# include <machine/param.h>
#endif
#include <sys/stat.h>
#include <fcntl.h>
-#include "zend_shared_alloc.h"
-
#ifndef MIN
# define MIN(x, y) ((x) > (y)? (y) : (x))
#endif
(detach_segment_t)detach_segment,
segment_type_size
};
+
+#endif /* USE_SHM */
#endif
static const zend_shared_memory_handler_entry handler_table[] = {
-#if USE_MMAP
+#ifdef USE_MMAP
{ "mmap", &zend_alloc_mmap_handlers },
#endif
-#if USE_SHM
+#ifdef USE_SHM
{ "shm", &zend_alloc_shm_handlers },
#endif
-#if USE_SHM_OPEN
+#ifdef USE_SHM_OPEN
{ "posix", &zend_alloc_posix_handlers },
#endif
#ifdef ZEND_WIN32
#define ZEND_SHARED_ALLOC_H
#include "zend.h"
+#include "ZendAccelerator.h"
#if defined(__APPLE__) && defined(__MACH__) /* darwin */
-# define USE_SHM_OPEN 1
-# define USE_MMAP 1
+# ifdef HAVE_SHM_MMAP_POSIX
+# define USE_SHM_OPEN 1
+# endif
+# ifdef HAVE_SHM_MMAP_ANON
+# define USE_MMAP 1
+# endif
#elif defined(__linux__) || defined(_AIX)
-# define USE_SHM 1
-# define USE_MMAP 1
-#elif defined(__FreeBSD__)
-# define USE_SHM_OPEN 1
-# define USE_MMAP 1
-# define USE_SHM 1
+# ifdef HAVE_SHM_IPC
+# define USE_SHM 1
+# endif
+# ifdef HAVE_SHM_MMAP_ANON
+# define USE_MMAP 1
+# endif
#elif defined(__sparc) || defined(__sun)
-# define USE_SHM_OPEN 1
-# define USE_SHM 1
+# ifdef HAVE_SHM_MMAP_POSIX
+# define USE_SHM_OPEN 1
+# endif
+# ifdef HAVE_SHM_IPC
+# define USE_SHM 1
+# endif
# if defined(__i386)
+# ifdef HAVE_SHM_MMAP_ANON
+# define USE_MMAP 1
+# endif
+# endif
+#else
+# ifdef HAVE_SHM_MMAP_POSIX
+# define USE_SHM_OPEN 1
+# endif
+# ifdef HAVE_SHM_MMAP_ANON
# define USE_MMAP 1
# endif
+# ifdef HAVE_SHM_IPC
+# define USE_SHM 1
+# endif
#endif
#define ALLOC_FAILURE 0