Line data Source code
1 : /*---------------------------------------------------------------------------
2 : * subsystemlist.h
3 : *
4 : * List of initialization callbacks of built-in subsystems. This is kept in
5 : * its own source file for possible use by automatic tools.
6 : * PG_SHMEM_SUBSYSTEM is defined in the callers depending on how the list is
7 : * used.
8 : *
9 : * Portions Copyright (c) 1996-2026, PostgreSQL Global Development Group
10 : * Portions Copyright (c) 1994, Regents of the University of California
11 : *
12 : * src/include/storage/subsystemlist.h
13 : *---------------------------------------------------------------------------
14 : */
15 :
16 : /* there is deliberately not an #ifndef SUBSYSTEMLIST_H here */
17 :
18 : /*
19 : * Note: there are some inter-dependencies between these, so the order of some
20 : * of these matter.
21 : */
22 :
23 : /*
24 : * LWLocks first, in case any of the other shmem init functions use LWLocks.
25 : * (Nothing else can be running during startup, so they don't need to do any
26 : * locking yet, but we nevertheless allow it.)
27 : */
28 1242 : PG_SHMEM_SUBSYSTEM(LWLockCallbacks)
29 :
30 1242 : PG_SHMEM_SUBSYSTEM(dsm_shmem_callbacks)
31 1242 : PG_SHMEM_SUBSYSTEM(DSMRegistryShmemCallbacks)
32 :
33 : /* xlog, clog, and buffers */
34 1242 : PG_SHMEM_SUBSYSTEM(VarsupShmemCallbacks)
35 1242 : PG_SHMEM_SUBSYSTEM(XLOGShmemCallbacks)
36 1242 : PG_SHMEM_SUBSYSTEM(XLogPrefetchShmemCallbacks)
37 1242 : PG_SHMEM_SUBSYSTEM(XLogRecoveryShmemCallbacks)
38 1242 : PG_SHMEM_SUBSYSTEM(CLOGShmemCallbacks)
39 1242 : PG_SHMEM_SUBSYSTEM(CommitTsShmemCallbacks)
40 1242 : PG_SHMEM_SUBSYSTEM(SUBTRANSShmemCallbacks)
41 1242 : PG_SHMEM_SUBSYSTEM(MultiXactShmemCallbacks)
42 1242 : PG_SHMEM_SUBSYSTEM(BufferManagerShmemCallbacks)
43 1242 : PG_SHMEM_SUBSYSTEM(StrategyCtlShmemCallbacks)
44 1242 : PG_SHMEM_SUBSYSTEM(BufTableShmemCallbacks)
45 :
46 : /* lock manager */
47 1242 : PG_SHMEM_SUBSYSTEM(LockManagerShmemCallbacks)
48 :
49 : /* predicate lock manager */
50 1242 : PG_SHMEM_SUBSYSTEM(PredicateLockShmemCallbacks)
51 :
52 : /* process table */
53 1242 : PG_SHMEM_SUBSYSTEM(ProcGlobalShmemCallbacks)
54 1242 : PG_SHMEM_SUBSYSTEM(ProcArrayShmemCallbacks)
55 1242 : PG_SHMEM_SUBSYSTEM(BackendStatusShmemCallbacks)
56 1242 : PG_SHMEM_SUBSYSTEM(TwoPhaseShmemCallbacks)
57 1242 : PG_SHMEM_SUBSYSTEM(BackgroundWorkerShmemCallbacks)
58 :
59 : /* shared-inval messaging */
60 1242 : PG_SHMEM_SUBSYSTEM(SharedInvalShmemCallbacks)
61 :
62 : /* interprocess signaling mechanisms */
63 1242 : PG_SHMEM_SUBSYSTEM(PMSignalShmemCallbacks)
64 1242 : PG_SHMEM_SUBSYSTEM(ProcSignalShmemCallbacks)
65 1242 : PG_SHMEM_SUBSYSTEM(CheckpointerShmemCallbacks)
66 1242 : PG_SHMEM_SUBSYSTEM(AutoVacuumShmemCallbacks)
67 1242 : PG_SHMEM_SUBSYSTEM(ReplicationSlotsShmemCallbacks)
68 1242 : PG_SHMEM_SUBSYSTEM(ReplicationOriginShmemCallbacks)
69 1242 : PG_SHMEM_SUBSYSTEM(WalSndShmemCallbacks)
70 1242 : PG_SHMEM_SUBSYSTEM(WalRcvShmemCallbacks)
71 1242 : PG_SHMEM_SUBSYSTEM(WalSummarizerShmemCallbacks)
72 1242 : PG_SHMEM_SUBSYSTEM(PgArchShmemCallbacks)
73 1242 : PG_SHMEM_SUBSYSTEM(ApplyLauncherShmemCallbacks)
74 1242 : PG_SHMEM_SUBSYSTEM(SlotSyncShmemCallbacks)
75 :
76 : /* other modules that need some shared memory space */
77 1242 : PG_SHMEM_SUBSYSTEM(BTreeShmemCallbacks)
78 1242 : PG_SHMEM_SUBSYSTEM(SyncScanShmemCallbacks)
79 1242 : PG_SHMEM_SUBSYSTEM(AsyncShmemCallbacks)
80 1242 : PG_SHMEM_SUBSYSTEM(StatsShmemCallbacks)
81 1242 : PG_SHMEM_SUBSYSTEM(WaitEventCustomShmemCallbacks)
82 : #ifdef USE_INJECTION_POINTS
83 1242 : PG_SHMEM_SUBSYSTEM(InjectionPointShmemCallbacks)
84 : #endif
85 1242 : PG_SHMEM_SUBSYSTEM(WaitLSNShmemCallbacks)
86 1242 : PG_SHMEM_SUBSYSTEM(LogicalDecodingCtlShmemCallbacks)
87 1242 : PG_SHMEM_SUBSYSTEM(DataChecksumsShmemCallbacks)
88 :
89 : /* AIO subsystem. This delegates to the method-specific callbacks */
90 1242 : PG_SHMEM_SUBSYSTEM(AioShmemCallbacks)
|