PostgreSQL Source Code git master
|
#include "postgres.h"
#include "miscadmin.h"
#include "storage/aio.h"
#include "storage/aio_internal.h"
#include "storage/fd.h"
#include "utils/wait_event.h"
Go to the source code of this file.
Functions | |
static void | pgaio_io_before_prep (PgAioHandle *ioh) |
int | pgaio_io_get_iovec (PgAioHandle *ioh, struct iovec **iov) |
PgAioOp | pgaio_io_get_op (PgAioHandle *ioh) |
PgAioOpData * | pgaio_io_get_op_data (PgAioHandle *ioh) |
void | pgaio_io_prep_readv (PgAioHandle *ioh, int fd, int iovcnt, uint64 offset) |
void | pgaio_io_prep_writev (PgAioHandle *ioh, int fd, int iovcnt, uint64 offset) |
void | pgaio_io_perform_synchronously (PgAioHandle *ioh) |
const char * | pgaio_io_get_op_name (PgAioHandle *ioh) |
|
static |
Definition at line 156 of file aio_io.c.
References Assert(), PgAioBackend::handed_out_io, PgAioHandle::op, PGAIO_HS_HANDED_OUT, pgaio_io_has_target(), pgaio_my_backend, PGAIO_OP_INVALID, and PgAioHandle::state.
Referenced by pgaio_io_prep_readv(), and pgaio_io_prep_writev().
int pgaio_io_get_iovec | ( | PgAioHandle * | ioh, |
struct iovec ** | iov | ||
) |
Definition at line 42 of file aio_io.c.
References Assert(), PgAioHandle::iovec_off, PgAioCtl::iovecs, PG_IOV_MAX, pgaio_ctl, PGAIO_HS_HANDED_OUT, and PgAioHandle::state.
PgAioOp pgaio_io_get_op | ( | PgAioHandle * | ioh | ) |
PgAioOpData * pgaio_io_get_op_data | ( | PgAioHandle * | ioh | ) |
const char * pgaio_io_get_op_name | ( | PgAioHandle * | ioh | ) |
Definition at line 169 of file aio_io.c.
References Assert(), PgAioHandle::op, PGAIO_OP_COUNT, PGAIO_OP_INVALID, PGAIO_OP_READV, and PGAIO_OP_WRITEV.
void pgaio_io_perform_synchronously | ( | PgAioHandle * | ioh | ) |
Definition at line 116 of file aio_io.c.
References elog, END_CRIT_SECTION, ERROR, PgAioOpData::fd, PgAioOpData::iov_length, PgAioHandle::iovec_off, PgAioCtl::iovecs, PgAioOpData::offset, PgAioHandle::op, PgAioHandle::op_data, pg_preadv(), pg_pwritev(), pgaio_ctl, pgaio_io_process_completion(), PGAIO_OP_INVALID, PGAIO_OP_READV, PGAIO_OP_WRITEV, pgstat_report_wait_end(), pgstat_report_wait_start(), PgAioOpData::read, PgAioHandle::result, START_CRIT_SECTION, and PgAioOpData::write.
Referenced by IoWorkerMain(), pgaio_io_stage(), and pgaio_worker_submit_internal().
void pgaio_io_prep_readv | ( | PgAioHandle * | ioh, |
int | fd, | ||
int | iovcnt, | ||
uint64 | offset | ||
) |
Definition at line 78 of file aio_io.c.
References PgAioOpData::fd, fd(), PgAioOpData::iov_length, PgAioOpData::offset, PgAioHandle::op_data, pgaio_io_before_prep(), pgaio_io_stage(), PGAIO_OP_READV, and PgAioOpData::read.
void pgaio_io_prep_writev | ( | PgAioHandle * | ioh, |
int | fd, | ||
int | iovcnt, | ||
uint64 | offset | ||
) |
Definition at line 91 of file aio_io.c.
References PgAioOpData::fd, fd(), PgAioOpData::iov_length, PgAioOpData::offset, PgAioHandle::op_data, pgaio_io_before_prep(), pgaio_io_stage(), PGAIO_OP_WRITEV, and PgAioOpData::write.