Struct CoprocLaunchDesc

Struct Documentation

struct CoprocLaunchDesc

Data description for a persistent engine to receive and consume request messages, then autonomously write a reply frame per request into the handoff ring, which the session reads.

Both rings hold ring_slots frames, slot_stride bytes apart, in the frame layout frame_mode names (the CATALYST_TRANSPORT_FRAME_* bit index: 0 for the 16 B frame, 1 for BLV; see doc/dev/backline.rst). Message n arrives in request slot n mod ring_slots, complete once its polled word holds n + 1, and the engine answers it with a frame in the same slot of the handoff ring: the reply’s payload, the request’s fn_id and, written last, n + 1. A launcher built for this layout reports CATALYST_COPROCESSOR_LAUNCHER_MIN_ABI_VERSION in its _info, and returns nonzero for a frame_mode or message size its engine cannot handle.

The session owns the buffers and keeps it valid until the engine has stopped (set *stop nonzero, then synchronize) or has processed total messages.

Public Members

void *ring
std::uint32_t ring_slots
void *handoff
void *stop
std::uint64_t total
void *stream
std::uint32_t frame_mode
std::uint32_t slot_stride