codekingpro/portable-devtools
114k
1/*-------------------------------------------------------------------------2 *3 * md.h4 * magnetic disk storage manager public interface declarations.5 *6 *7 * Portions Copyright (c) 1996-2023, PostgreSQL Global Development Group8 * Portions Copyright (c) 1994, Regents of the University of California9 *10 * src/include/storage/md.h11 *12 *-------------------------------------------------------------------------13 */14#ifndef MD_H15#define MD_H16 17#include "storage/block.h"18#include "storage/relfilelocator.h"19#include "storage/smgr.h"20#include "storage/sync.h"21 22/* md storage manager functionality */23extern void mdinit(void);24extern void mdopen(SMgrRelation reln);25extern void mdclose(SMgrRelation reln, ForkNumber forknum);26extern void mdcreate(SMgrRelation reln, ForkNumber forknum, bool isRedo);27extern bool mdexists(SMgrRelation reln, ForkNumber forknum);28extern void mdunlink(RelFileLocatorBackend rlocator, ForkNumber forknum, bool isRedo);29extern void mdextend(SMgrRelation reln, ForkNumber forknum,30 BlockNumber blocknum, const void *buffer, bool skipFsync);31extern void mdzeroextend(SMgrRelation reln, ForkNumber forknum,32 BlockNumber blocknum, int nblocks, bool skipFsync);33extern bool mdprefetch(SMgrRelation reln, ForkNumber forknum,34 BlockNumber blocknum);35extern void mdread(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,36 void *buffer);37extern void mdwrite(SMgrRelation reln, ForkNumber forknum,38 BlockNumber blocknum, const void *buffer, bool skipFsync);39extern void mdwriteback(SMgrRelation reln, ForkNumber forknum,40 BlockNumber blocknum, BlockNumber nblocks);41extern BlockNumber mdnblocks(SMgrRelation reln, ForkNumber forknum);42extern void mdtruncate(SMgrRelation reln, ForkNumber forknum,43 BlockNumber nblocks);44extern void mdimmedsync(SMgrRelation reln, ForkNumber forknum);45 46extern void ForgetDatabaseSyncRequests(Oid dbid);47extern void DropRelationFiles(RelFileLocator *delrels, int ndelrels, bool isRedo);48 49/* md sync callbacks */50extern int mdsyncfiletag(const FileTag *ftag, char *path);51extern int mdunlinkfiletag(const FileTag *ftag, char *path);52extern bool mdfiletagmatches(const FileTag *ftag, const FileTag *candidate);53 54#endif /* MD_H */55 