aboutsummaryrefslogtreecommitdiff
path: root/src/include/storage/pg_shmem.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/storage/pg_shmem.h')
-rw-r--r--src/include/storage/pg_shmem.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/include/storage/pg_shmem.h b/src/include/storage/pg_shmem.h
index 1247fdf3e68..57d3107a89f 100644
--- a/src/include/storage/pg_shmem.h
+++ b/src/include/storage/pg_shmem.h
@@ -41,7 +41,8 @@ typedef struct PGShmemHeader /* standard header for all Postgres shmem */
#endif
} PGShmemHeader;
-/* GUC variable */
+/* GUC variables */
+extern int shared_memory_type;
extern int huge_pages;
/* Possible values for huge_pages */
@@ -52,6 +53,14 @@ typedef enum
HUGE_PAGES_TRY
} HugePagesType;
+/* Possible values for shared_memory_type */
+typedef enum
+{
+ SHMEM_TYPE_WINDOWS,
+ SHMEM_TYPE_SYSV,
+ SHMEM_TYPE_MMAP
+} PGShmemType;
+
#ifndef WIN32
extern unsigned long UsedShmemSegID;
#else
@@ -59,6 +68,14 @@ extern HANDLE UsedShmemSegID;
#endif
extern void *UsedShmemSegAddr;
+#if !defined(WIN32) && !defined(EXEC_BACKEND)
+#define DEFAULT_SHARED_MEMORY_TYPE SHMEM_TYPE_MMAP
+#elif !defined(WIN32)
+#define DEFAULT_SHARED_MEMORY_TYPE SHMEM_TYPE_SYSV
+#else
+#define DEFAULT_SHARED_MEMORY_TYPE SHMEM_TYPE_WINDOWS
+#endif
+
#ifdef EXEC_BACKEND
extern void PGSharedMemoryReAttach(void);
extern void PGSharedMemoryNoReAttach(void);