PostgreSQL Source Code git master
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
md.h
Go to the documentation of this file.
1/*-------------------------------------------------------------------------
2 *
3 * md.h
4 * magnetic disk storage manager public interface declarations.
5 *
6 *
7 * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
8 * Portions Copyright (c) 1994, Regents of the University of California
9 *
10 * src/include/storage/md.h
11 *
12 *-------------------------------------------------------------------------
13 */
14#ifndef MD_H
15#define MD_H
16
17#include "storage/block.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, int nblocks);
35extern uint32 mdmaxcombine(SMgrRelation reln, ForkNumber forknum,
36 BlockNumber blocknum);
37extern void mdreadv(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
38 void **buffers, BlockNumber nblocks);
39extern void mdwritev(SMgrRelation reln, ForkNumber forknum,
40 BlockNumber blocknum,
41 const void **buffers, BlockNumber nblocks, bool skipFsync);
42extern void mdwriteback(SMgrRelation reln, ForkNumber forknum,
43 BlockNumber blocknum, BlockNumber nblocks);
44extern BlockNumber mdnblocks(SMgrRelation reln, ForkNumber forknum);
45extern void mdtruncate(SMgrRelation reln, ForkNumber forknum,
46 BlockNumber old_blocks, BlockNumber nblocks);
47extern void mdimmedsync(SMgrRelation reln, ForkNumber forknum);
48extern void mdregistersync(SMgrRelation reln, ForkNumber forknum);
49
50extern void ForgetDatabaseSyncRequests(Oid dbid);
51extern void DropRelationFiles(RelFileLocator *delrels, int ndelrels, bool isRedo);
52
53/* md sync callbacks */
54extern int mdsyncfiletag(const FileTag *ftag, char *path);
55extern int mdunlinkfiletag(const FileTag *ftag, char *path);
56extern bool mdfiletagmatches(const FileTag *ftag, const FileTag *candidate);
57
58#endif /* MD_H */
uint32 BlockNumber
Definition: block.h:31
uint32_t uint32
Definition: c.h:502
void mdunlink(RelFileLocatorBackend rlocator, ForkNumber forknum, bool isRedo)
Definition: md.c:317
void mdwritev(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, const void **buffers, BlockNumber nblocks, bool skipFsync)
Definition: md.c:948
bool mdfiletagmatches(const FileTag *ftag, const FileTag *candidate)
Definition: md.c:1834
bool mdexists(SMgrRelation reln, ForkNumber forknum)
Definition: md.c:183
void mdreadv(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, void **buffers, BlockNumber nblocks)
Definition: md.c:827
BlockNumber mdnblocks(SMgrRelation reln, ForkNumber forknum)
Definition: md.c:1112
int mdunlinkfiletag(const FileTag *ftag, char *path)
Definition: md.c:1816
void mdcreate(SMgrRelation reln, ForkNumber forknum, bool isRedo)
Definition: md.c:202
void mdextend(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, const void *buffer, bool skipFsync)
Definition: md.c:467
void mdinit(void)
Definition: md.c:170
void mdclose(SMgrRelation reln, ForkNumber forknum)
Definition: md.c:693
void mdzeroextend(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, int nblocks, bool skipFsync)
Definition: md.c:532
int mdsyncfiletag(const FileTag *ftag, char *path)
Definition: md.c:1764
void mdwriteback(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, BlockNumber nblocks)
Definition: md.c:1053
uint32 mdmaxcombine(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum)
Definition: md.c:813
bool mdprefetch(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, int nblocks)
Definition: md.c:716
void mdregistersync(SMgrRelation reln, ForkNumber forknum)
Definition: md.c:1265
void mdopen(SMgrRelation reln)
Definition: md.c:682
void DropRelationFiles(RelFileLocator *delrels, int ndelrels, bool isRedo)
Definition: md.c:1471
void mdtruncate(SMgrRelation reln, ForkNumber forknum, BlockNumber old_blocks, BlockNumber nblocks)
Definition: md.c:1176
void ForgetDatabaseSyncRequests(Oid dbid)
Definition: md.c:1453
void mdimmedsync(SMgrRelation reln, ForkNumber forknum)
Definition: md.c:1316
unsigned int Oid
Definition: postgres_ext.h:32
ForkNumber
Definition: relpath.h:56
Definition: sync.h:51