32#define NX_CAN_LOSS_SOFTWARE 1U
33#define NX_CAN_LOSS_HARDWARE_LOWER_BOUND 2U
34#define NX_CAN_LOSS_SATURATED 4U
35#define NX_CAN_DLC_NORMALIZED 8U
166 uint8_t syscall_ceiling);
nx_result_t nx_can_port_read_events(const nx_can_port_t *port, nx_can_event_t *events, size_t capacity, size_t *count)
Consume value events without overwriting earlier unconsumed facts.
nx_result_t nx_can_port_service(const nx_can_port_t *port)
Process latched completions and absolute timeout/drain deadlines.
nx_result_t nx_can_port_stop(const nx_can_port_t *port)
Close admission, abort TX and detach IRQ/RX publishers.
nx_result_t nx_can_port_attach_wake(const nx_can_port_t *port, const nx_irq_wake_t *wake, uint8_t syscall_ceiling)
Borrow an optional wake target after checking all four actual IRQs.
nx_result_t nx_can_tx_prepare(nx_can_tx_request_t *request, const nx_can_frame_t *frame, nx_time_us_t deadline)
Validate and copy a classic frame into unborrowed request storage.
nx_result_t nx_can_port_recover(const nx_can_port_t *port)
Explicitly reenter initialization after bus-off and complete drain.
nx_result_t nx_can_port_cancel(const nx_can_port_t *port, nx_can_tx_request_t *request)
Request abort without revoking a borrowed request.
nx_result_t nx_can_port_submit(const nx_can_port_t *port, nx_can_tx_request_t *request)
Admit one frame into one of three hardware mailboxes.
nx_result_t nx_can_port_state(const nx_can_port_t *port, nx_can_state_t *state)
Copy authoritative error/admission state, even when RX is full.
Caller-owned admission, borrow, settlement and stable cancellation.
nx_result_t
Operation result; success at submission means admission only.
Value receive fact or ordered loss boundary.
nx_time_us_t timestamp_us
Classic 2.0A/B value frame; DLC is always 0..8, never CAN FD.
Shared immutable operations; execution owner serializes task methods.
nx_result_t(* state)(void *, nx_can_state_t *)
nx_result_t(* stop)(void *)
nx_result_t(* service)(void *)
nx_result_t(* cancel)(void *, nx_can_tx_request_t *)
nx_result_t(* submit)(void *, nx_can_tx_request_t *)
nx_result_t(* recover)(void *)
nx_result_t(* read_events)(void *, nx_can_event_t *, size_t, size_t *)
nx_result_t(* attach_wake)(void *, const nx_irq_wake_t *, uint8_t)
Immutable face; lookup does not allocate, start or acquire hardware.
Latched controller state, independent of receive-ring fullness.
Caller-owned frame copied at prepare; base must first be initialized.
Optional immutable wake target borrowed by an IRQ provider.
Caller-owned request metadata, without payload or callbacks.
uint64_t nx_time_us_t
Microseconds in one boot/clock domain; no wall-clock semantics.
Explicit borrowed IRQ wake target and syscall-ceiling check.