PostgreSQL Source Code git master
Loading...
Searching...
No Matches
slru_io.h
Go to the documentation of this file.
1/*
2 * slru_io.h
3 *
4 * Copyright (c) 2025-2026, PostgreSQL Global Development Group
5 * src/bin/pg_upgrade/slru_io.h
6 */
7
8#ifndef SLRU_IO_H
9#define SLRU_IO_H
10
11/*
12 * State for reading or writing an SLRU, with a one page buffer.
13 */
27
28extern SlruSegState *AllocSlruRead(const char *dir, bool long_segment_names);
29extern char *SlruReadSwitchPageSlow(SlruSegState *state, uint64 pageno);
30extern void FreeSlruRead(SlruSegState *state);
31
32static inline char *
34{
35 if (state->segno != -1 && pageno == state->pageno)
36 return state->buf.data;
37 return SlruReadSwitchPageSlow(state, pageno);
38}
39
40extern SlruSegState *AllocSlruWrite(const char *dir, bool long_segment_names);
42extern void FreeSlruWrite(SlruSegState *state);
43
44static inline char *
46{
47 if (state->segno != -1 && pageno == state->pageno)
48 return state->buf.data;
49 return SlruWriteSwitchPageSlow(state, pageno);
50}
51
52#endif /* SLRU_IO_H */
int64_t int64
Definition c.h:543
uint64_t uint64
Definition c.h:547
static char * SlruReadSwitchPage(SlruSegState *state, uint64 pageno)
Definition slru_io.h:33
char * SlruWriteSwitchPageSlow(SlruSegState *state, uint64 pageno)
Definition slru_io.c:187
void FreeSlruWrite(SlruSegState *state)
Definition slru_io.c:260
static char * SlruWriteSwitchPage(SlruSegState *state, uint64 pageno)
Definition slru_io.h:45
SlruSegState * AllocSlruWrite(const char *dir, bool long_segment_names)
Definition slru_io.c:166
char * SlruReadSwitchPageSlow(SlruSegState *state, uint64 pageno)
Definition slru_io.c:85
SlruSegState * AllocSlruRead(const char *dir, bool long_segment_names)
Definition slru_io.c:62
void FreeSlruRead(SlruSegState *state)
Definition slru_io.c:153
char * fn
Definition slru_io.h:20
uint64 pageno
Definition slru_io.h:23
char * dir
Definition slru_io.h:19
int64 segno
Definition slru_io.h:22
bool long_segment_names
Definition slru_io.h:17
bool writing
Definition slru_io.h:16
PGAlignedBlock buf
Definition slru_io.h:25