55#define SizeOfXLogRecord (offsetof(XLogRecord, xl_crc) + sizeof(pg_crc32c))
62#define XLR_INFO_MASK 0x0F
63#define XLR_RMGR_INFO_MASK 0xF0
74#define XLogRecordMaxSize (1020 * 1024 * 1024)
82#define XLR_SPECIAL_REL_UPDATE 0x01
91#define XLR_CHECK_CONSISTENCY 0x02
115#define SizeOfXLogRecordBlockHeader (offsetof(XLogRecordBlockHeader, data_length) + sizeof(uint16))
153#define SizeOfXLogRecordBlockImageHeader \
154 (offsetof(XLogRecordBlockImageHeader, bimg_info) + sizeof(uint8))
157#define BKPIMAGE_HAS_HOLE 0x01
158#define BKPIMAGE_APPLY 0x02
161#define BKPIMAGE_COMPRESS_PGLZ 0x04
162#define BKPIMAGE_COMPRESS_LZ4 0x08
163#define BKPIMAGE_COMPRESS_ZSTD 0x10
165#define BKPIMAGE_COMPRESSED(info) \
166 ((info & (BKPIMAGE_COMPRESS_PGLZ | BKPIMAGE_COMPRESS_LZ4 | \
167 BKPIMAGE_COMPRESS_ZSTD)) != 0)
178#define SizeOfXLogRecordBlockCompressHeader \
179 sizeof(XLogRecordBlockCompressHeader)
185#define MaxSizeOfXLogRecordBlockHeader \
186 (SizeOfXLogRecordBlockHeader + \
187 SizeOfXLogRecordBlockImageHeader + \
188 SizeOfXLogRecordBlockCompressHeader + \
189 sizeof(RelFileLocator) + \
196#define BKPBLOCK_FORK_MASK 0x0F
197#define BKPBLOCK_FLAG_MASK 0xF0
198#define BKPBLOCK_HAS_IMAGE 0x10
199#define BKPBLOCK_HAS_DATA 0x20
200#define BKPBLOCK_WILL_INIT 0x40
201#define BKPBLOCK_SAME_REL 0x80
219#define SizeOfXLogRecordDataHeaderShort (sizeof(uint8) * 2)
227#define SizeOfXLogRecordDataHeaderLong (sizeof(uint8) + sizeof(uint32))
241#define XLR_MAX_BLOCK_ID 32
243#define XLR_BLOCK_ID_DATA_SHORT 255
244#define XLR_BLOCK_ID_DATA_LONG 254
245#define XLR_BLOCK_ID_ORIGIN 253
246#define XLR_BLOCK_ID_TOPLEVEL_XID 252
struct XLogRecordBlockImageHeader XLogRecordBlockImageHeader
struct XLogRecordBlockCompressHeader XLogRecordBlockCompressHeader
struct XLogRecordDataHeaderShort XLogRecordDataHeaderShort
struct XLogRecordBlockHeader XLogRecordBlockHeader
struct XLogRecord XLogRecord
struct XLogRecordDataHeaderLong XLogRecordDataHeaderLong