PostgreSQL Source Code git master
Loading...
Searching...
No Matches
shmem_internal.h
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * shmem_internal.h
4 * Internal functions related to shmem allocation
5 *
6 * Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
7 * Portions Copyright (c) 1994, Regents of the University of California
8 *
9 * src/include/storage/shmem_internal.h
10 *
11 *-------------------------------------------------------------------------
12 */
13#ifndef SHMEM_INTERNAL_H
14#define SHMEM_INTERNAL_H
15
16#include "storage/shmem.h"
17#include "utils/hsearch.h"
18
19/* Different kinds of shmem areas. */
20typedef enum
21{
22 SHMEM_KIND_STRUCT = 0, /* plain, contiguous area of memory */
23 SHMEM_KIND_HASH, /* a hash table */
24 SHMEM_KIND_SLRU, /* SLRU buffers and control structures */
26
27/* shmem.c */
28typedef struct PGShmemHeader PGShmemHeader; /* avoid including
29 * storage/pg_shmem.h here */
30extern void ShmemCallRequestCallbacks(void);
32#ifdef EXEC_BACKEND
34#endif
35extern void ResetShmemAllocator(void);
36
38
39extern size_t ShmemGetRequestedSize(void);
40extern void ShmemInitRequested(void);
41#ifdef EXEC_BACKEND
42extern void ShmemAttachRequested(void);
43#endif
44
46
47/* shmem_hash.c */
48extern HTAB *shmem_hash_create(void *location, size_t size, bool found,
49 const char *name, int64 nelems, HASHCTL *infoP, int hash_flags);
50extern void shmem_hash_init(void *location, ShmemStructOpts *base_options);
51extern void shmem_hash_attach(void *location, ShmemStructOpts *base_options);
52
53#endif /* SHMEM_INTERNAL_H */
#define PGDLLIMPORT
Definition c.h:1421
int64_t int64
Definition c.h:621
size_t Size
Definition c.h:689
static int fb(int x)
void InitShmemAllocator(PGShmemHeader *seghdr)
Definition shmem.c:635
HTAB * shmem_hash_create(void *location, size_t size, bool found, const char *name, int64 nelems, HASHCTL *infoP, int hash_flags)
Definition shmem_hash.c:149
PGDLLIMPORT Size pg_get_shmem_pagesize(void)
Definition shmem.c:1299
ShmemRequestKind
@ SHMEM_KIND_SLRU
@ SHMEM_KIND_HASH
@ SHMEM_KIND_STRUCT
void ShmemCallRequestCallbacks(void)
Definition shmem.c:974
void ShmemInitRequested(void)
Definition shmem.c:424
void ShmemRequestInternal(ShmemStructOpts *options, ShmemRequestKind kind)
Definition shmem.c:336
void shmem_hash_attach(void *location, ShmemStructOpts *base_options)
Definition shmem_hash.c:79
size_t ShmemGetRequestedSize(void)
Definition shmem.c:391
void shmem_hash_init(void *location, ShmemStructOpts *base_options)
Definition shmem_hash.c:63
void ResetShmemAllocator(void)
Definition shmem.c:740
const char * name