diff options
Diffstat (limited to 'src/include/storage')
-rw-r--r-- | src/include/storage/buf_internals.h | 22 | ||||
-rw-r--r-- | src/include/storage/bufmgr.h | 43 |
2 files changed, 37 insertions, 28 deletions
diff --git a/src/include/storage/buf_internals.h b/src/include/storage/buf_internals.h index ae417118878..41fce0780f0 100644 --- a/src/include/storage/buf_internals.h +++ b/src/include/storage/buf_internals.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: buf_internals.h,v 1.44 2000/11/28 23:27:57 tgl Exp $ + * $Id: buf_internals.h,v 1.45 2000/11/30 01:39:08 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -18,14 +18,17 @@ #include "storage/lmgr.h" #include "storage/s_lock.h" + /* Buf Mgr constants */ /* in bufmgr.c */ -extern int NBuffers; extern int Data_Descriptors; extern int Free_List_Descriptor; extern int Lookup_List_Descriptor; extern int Num_Descriptors; +extern int ShowPinTrace; + + /* * Flags for buffer descriptors */ @@ -40,9 +43,6 @@ extern int Num_Descriptors; typedef bits16 BufFlags; -/* long * so alignment will be correct */ -typedef long **BufferBlock; - typedef struct buftag { RelFileNode rnode; @@ -63,7 +63,7 @@ typedef struct buftag ) /* - * We don't need in this data any more but it allows more user + * We don't need this data any more but it allows more user * friendly error messages. Feel free to get rid of it * (and change a lot of places -:)) */ @@ -73,9 +73,6 @@ typedef struct bufblindid char relname[NAMEDATALEN]; /* name of reln */ } BufferBlindId; -#define BAD_BUFFER_ID(bid) ((bid) < 1 || (bid) > NBuffers) -#define INVALID_DESCRIPTOR (-3) - /* * BufferDesc -- shared buffer cache metadata for a single * shared buffer descriptor. @@ -123,6 +120,8 @@ typedef struct sbufdesc void (*CleanupFunc)(Buffer); } BufferDesc; +#define BufferDescriptorGetBuffer(bdesc) ((bdesc)->buf_id + 1) + /* * Each backend has its own BufferLocks[] array holding flag bits * showing what locks it has set on each buffer. @@ -182,8 +181,6 @@ extern bool BufTableInsert(BufferDesc *buf); /* bufmgr.c */ extern BufferDesc *BufferDescriptors; -extern BufferBlock BufferBlocks; -extern long *PrivateRefCount; extern bits8 *BufferLocks; extern BufferTag *BufferTagLastDirtied; extern BufferBlindId *BufferBlindLastDirtied; @@ -192,15 +189,12 @@ extern bool *BufferDirtiedByMe; extern SPINLOCK BufMgrLock; /* localbuf.c */ -extern long *LocalRefCount; extern BufferDesc *LocalBufferDescriptors; -extern int NLocBuffer; extern BufferDesc *LocalBufferAlloc(Relation reln, BlockNumber blockNum, bool *foundPtr); extern int WriteLocalBuffer(Buffer buffer, bool release); extern int FlushLocalBuffer(Buffer buffer, bool sync, bool release); -extern void InitLocalBuffer(void); extern void LocalBufferSync(void); extern void ResetLocalBufferPool(void); diff --git a/src/include/storage/bufmgr.h b/src/include/storage/bufmgr.h index 275146eea80..2452ac64967 100644 --- a/src/include/storage/bufmgr.h +++ b/src/include/storage/bufmgr.h @@ -7,7 +7,7 @@ * Portions Copyright (c) 1996-2000, PostgreSQL, Inc * Portions Copyright (c) 1994, Regents of the University of California * - * $Id: bufmgr.h,v 1.44 2000/11/28 23:27:57 tgl Exp $ + * $Id: bufmgr.h,v 1.45 2000/11/30 01:39:08 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -15,14 +15,35 @@ #define BUFMGR_H #include "access/xlogdefs.h" -#include "storage/buf_internals.h" +#include "storage/buf.h" +#include "storage/lock.h" #include "storage/relfilenode.h" +#include "utils/rel.h" typedef void *Block; +/* in globals.c ... this duplicates miscadmin.h */ +extern int NBuffers; + +/* in buf_init.c */ +extern Block *BufferBlockPointers; +extern long *PrivateRefCount; + +/* in localbuf.c */ +extern int NLocBuffer; +extern Block *LocalBufferBlockPointers; +extern long *LocalRefCount; + /* special pageno for bget */ #define P_NEW InvalidBlockNumber /* grow the file to get a new page */ +/* + * Buffer context lock modes + */ +#define BUFFER_LOCK_UNLOCK 0 +#define BUFFER_LOCK_SHARE 1 +#define BUFFER_LOCK_EXCLUSIVE 2 + /********************************************************************** @@ -32,18 +53,10 @@ typedef void *Block; /* * These routines are beaten on quite heavily, hence the macroization. - * See buf_internals.h for a related comment. */ -#define BufferDescriptorGetBuffer(bdesc) ((bdesc)->buf_id + 1) -extern int ShowPinTrace; - -/* - * Buffer context lock modes - */ -#define BUFFER_LOCK_UNLOCK 0 -#define BUFFER_LOCK_SHARE 1 -#define BUFFER_LOCK_EXCLUSIVE 2 +#define BAD_BUFFER_ID(bid) ((bid) < 1 || (bid) > NBuffers) +#define INVALID_DESCRIPTOR (-3) #define UnlockAndReleaseBuffer(buffer) \ ( \ @@ -136,9 +149,9 @@ extern int ShowPinTrace; ( \ AssertMacro(BufferIsValid(buffer)), \ BufferIsLocal(buffer) ? \ - ((Block) MAKE_PTR(LocalBufferDescriptors[-(buffer) - 1].data)) \ + LocalBufferBlockPointers[-(buffer) - 1] \ : \ - ((Block) MAKE_PTR(BufferDescriptors[(buffer) - 1].data)) \ + BufferBlockPointers[(buffer) - 1] \ ) @@ -184,4 +197,6 @@ extern void BufmgrCommit(void); extern void BufferSync(void); #endif +extern void InitLocalBuffer(void); + #endif |