10#define NEXUS_REQUEST_H
149 size_t* transferred);
177 uint64_t expected_epoch);
189 uint64_t expected_epoch);
void nx_request_initialize(nx_request_t *request)
Initialize fresh unborrowed request storage.
nx_request_state_t
Request state; only READY and SETTLED have no provider borrow.
nx_request_t * nx_request_slot_lookup(const nx_request_slot_t *slot, uint64_t expected_epoch)
Resolve cancellation using stable storage before dereference.
nx_result_t nx_request_slot_bind(nx_request_slot_t *slot, nx_request_t *request, uint64_t *epoch)
Bind a stable slot to a new request incarnation.
void nx_request_settle(nx_request_t *request, nx_result_t result, size_t transferred)
Release-publish SETTLED as the final provider access.
nx_result_t nx_request_transition(nx_request_t *request, nx_request_state_t state)
Advance an already admitted request without readmission.
nx_request_state_t nx_request_state(const nx_request_t *request)
Read request state with acquire ordering.
nx_result_t nx_request_prepare(nx_request_t *request, nx_time_us_t deadline)
Prepare a READY or consumed SETTLED request.
nx_result_t nx_request_admit(nx_request_t *request, nx_request_state_t state)
Establish the chain's unique admission and provider borrow.
nx_result_t nx_request_result(const nx_request_t *request, nx_result_t *result, size_t *transferred)
Copy the unique settled result after acquire publication.
nx_result_t nx_request_slot_release(nx_request_slot_t *slot, uint64_t expected_epoch)
Drop a slot reference only after settlement and control drain.
nx_result_t
Operation result; success at submission means admission only.
Adapter-owned stable cancellation identity.
Caller-owned request metadata, without payload or callbacks.
Absolute monotonic microsecond deadlines and wrap extension.
uint64_t nx_time_us_t
Microseconds in one boot/clock domain; no wall-clock semantics.