1 | /*------------------------------------------------------------------------- |
2 | * |
3 | * buf.h |
4 | * Basic buffer manager data types. |
5 | * |
6 | * |
7 | * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group |
8 | * Portions Copyright (c) 1994, Regents of the University of California |
9 | * |
10 | * src/include/storage/buf.h |
11 | * |
12 | *------------------------------------------------------------------------- |
13 | */ |
14 | #ifndef BUF_H |
15 | #define BUF_H |
16 | |
17 | /* |
18 | * Buffer identifiers. |
19 | * |
20 | * Zero is invalid, positive is the index of a shared buffer (1..NBuffers), |
21 | * negative is the index of a local buffer (-1 .. -NLocBuffer). |
22 | */ |
23 | typedef int Buffer; |
24 | |
25 | #define InvalidBuffer 0 |
26 | |
27 | /* |
28 | * BufferIsInvalid |
29 | * True iff the buffer is invalid. |
30 | */ |
31 | #define BufferIsInvalid(buffer) ((buffer) == InvalidBuffer) |
32 | |
33 | /* |
34 | * BufferIsLocal |
35 | * True iff the buffer is local (not visible to other backends). |
36 | */ |
37 | #define BufferIsLocal(buffer) ((buffer) < 0) |
38 | |
39 | /* |
40 | * Buffer access strategy objects. |
41 | * |
42 | * BufferAccessStrategyData is private to freelist.c |
43 | */ |
44 | typedef struct BufferAccessStrategyData *BufferAccessStrategy; |
45 | |
46 | #endif /* BUF_H */ |
47 | |