15#ifndef MULTIXACT_INTERNAL_H
21#define MULTIXACT_INTERNAL_H
32#define MULTIXACT_OFFSETS_PER_PAGE (BLCKSZ / sizeof(MultiXactOffset))
65#define MXACT_MEMBER_BITS_PER_XACT 8
66#define MXACT_MEMBER_FLAGS_PER_BYTE 1
67#define MXACT_MEMBER_XACT_BITMASK ((1 << MXACT_MEMBER_BITS_PER_XACT) - 1)
70#define MULTIXACT_FLAGBYTES_PER_GROUP 4
71#define MULTIXACT_MEMBERS_PER_MEMBERGROUP \
72 (MULTIXACT_FLAGBYTES_PER_GROUP * MXACT_MEMBER_FLAGS_PER_BYTE)
74#define MULTIXACT_MEMBERGROUP_SIZE \
75 (sizeof(TransactionId) * MULTIXACT_MEMBERS_PER_MEMBERGROUP + MULTIXACT_FLAGBYTES_PER_GROUP)
76#define MULTIXACT_MEMBERGROUPS_PER_PAGE (BLCKSZ / MULTIXACT_MEMBERGROUP_SIZE)
77#define MULTIXACT_MEMBERS_PER_PAGE \
78 (MULTIXACT_MEMBERGROUPS_PER_PAGE * MULTIXACT_MEMBERS_PER_MEMBERGROUP)
TransactionId MultiXactId
static int64 MXOffsetToMemberPage(MultiXactOffset offset)
#define MXACT_MEMBER_BITS_PER_XACT
static int64 MultiXactIdToOffsetSegment(MultiXactId multi)
#define MULTIXACT_FLAGBYTES_PER_GROUP
#define MULTIXACT_OFFSETS_PER_PAGE
static int MultiXactIdToOffsetEntry(MultiXactId multi)
#define MULTIXACT_MEMBERGROUPS_PER_PAGE
static int MXOffsetToMemberOffset(MultiXactOffset offset)
static int64 MultiXactIdToOffsetPage(MultiXactId multi)
static int64 MXOffsetToMemberSegment(MultiXactOffset offset)
#define MULTIXACT_MEMBERGROUP_SIZE
static int MXOffsetToFlagsOffset(MultiXactOffset offset)
#define MULTIXACT_MEMBERS_PER_MEMBERGROUP
#define MULTIXACT_MEMBERS_PER_PAGE
static int MXOffsetToFlagsBitShift(MultiXactOffset offset)
#define SLRU_PAGES_PER_SEGMENT