PostgreSQL Source Code git master
Loading...
Searching...
No Matches
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-2026, 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/aio_types.h"
18#include "storage/block.h"
20#include "storage/smgr.h"
21#include "storage/sync.h"
22
24
25/* md storage manager functionality */
26extern void mdinit(void);
27extern void mdopen(SMgrRelation reln);
28extern void mdclose(SMgrRelation reln, ForkNumber forknum);
29extern void mdcreate(SMgrRelation reln, ForkNumber forknum, bool isRedo);
30extern bool mdexists(SMgrRelation reln, ForkNumber forknum);
31extern void mdunlink(RelFileLocatorBackend rlocator, ForkNumber forknum, bool isRedo);
32extern void mdextend(SMgrRelation reln, ForkNumber forknum,
33 BlockNumber blocknum, const void *buffer, bool skipFsync);
34extern void mdzeroextend(SMgrRelation reln, ForkNumber forknum,
35 BlockNumber blocknum, int nblocks, bool skipFsync);
36extern bool mdprefetch(SMgrRelation reln, ForkNumber forknum,
37 BlockNumber blocknum, int nblocks);
39 BlockNumber blocknum);
40extern void mdreadv(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
41 void **buffers, BlockNumber nblocks);
42extern void mdstartreadv(PgAioHandle *ioh,
43 SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum,
44 void **buffers, BlockNumber nblocks);
45extern void mdwritev(SMgrRelation reln, ForkNumber forknum,
46 BlockNumber blocknum,
47 const void **buffers, BlockNumber nblocks, bool skipFsync);
48extern void mdwriteback(SMgrRelation reln, ForkNumber forknum,
49 BlockNumber blocknum, BlockNumber nblocks);
51extern void mdtruncate(SMgrRelation reln, ForkNumber forknum,
53extern void mdimmedsync(SMgrRelation reln, ForkNumber forknum);
54extern void mdregistersync(SMgrRelation reln, ForkNumber forknum);
55extern int mdfd(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, uint32 *off);
56
57extern void ForgetDatabaseSyncRequests(Oid dbid);
59
60/* md sync callbacks */
61extern int mdsyncfiletag(const FileTag *ftag, char *path);
62extern int mdunlinkfiletag(const FileTag *ftag, char *path);
63extern bool mdfiletagmatches(const FileTag *ftag, const FileTag *candidate);
64
65#endif /* MD_H */
uint32 BlockNumber
Definition block.h:31
#define PGDLLIMPORT
Definition c.h:1328
uint32_t uint32
Definition c.h:546
void mdunlink(RelFileLocatorBackend rlocator, ForkNumber forknum, bool isRedo)
Definition md.c:337
void mdtruncate(SMgrRelation reln, ForkNumber forknum, BlockNumber curnblk, BlockNumber nblocks)
Definition md.c:1290
void mdwritev(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, const void **buffers, BlockNumber nblocks, bool skipFsync)
Definition md.c:1059
bool mdfiletagmatches(const FileTag *ftag, const FileTag *candidate)
Definition md.c:1963
bool mdexists(SMgrRelation reln, ForkNumber forknum)
Definition md.c:203
void mdreadv(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, void **buffers, BlockNumber nblocks)
Definition md.c:847
BlockNumber mdnblocks(SMgrRelation reln, ForkNumber forknum)
Definition md.c:1223
PGDLLIMPORT const PgAioHandleCallbacks aio_md_readv_cb
Definition md.c:169
int mdunlinkfiletag(const FileTag *ftag, char *path)
Definition md.c:1945
void mdcreate(SMgrRelation reln, ForkNumber forknum, bool isRedo)
Definition md.c:222
int mdfd(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, uint32 *off)
Definition md.c:1483
void mdextend(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, const void *buffer, bool skipFsync)
Definition md.c:487
void mdinit(void)
Definition md.c:190
void mdclose(SMgrRelation reln, ForkNumber forknum)
Definition md.c:713
void mdzeroextend(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, int nblocks, bool skipFsync)
Definition md.c:552
int mdsyncfiletag(const FileTag *ftag, char *path)
Definition md.c:1893
void mdwriteback(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, BlockNumber nblocks)
Definition md.c:1164
uint32 mdmaxcombine(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum)
Definition md.c:833
void mdstartreadv(PgAioHandle *ioh, SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, void **buffers, BlockNumber nblocks)
Definition md.c:985
bool mdprefetch(SMgrRelation reln, ForkNumber forknum, BlockNumber blocknum, int nblocks)
Definition md.c:736
void mdregistersync(SMgrRelation reln, ForkNumber forknum)
Definition md.c:1379
void mdopen(SMgrRelation reln)
Definition md.c:702
void DropRelationFiles(RelFileLocator *delrels, int ndelrels, bool isRedo)
Definition md.c:1600
void ForgetDatabaseSyncRequests(Oid dbid)
Definition md.c:1582
void mdimmedsync(SMgrRelation reln, ForkNumber forknum)
Definition md.c:1430
unsigned int Oid
static int fb(int x)
ForkNumber
Definition relpath.h:56
Definition sync.h:51