| /*------------------------------------------------------------------------- |
| * |
| * buf.h |
| * Basic buffer manager data types. |
| * |
| * |
| * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group |
| * Portions Copyright (c) 1994, Regents of the University of California |
| * |
| * $PostgreSQL: pgsql/src/include/storage/buf.h,v 1.24 2009/01/01 17:24:01 momjian Exp $ |
| * |
| *------------------------------------------------------------------------- |
| */ |
| #ifndef BUF_H |
| #define BUF_H |
| |
| /* |
| * Buffer identifiers. |
| * |
| * Zero is invalid, positive is the index of a shared buffer (1..NBuffers), |
| * negative is the index of a local buffer (-1 .. -NLocBuffer). |
| */ |
| typedef int Buffer; |
| |
| #define InvalidBuffer 0 |
| |
| /* |
| * BufferIsInvalid |
| * True iff the buffer is invalid. |
| */ |
| #define BufferIsInvalid(buffer) ((buffer) == InvalidBuffer) |
| |
| /* |
| * BufferIsLocal |
| * True iff the buffer is local (not visible to other backends). |
| */ |
| #define BufferIsLocal(buffer) ((buffer) < 0) |
| |
| /* |
| * Buffer access strategy objects. |
| * |
| * BufferAccessStrategyData is private to freelist.c |
| */ |
| typedef struct BufferAccessStrategyData *BufferAccessStrategy; |
| |
| #endif /* BUF_H */ |