PostgreSQL Source Code git master
Functions | Variables
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

 
const char *  pgaio_io_get_target_name (PgAioHandle *ioh)
 
 
 
 
 
 

Variables

static const PgAioTargetInfopgaio_target_info []
 

Function Documentation

pgaio_io_can_reopen()

bool pgaio_io_can_reopen ( PgAioHandleioh )

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))
uint8 target
Definition: aio_internal.h:108
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 ( PgAioHandleioh )

Definition at line 73 of file aio_target.c.

74{
75 return &ioh->target_data;
76}
PgAioTargetData target_data
Definition: aio_internal.h:187

References PgAioHandle::target_data.

Referenced by buffer_readv_complete(), md_readv_complete(), pgaio_io_set_target_smgr(), shared_buffer_readv_complete_local(), and smgr_aio_reopen().

pgaio_io_get_target_description()

char * pgaio_io_get_target_description ( PgAioHandleioh )

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 ( PgAioHandleioh )

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 ( PgAioHandleioh )

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 ( PgAioHandleioh )

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
uint8 op
Definition: aio_internal.h:111

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 ( PgAioHandleioh,
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
uint8 state
Definition: aio_internal.h:105

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().

AltStyle によって変換されたページ (->オリジナル) /