aboutsummaryrefslogtreecommitdiff
path: root/src/include/storage
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/storage')
-rw-r--r--src/include/storage/buf_internals.h22
-rw-r--r--src/include/storage/bufmgr.h43
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