PostgreSQL Source Code git master
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
aio_target.c File Reference
#include "postgres.h"
#include "storage/aio.h"
#include "storage/aio_internal.h"
#include "storage/smgr.h"
Include dependency graph for aio_target.c:

Go to the source code of this file.

Functions

bool pgaio_io_has_target (PgAioHandle *ioh)
 
const char * pgaio_io_get_target_name (PgAioHandle *ioh)
 
void pgaio_io_set_target (PgAioHandle *ioh, PgAioTargetID targetid)
 
PgAioTargetDatapgaio_io_get_target_data (PgAioHandle *ioh)
 
char * pgaio_io_get_target_description (PgAioHandle *ioh)
 
bool pgaio_io_can_reopen (PgAioHandle *ioh)
 
void pgaio_io_reopen (PgAioHandle *ioh)
 

Variables

static const PgAioTargetInfopgaio_target_info []
 

Function Documentation

◆ pgaio_io_can_reopen()

bool pgaio_io_can_reopen ( PgAioHandle ioh)

Definition at line 103 of file aio_target.c.

104{
106
107 return pgaio_target_info[ioh->target]->reopen != NULL;
108}
#define PGAIO_TID_COUNT
Definition: aio.h:123
@ PGAIO_TID_INVALID
Definition: aio.h:119
static const PgAioTargetInfo * pgaio_target_info[]
Definition: aio_target.c:25
Assert(PointerIsAligned(start, uint64))
PgAioTargetID target
Definition: aio_internal.h:102
void(* reopen)(PgAioHandle *ioh)
Definition: aio.h:164

References Assert(), pgaio_target_info, PGAIO_TID_COUNT, PGAIO_TID_INVALID, PgAioTargetInfo::reopen, and PgAioHandle::target.

Referenced by pgaio_worker_needs_synchronous_execution().

◆ pgaio_io_get_target_data()

PgAioTargetData * pgaio_io_get_target_data ( PgAioHandle ioh)

◆ pgaio_io_get_target_description()

char * pgaio_io_get_target_description ( PgAioHandle ioh)

Definition at line 84 of file aio_target.c.

85{
86 /* disallow INVALID, there wouldn't be a description */
88
90}
char *(* describe_identity)(const PgAioTargetData *sd)
Definition: aio.h:167

References Assert(), PgAioTargetInfo::describe_identity, pgaio_target_info, PGAIO_TID_COUNT, PGAIO_TID_INVALID, PgAioHandle::target, and PgAioHandle::target_data.

Referenced by pg_get_aios().

◆ pgaio_io_get_target_name()

const char * pgaio_io_get_target_name ( PgAioHandle ioh)

Definition at line 50 of file aio_target.c.

51{
52 /* explicitly allow INVALID here, function used by debug messages */
54
55 return pgaio_target_info[ioh->target]->name;
56}
const char * name
Definition: aio.h:170

References Assert(), PgAioTargetInfo::name, pgaio_target_info, PGAIO_TID_COUNT, PGAIO_TID_INVALID, and PgAioHandle::target.

Referenced by pg_get_aios().

◆ pgaio_io_has_target()

bool pgaio_io_has_target ( PgAioHandle ioh)

Definition at line 40 of file aio_target.c.

41{
42 return ioh->target != PGAIO_TID_INVALID;
43}

References PGAIO_TID_INVALID, and PgAioHandle::target.

Referenced by pgaio_io_before_start(), and pgaio_io_stage().

◆ pgaio_io_reopen()

void pgaio_io_reopen ( PgAioHandle ioh)

Definition at line 116 of file aio_target.c.

117{
119 Assert(ioh->op > PGAIO_OP_INVALID && ioh->op < PGAIO_OP_COUNT);
120
121 pgaio_target_info[ioh->target]->reopen(ioh);
122}
#define PGAIO_OP_COUNT
Definition: aio.h:107
@ PGAIO_OP_INVALID
Definition: aio.h:90
PgAioOp op
Definition: aio_internal.h:105

References Assert(), PgAioHandle::op, PGAIO_OP_COUNT, PGAIO_OP_INVALID, pgaio_target_info, PGAIO_TID_COUNT, PGAIO_TID_INVALID, PgAioTargetInfo::reopen, and PgAioHandle::target.

Referenced by IoWorkerMain().

◆ pgaio_io_set_target()

void pgaio_io_set_target ( PgAioHandle ioh,
PgAioTargetID  targetid 
)

Definition at line 64 of file aio_target.c.

65{
68
69 ioh->target = targetid;
70}
@ PGAIO_HS_HANDED_OUT
Definition: aio_internal.h:53
PgAioHandleState state
Definition: aio_internal.h:99

References Assert(), PGAIO_HS_HANDED_OUT, PGAIO_TID_INVALID, PgAioHandle::state, and PgAioHandle::target.

Referenced by pgaio_io_set_target_smgr().

Variable Documentation

◆ pgaio_target_info

const PgAioTargetInfo* pgaio_target_info[]
static
Initial value:
= {
.name = "invalid",
},
}
@ PGAIO_TID_SMGR
Definition: aio.h:120
struct PgAioTargetInfo PgAioTargetInfo
Definition: aio_types.h:24
const PgAioTargetInfo aio_smgr_target_info
Definition: smgr.c:172

Definition at line 25 of file aio_target.c.

Referenced by pgaio_io_can_reopen(), pgaio_io_get_target_description(), pgaio_io_get_target_name(), and pgaio_io_reopen().