mirror of
https://github.com/postgres/postgres.git
synced 2025-09-02 04:21:28 +03:00
More cleanups of the include files
- centralizing to simplify the -I's required to compile
This commit is contained in:
112
src/include/storage/bufmgr.h
Normal file
112
src/include/storage/bufmgr.h
Normal file
@@ -0,0 +1,112 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* bufmgr.h--
|
||||
* POSTGRES buffer manager definitions.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: bufmgr.h,v 1.1 1996/08/28 01:58:01 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef BUFMGR_H
|
||||
#define BUFMGR_H
|
||||
|
||||
#include "c.h"
|
||||
|
||||
#include "machine.h" /* for BLCKSZ */
|
||||
#include "utils/rel.h"
|
||||
|
||||
#include "storage/buf_internals.h" /* UGLY! -- ay */
|
||||
|
||||
/*
|
||||
* the maximum size of a disk block for any possible installation.
|
||||
*
|
||||
* in theory this could be anything, but in practice this is actually
|
||||
* limited to 2^13 bytes because we have limited ItemIdData.lp_off and
|
||||
* ItemIdData.lp_len to 13 bits (see itemid.h).
|
||||
*/
|
||||
#define MAXBLCKSZ 8192
|
||||
|
||||
typedef void *Block;
|
||||
|
||||
|
||||
/* special pageno for bget */
|
||||
#define P_NEW InvalidBlockNumber /* grow the file to get a new page */
|
||||
|
||||
typedef bits16 BufferLock;
|
||||
|
||||
/**********************************************************************
|
||||
|
||||
the rest is function defns in the bufmgr that are externally callable
|
||||
|
||||
**********************************************************************/
|
||||
|
||||
/*
|
||||
* 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)
|
||||
|
||||
/*
|
||||
* BufferIsPinned --
|
||||
* True iff the buffer is pinned (and therefore valid)
|
||||
*
|
||||
* Note:
|
||||
* Smenatics are identical to BufferIsValid
|
||||
* XXX - need to remove either one eventually.
|
||||
*/
|
||||
#define BufferIsPinned BufferIsValid
|
||||
|
||||
|
||||
extern int ShowPinTrace;
|
||||
|
||||
/*
|
||||
* prototypes for functions in bufmgr.c
|
||||
*/
|
||||
extern Buffer RelationGetBufferWithBuffer(Relation relation,
|
||||
BlockNumber blockNumber, Buffer buffer);
|
||||
extern Buffer ReadBuffer(Relation reln, BlockNumber blockNum);
|
||||
extern Buffer ReadBuffer_Debug(char *file, int line, Relation reln,
|
||||
BlockNumber blockNum);
|
||||
extern int WriteBuffer(Buffer buffer);
|
||||
extern void WriteBuffer_Debug(char *file, int line, Buffer buffer);
|
||||
extern void DirtyBufferCopy(Oid dbid, Oid relid, BlockNumber blkno,
|
||||
char *dest);
|
||||
extern int WriteNoReleaseBuffer(Buffer buffer);
|
||||
extern Buffer ReleaseAndReadBuffer(Buffer buffer, Relation relation,
|
||||
BlockNumber blockNum);
|
||||
|
||||
extern void InitBufferPool(IPCKey key);
|
||||
extern void PrintBufferUsage(FILE *statfp);
|
||||
extern void ResetBufferUsage(void);
|
||||
extern void ResetBufferPool(void);
|
||||
extern int BufferPoolCheckLeak(void);
|
||||
extern void FlushBufferPool(int StableMainMemoryFlag);
|
||||
extern bool BufferIsValid(Buffer bufnum);
|
||||
extern BlockNumber BufferGetBlockNumber(Buffer buffer);
|
||||
extern Relation BufferGetRelation(Buffer buffer);
|
||||
extern BlockNumber RelationGetNumberOfBlocks(Relation relation);
|
||||
extern Block BufferGetBlock(Buffer buffer);
|
||||
extern void ReleaseTmpRelBuffers(Relation tempreldesc);
|
||||
extern void DropBuffers(Oid dbid);
|
||||
extern void PrintBufferDescs(void);
|
||||
extern void PrintPinnedBufs(void);
|
||||
extern int BufferShmemSize(void);
|
||||
extern void BufferPoolBlowaway(void);
|
||||
extern void IncrBufferRefCount(Buffer buffer);
|
||||
extern int ReleaseBuffer(Buffer buffer);
|
||||
|
||||
extern void IncrBufferRefCount_Debug(char *file, int line, Buffer buffer);
|
||||
extern void ReleaseBuffer_Debug(char *file, int line, Buffer buffer);
|
||||
extern int ReleaseAndReadBuffer_Debug(char *file,
|
||||
int line,
|
||||
Buffer buffer,
|
||||
Relation relation,
|
||||
BlockNumber blockNum);
|
||||
extern void BufferRefCountReset(int *refcountsave);
|
||||
extern void BufferRefCountRestore(int *refcountsave);
|
||||
|
||||
#endif /* !defined(BufMgrIncluded) */
|
||||
|
Reference in New Issue
Block a user