1 /*------------------------------------------------------------------------- 2 * 3 * buf.h 4 * Basic buffer manager data types. 5 * 6 * 7 * Portions Copyright (c) 1996-2018, 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