1 /*-------------------------------------------------------------------------
2  *
3  * bgwriter.h
4  *	  Exports from postmaster/bgwriter.c and postmaster/checkpointer.c.
5  *
6  * The bgwriter process used to handle checkpointing duties too.  Now
7  * there is a separate process, but we did not bother to split this header.
8  *
9  * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group
10  *
11  * src/include/postmaster/bgwriter.h
12  *
13  *-------------------------------------------------------------------------
14  */
15 #ifndef _BGWRITER_H
16 #define _BGWRITER_H
17 
18 #include "storage/block.h"
19 #include "storage/relfilenode.h"
20 #include "storage/smgr.h"
21 #include "storage/sync.h"
22 
23 
24 /* GUC options */
25 extern int	BgWriterDelay;
26 extern int	CheckPointTimeout;
27 extern int	CheckPointWarning;
28 extern double CheckPointCompletionTarget;
29 
30 extern void BackgroundWriterMain(void) pg_attribute_noreturn();
31 extern void CheckpointerMain(void) pg_attribute_noreturn();
32 
33 extern void RequestCheckpoint(int flags);
34 extern void CheckpointWriteDelay(int flags, double progress);
35 
36 extern bool ForwardSyncRequest(const FileTag *ftag, SyncRequestType type);
37 
38 extern void AbsorbSyncRequests(void);
39 
40 extern Size CheckpointerShmemSize(void);
41 extern void CheckpointerShmemInit(void);
42 
43 extern bool FirstCallSinceLastCheckpoint(void);
44 
45 #endif							/* _BGWRITER_H */
46