| /*------------------------------------------------------------------------- |
| * |
| * md.h |
| * magnetic disk storage manager public interface declarations. |
| * |
| * |
| * Portions Copyright (c) 1996-2021, PostgreSQL Global Development Group |
| * Portions Copyright (c) 1994, Regents of the University of California |
| * |
| * src/include/storage/md.h |
| * |
| *------------------------------------------------------------------------- |
| */ |
| #ifndef MD_H |
| #define MD_H |
| |
| #include "storage/block.h" |
| #include "storage/relfilenode.h" |
| #include "storage/smgr.h" |
| #include "storage/sync.h" |
| |
| /* md storage manager functionality */ |
| extern void mdinit(void); |
| extern void mdopen(SMgrRelation reln); |
| extern void mdclose(SMgrRelation reln, ForkNumber forknum); |
| extern void mdcreate(SMgrRelation reln, ForkNumber forknum, bool isRedo); |
| extern void mdcreate_ao(RelFileNodeBackend rnode, int32 segmentFileNum, bool isRedo); |
| extern bool mdexists(SMgrRelation reln, ForkNumber forknum); |
| extern void mdunlink(RelFileNodeBackend rnode, ForkNumber forknum, bool isRedo); |
| extern void mdextend(SMgrRelation reln, ForkNumber forknum, |
| BlockNumber blocknum, char *buffer, bool skipFsync); |
| extern bool mdprefetch(SMgrRelation reln, ForkNumber forknum, |
| BlockNumber blocknum); |
| extern void mdread(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, |
| char *buffer); |
| extern void mdwrite(SMgrRelation reln, ForkNumber forknum, |
| BlockNumber blocknum, char *buffer, bool skipFsync); |
| extern void mdwriteback(SMgrRelation reln, ForkNumber forknum, |
| BlockNumber blocknum, BlockNumber nblocks); |
| extern BlockNumber mdnblocks(SMgrRelation reln, ForkNumber forknum); |
| extern void mdtruncate(SMgrRelation reln, ForkNumber forknum, |
| BlockNumber nblocks); |
| extern void mdimmedsync(SMgrRelation reln, ForkNumber forknum); |
| |
| extern void ForgetDatabaseSyncRequests(Oid dbid); |
| extern void DropRelationFiles(RelFileNodePendingDelete *delrels, int ndelrels, bool isRedo); |
| |
| /* md sync callbacks */ |
| extern int mdsyncfiletag(const FileTag *ftag, char *path); |
| extern int mdunlinkfiletag(const FileTag *ftag, char *path); |
| extern bool mdfiletagmatches(const FileTag *ftag, const FileTag *candidate); |
| |
| extern int aosyncfiletag(const FileTag *ftag, char *path); |
| #endif /* MD_H */ |