mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +03:00
Allow dynamic allocation of shared memory segments.
Patch by myself and Amit Kapila. Design help from Noah Misch. Review by Andres Freund.
This commit is contained in:
@ -29,6 +29,7 @@
|
||||
#endif
|
||||
|
||||
#include "miscadmin.h"
|
||||
#include "portability/mem.h"
|
||||
#include "storage/ipc.h"
|
||||
#include "storage/pg_shmem.h"
|
||||
|
||||
@ -36,31 +37,6 @@
|
||||
typedef key_t IpcMemoryKey; /* shared memory key passed to shmget(2) */
|
||||
typedef int IpcMemoryId; /* shared memory ID returned by shmget(2) */
|
||||
|
||||
#define IPCProtection (0600) /* access/modify by user only */
|
||||
|
||||
#ifdef SHM_SHARE_MMU /* use intimate shared memory on Solaris */
|
||||
#define PG_SHMAT_FLAGS SHM_SHARE_MMU
|
||||
#else
|
||||
#define PG_SHMAT_FLAGS 0
|
||||
#endif
|
||||
|
||||
/* Linux prefers MAP_ANONYMOUS, but the flag is called MAP_ANON on other systems. */
|
||||
#ifndef MAP_ANONYMOUS
|
||||
#define MAP_ANONYMOUS MAP_ANON
|
||||
#endif
|
||||
|
||||
/* BSD-derived systems have MAP_HASSEMAPHORE, but it's not present (or needed) on Linux. */
|
||||
#ifndef MAP_HASSEMAPHORE
|
||||
#define MAP_HASSEMAPHORE 0
|
||||
#endif
|
||||
|
||||
#define PG_MMAP_FLAGS (MAP_SHARED|MAP_ANONYMOUS|MAP_HASSEMAPHORE)
|
||||
|
||||
/* Some really old systems don't define MAP_FAILED. */
|
||||
#ifndef MAP_FAILED
|
||||
#define MAP_FAILED ((void *) -1)
|
||||
#endif
|
||||
|
||||
|
||||
unsigned long UsedShmemSegID = 0;
|
||||
void *UsedShmemSegAddr = NULL;
|
||||
|
Reference in New Issue
Block a user