1 | /*------------------------------------------------------------------------- |
2 | * |
3 | * sinvaladt.h |
4 | * POSTGRES shared cache invalidation data manager. |
5 | * |
6 | * The shared cache invalidation manager is responsible for transmitting |
7 | * invalidation messages between backends. Any message sent by any backend |
8 | * must be delivered to all already-running backends before it can be |
9 | * forgotten. (If we run out of space, we instead deliver a "RESET" |
10 | * message to backends that have fallen too far behind.) |
11 | * |
12 | * The struct type SharedInvalidationMessage, defining the contents of |
13 | * a single message, is defined in sinval.h. |
14 | * |
15 | * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group |
16 | * Portions Copyright (c) 1994, Regents of the University of California |
17 | * |
18 | * src/include/storage/sinvaladt.h |
19 | * |
20 | *------------------------------------------------------------------------- |
21 | */ |
22 | #ifndef SINVALADT_H |
23 | #define SINVALADT_H |
24 | |
25 | #include "storage/lock.h" |
26 | #include "storage/sinval.h" |
27 | |
28 | /* |
29 | * prototypes for functions in sinvaladt.c |
30 | */ |
31 | extern Size SInvalShmemSize(void); |
32 | extern void CreateSharedInvalidationState(void); |
33 | extern void SharedInvalBackendInit(bool sendOnly); |
34 | extern PGPROC *BackendIdGetProc(int backendID); |
35 | extern void BackendIdGetTransactionIds(int backendID, TransactionId *xid, TransactionId *xmin); |
36 | |
37 | extern void SIInsertDataEntries(const SharedInvalidationMessage *data, int n); |
38 | extern int SIGetDataEntries(SharedInvalidationMessage *data, int datasize); |
39 | extern void SICleanupQueue(bool callerHasWriteLock, int minFree); |
40 | |
41 | extern LocalTransactionId GetNextLocalTransactionId(void); |
42 | |
43 | #endif /* SINVALADT_H */ |
44 | |