26#define SLRU_MAX_ALLOWED_BUFFERS ((1024 * 1024 * 1024) / BLCKSZ)
213 return &(
ctl->shared->bank_locks[
bankno].lock);
218#define SimpleLruRequest(...) \
219 SimpleLruRequestWithOpts(&(SlruOpts){__VA_ARGS__})
230#ifdef USE_ASSERT_CHECKING
233#define SlruPagePrecedesUnitTests(ctl, per_page) do {} while (0)
#define Assert(condition)
bool SlruScanDirectory(SlruDesc *ctl, SlruScanCallback callback, void *data)
SlruSharedData * SlruShared
#define SlruPagePrecedesUnitTests(ctl, per_page)
int SimpleLruReadPage_ReadOnly(SlruDesc *ctl, int64 pageno, const void *opaque_data)
int SimpleLruAutotuneBuffers(int divisor, int max)
bool SlruScanDirCbReportPresence(SlruDesc *ctl, char *filename, int64 segpage, void *data)
void shmem_slru_init(void *location, ShmemStructOpts *base_options)
void SimpleLruTruncate(SlruDesc *ctl, int64 cutoffPage)
void SimpleLruZeroAndWritePage(SlruDesc *ctl, int64 pageno)
bool(* SlruScanCallback)(SlruDesc *ctl, char *filename, int64 segpage, void *data)
void SlruDeleteSegment(SlruDesc *ctl, int64 segno)
int SimpleLruZeroPage(SlruDesc *ctl, int64 pageno)
void shmem_slru_attach(void *location, ShmemStructOpts *base_options)
bool SimpleLruDoesPhysicalPageExist(SlruDesc *ctl, int64 pageno)
static LWLock * SimpleLruGetBankLock(SlruDesc *ctl, int64 pageno)
@ SLRU_PAGE_WRITE_IN_PROGRESS
@ SLRU_PAGE_READ_IN_PROGRESS
bool SlruScanDirCbDeleteAll(SlruDesc *ctl, char *filename, int64 segpage, void *data)
void SimpleLruWritePage(SlruDesc *ctl, int slotno)
void SimpleLruWriteAll(SlruDesc *ctl, bool allow_redirtied)
int SimpleLruReadPage(SlruDesc *ctl, int64 pageno, bool write_ok, const void *opaque_data)
void SimpleLruRequestWithOpts(const SlruOpts *options)
bool check_slru_buffers(const char *name, int *newval)
int SlruSyncFileTag(SlruDesc *ctl, const FileTag *ftag, char *path)
int(* errdetail_for_io_error)(const void *opaque_data)
bool(* PagePrecedes)(int64, int64)
SyncRequestHandler sync_handler
LWLockPadded * bank_locks
pg_atomic_uint64 latest_page_number
SlruPageStatus * page_status
LWLockPadded * buffer_locks
static void callback(struct sockaddr *addr, struct sockaddr *mask, void *unused)