26#if defined(USE_LIBURING) && !defined(EXEC_BACKEND)
27#define IOMETHOD_IO_URING_ENABLED
36#ifdef IOMETHOD_IO_URING_ENABLED
42#define DEFAULT_IO_METHOD IOMETHOD_WORKER
107#define PGAIO_OP_COUNT (PGAIO_OP_WRITEV + 1)
123#define PGAIO_TID_COUNT (PGAIO_TID_SMGR + 1)
203#define PGAIO_HCB_MAX PGAIO_HCB_LOCAL_BUFFER_READV
205 "PGAIO_HCB_MAX is too big for PGAIO_RESULT_ID_BITS");
267#define PGAIO_HANDLE_MAX_CALLBACKS 4
void(* PgAioHandleCallbackReport)(PgAioResult result, const PgAioTargetData *target_data, int elevel)
PgAioTargetData * pgaio_io_get_target_data(PgAioHandle *ioh)
PGDLLIMPORT int io_max_concurrency
@ PGAIO_HCB_LOCAL_BUFFER_READV
@ PGAIO_HCB_SHARED_BUFFER_READV
bool pgaio_wref_valid(PgAioWaitRef *iow)
int pgaio_io_get_id(PgAioHandle *ioh)
PgAioHandle * pgaio_io_acquire(struct ResourceOwnerData *resowner, PgAioReturn *ret)
void pgaio_wref_clear(PgAioWaitRef *iow)
void pgaio_io_set_handle_data_32(PgAioHandle *ioh, uint32 *data, uint8 len)
StaticAssertDecl(PGAIO_HCB_MAX<=(1<< PGAIO_RESULT_ID_BITS), "PGAIO_HCB_MAX is too big for PGAIO_RESULT_ID_BITS")
void pgaio_io_start_readv(PgAioHandle *ioh, int fd, int iovcnt, uint64 offset)
void(* PgAioHandleCallbackStage)(PgAioHandle *ioh, uint8 cb_flags)
PgAioOpData * pgaio_io_get_op_data(PgAioHandle *ioh)
void pgaio_io_get_wref(PgAioHandle *ioh, PgAioWaitRef *iow)
void pgaio_io_register_callbacks(PgAioHandle *ioh, PgAioHandleCallbackID cb_id, uint8 cb_data)
void pgaio_closing_fd(int fd)
void pgaio_io_set_flag(PgAioHandle *ioh, PgAioHandleFlags flag)
bool pgaio_have_staged(void)
PgAioOp pgaio_io_get_op(PgAioHandle *ioh)
@ PGAIO_HF_REFERENCES_LOCAL
PgAioResult(* PgAioHandleCallbackComplete)(PgAioHandle *ioh, PgAioResult prior_result, uint8 cb_flags)
bool pgaio_io_has_target(PgAioHandle *ioh)
uint64 * pgaio_io_get_handle_data(PgAioHandle *ioh, uint8 *len)
void pgaio_io_start_writev(PgAioHandle *ioh, int fd, int iovcnt, uint64 offset)
void pgaio_io_set_handle_data_64(PgAioHandle *ioh, uint64 *data, uint8 len)
bool pgaio_wref_check_done(PgAioWaitRef *iow)
PGDLLIMPORT int io_method
ProcNumber pgaio_io_get_owner(PgAioHandle *ioh)
void pgaio_enter_batchmode(void)
void pgaio_io_release_resowner(struct dlist_node *ioh_node, bool on_error)
void pgaio_submit_staged(void)
char * pgaio_io_get_target_description(PgAioHandle *ioh)
void pgaio_wref_wait(PgAioWaitRef *iow)
void pgaio_io_release(PgAioHandle *ioh)
int pgaio_wref_get_id(PgAioWaitRef *iow)
void pgaio_io_set_target(PgAioHandle *ioh, PgAioTargetID targetid)
int pgaio_io_get_iovec(PgAioHandle *ioh, struct iovec **iov)
void pgaio_result_report(PgAioResult result, const PgAioTargetData *target_data, int elevel)
void pgaio_exit_batchmode(void)
PgAioHandle * pgaio_io_acquire_nb(struct ResourceOwnerData *resowner, PgAioReturn *ret)
#define PGAIO_RESULT_ID_BITS
struct PgAioResult PgAioResult
static int fd(const char *x, int i)
PgAioHandleCallbackComplete complete_shared
PgAioHandleCallbackStage stage
PgAioHandleCallbackReport report
PgAioHandleCallbackComplete complete_local
void(* reopen)(PgAioHandle *ioh)