38#define CALLBACK_ENTRY(id, callback) [id] = {.cb = &callback, .name = #callback}
84 elog(
ERROR,
"callback %d is out of range", cb_id);
87 elog(
ERROR,
"callback %d does not have a completion callback", cb_id);
89 elog(
PANIC,
"too many callbacks, the max is %d",
95 "adding cb #%d, id %d/%s",
119 for (
int i = 0;
i <
len;
i++)
136 for (
int i = 0;
i <
len;
i++)
171 elog(
ERROR,
"callback %d/%s does not have report callback",
174 ce->
cb->
report(result, target_data, elevel);
203 "calling cb #%d %d/%s->stage(%u)",
204 i, cb_id, ce->
name, cb_data);
242 "calling cb #%d, id %d/%s->complete_shared(%u) with distilled result: (status %s, id %u, error_data %d, result %d)",
253 "after shared completion: distilled result: (status %s, id %u, error_data: %d, result %d), raw_result: %d",
293 "calling cb #%d, id %d/%s->complete_local(%u) with distilled result: status %s, id %u, error_data %d, result %d",
294 i, cb_id, ce->
name, cb_data,
307 "after local completion: result: (status %s, id %u, error_data %d, result %d), raw_result: %d",
const char * pgaio_result_status_string(PgAioResultStatus rs)
#define PGAIO_HANDLE_MAX_CALLBACKS
void pgaio_io_call_stage(PgAioHandle *ioh)
static const PgAioHandleCallbacksEntry aio_handle_cbs[]
void pgaio_io_set_handle_data_32(PgAioHandle *ioh, uint32 *data, uint8 len)
PgAioResult pgaio_io_call_complete_local(PgAioHandle *ioh)
void pgaio_io_register_callbacks(PgAioHandle *ioh, PgAioHandleCallbackID cb_id, uint8 cb_data)
void pgaio_io_call_complete_shared(PgAioHandle *ioh)
uint64 * pgaio_io_get_handle_data(PgAioHandle *ioh, uint8 *len)
void pgaio_io_set_handle_data_64(PgAioHandle *ioh, uint64 *data, uint8 len)
static const PgAioHandleCallbacks aio_invalid_cb
struct PgAioHandleCallbacksEntry PgAioHandleCallbacksEntry
#define CALLBACK_ENTRY(id, callback)
void pgaio_result_report(PgAioResult result, const PgAioTargetData *target_data, int elevel)
#define pgaio_debug_io(elevel, ioh, msg,...)
Assert(PointerIsAligned(start, uint64))
#define START_CRIT_SECTION()
#define END_CRIT_SECTION()
const PgAioHandleCallbacks *const cb
PgAioHandleCallbackComplete complete_shared
PgAioHandleCallbackStage stage
PgAioHandleCallbackReport report
PgAioHandleCallbackComplete complete_local
PgAioResult distilled_result
uint8 callbacks[PGAIO_HANDLE_MAX_CALLBACKS]
uint8 callbacks_data[PGAIO_HANDLE_MAX_CALLBACKS]