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-2016, 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 
21 
22 /* GUC options */
23 extern int	BgWriterDelay;
24 extern int	CheckPointTimeout;
25 extern int	CheckPointWarning;
26 extern double CheckPointCompletionTarget;
27 
28 extern void BackgroundWriterMain(void) pg_attribute_noreturn();
29 extern void CheckpointerMain(void) pg_attribute_noreturn();
30 
31 extern void RequestCheckpoint(int flags);
32 extern void CheckpointWriteDelay(int flags, double progress);
33 
34 extern bool ForwardFsyncRequest(RelFileNode rnode, ForkNumber forknum,
35 					BlockNumber segno);
36 extern void AbsorbFsyncRequests(void);
37 
38 extern Size CheckpointerShmemSize(void);
39 extern void CheckpointerShmemInit(void);
40 
41 extern bool FirstCallSinceLastCheckpoint(void);
42 
43 #endif   /* _BGWRITER_H */
44