6#ifndef NEXUS_COMPONENTS_BUS_OWNER_H
7#define NEXUS_COMPONENTS_BUS_OWNER_H
27 void (*
leave)(
void*, uintptr_t);
bool nx_bus_owner_idle(nx_bus_owner_t *owner)
Test whether execution and completion publication have exited.
nx_result_t nx_bus_owner_service(nx_bus_owner_t *owner)
Advance at most one bounded execution step.
void nx_bus_owner_stop(nx_bus_owner_t *owner)
Close admission and request every accepted operation to stop.
nx_result_t nx_bus_owner_cancel(nx_bus_owner_t *owner, nx_owner_ticket_t ticket)
Submit cancellation through stable adapter storage.
nx_result_t nx_bus_owner_submit(nx_bus_owner_t *owner, nx_request_t *request, void *operation, const nx_wait_port_t *completion, nx_owner_ticket_t *ticket)
Establish the chain's unique admission.
nx_result_t nx_bus_owner_init(nx_bus_owner_t *owner, nx_owner_slot_t *slots, size_t capacity, nx_owner_guard_port_t guard, nx_owner_executor_port_t executor, nx_clock_t clock, const nx_wait_port_t *wake)
Initialize unused owner/slot storage.
Caller-owned admission, borrow, settlement and stable cancellation.
nx_result_t
Operation result; success at submission means admission only.
Explicit adapter state; external application supplies all storage.
nx_owner_executor_port_t executor
nx_result_t cancellation_result
nx_owner_guard_port_t guard
An explicitly injected clock; its context outlives all borrowers.
One real execution owner, injected without OS dependency.
nx_result_t(* start)(void *, void *operation, nx_time_us_t deadline)
nx_result_t(* service)(void *, nx_result_t *result, size_t *transferred)
nx_result_t(* cancel)(void *)
Explicit bounded metadata exclusion port.
uintptr_t(* enter)(void *)
void(* leave)(void *, uintptr_t)
Exact caller-owned slot, linked in either the free or FIFO chain; initialize only with owner init.
nx_wait_port_t completion
nx_request_slot_t identity
Stable control identity; never dereference a stale request pointer.
Adapter-owned stable cancellation identity.
Caller-owned request metadata, without payload or callbacks.
Single-waiter notification port.
uint64_t nx_time_us_t
Microseconds in one boot/clock domain; no wall-clock semantics.
Optional sequence-latched waiting without hidden workers.