]> granicus.if.org Git - postgresql/blobdiff - src/include/storage/pg_shmem.h
Phase 2 of pgindent updates.
[postgresql] / src / include / storage / pg_shmem.h
index 47f6709a674f0297af8ae10d2d78192381d83871..e3ee096229e1b7704c7bf2b54b1128c02bc6944d 100644 (file)
  *
  * To simplify life for the SysV implementation, the ID is assumed to
  * consist of two unsigned long values (these are key and ID in SysV
- * terms).     Other platforms may ignore the second value if they need
+ * terms).  Other platforms may ignore the second value if they need
  * only one ID number.
  *
  *
- * Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group
  * Portions Copyright (c) 1994, Regents of the University of California
  *
- * $PostgreSQL: pgsql/src/include/storage/pg_shmem.h,v 1.19 2006/08/01 19:03:11 momjian Exp $
+ * src/include/storage/pg_shmem.h
  *
  *-------------------------------------------------------------------------
  */
 #ifndef PG_SHMEM_H
 #define PG_SHMEM_H
 
+#include "storage/dsm_impl.h"
+
 typedef struct PGShmemHeader   /* standard header for all Postgres shmem */
 {
        int32           magic;                  /* magic # to identify Postgres segments */
@@ -31,31 +33,40 @@ typedef struct PGShmemHeader        /* standard header for all Postgres shmem */
        pid_t           creatorPID;             /* PID of creating process */
        Size            totalsize;              /* total size of segment */
        Size            freeoffset;             /* offset to first free space */
-       Size            indexoffset;    /* offset to ShmemIndex table */
+       dsm_handle      dsm_control;    /* ID of dynamic shared memory control seg */
+       void       *index;                      /* pointer to ShmemIndex table */
 #ifndef WIN32                                  /* Windows doesn't have useful inode#s */
        dev_t           device;                 /* device data directory is on */
        ino_t           inode;                  /* inode number of data directory */
 #endif
 } PGShmemHeader;
 
+/* GUC variable */
+extern int     huge_pages;
 
-#ifdef EXEC_BACKEND
+/* Possible values for huge_pages */
+typedef enum
+{
+       HUGE_PAGES_OFF,
+       HUGE_PAGES_ON,
+       HUGE_PAGES_TRY
+}                      HugePagesType;
+
+#ifndef WIN32
 extern unsigned long UsedShmemSegID;
+#else
+extern HANDLE UsedShmemSegID;
+#endif
 extern void *UsedShmemSegAddr;
 
+#ifdef EXEC_BACKEND
 extern void PGSharedMemoryReAttach(void);
+extern void PGSharedMemoryNoReAttach(void);
 #endif
 
 extern PGShmemHeader *PGSharedMemoryCreate(Size size, bool makePrivate,
-                                        int port);
+                                        int port, PGShmemHeader **shim);
 extern bool PGSharedMemoryIsInUse(unsigned long id1, unsigned long id2);
 extern void PGSharedMemoryDetach(void);
 
-
-extern void RegisterAddinContext(const char *name, Size size);
-extern Size AddinShmemSize(void);
-extern void InitAddinContexts(void * start);
-extern void *ShmemAllocFromContext(Size size, const char *name);
-extern void ShmemResetContext(const char *name);
-
-#endif   /* PG_SHMEM_H */
+#endif                                                 /* PG_SHMEM_H */