6#ifndef NEXUS_IO_TIMER_CAPTURE_H
7#define NEXUS_IO_TIMER_CAPTURE_H
nx_result_t
Operation result; success at submission means admission only.
Hardware modulo counter and the separate IRQ observation time.
Shared immutable methods; no per-call acquisition or allocation.
nx_result_t(* read)(void *context, nx_timer_capture_event_t *event)
nx_result_t(* stop)(void *context)
nx_result_t(* state)(const void *context, nx_timer_capture_state_t *state)
nx_result_t(* start)(void *context, nx_timer_capture_event_t *events, size_t capacity)
Fixed counter units and current software retention state.
Immutable identity; state and methods outlive calls and IRQs.
const nx_timer_capture_ops_t * ops
Absolute monotonic microsecond deadlines and wrap extension.
uint64_t nx_time_us_t
Microseconds in one boot/clock domain; no wall-clock semantics.
nx_result_t nx_timer_capture_read(const nx_timer_capture_t *port, nx_timer_capture_event_t *event)
Copy the oldest event in a short saved-mask metadata section.
nx_result_t nx_timer_capture_state(const nx_timer_capture_t *port, nx_timer_capture_state_t *state)
Query counter units and observable queue/loss facts.
nx_result_t nx_timer_capture_start(const nx_timer_capture_t *port, nx_timer_capture_event_t *events, size_t capacity)
Borrow an exact event ring and enable the fixed capture channel.
nx_result_t nx_timer_capture_stop(const nx_timer_capture_t *port)
Disable and read back channel/IRQ sources before returning storage.
nx_timer_capture_flags
Observable loss incidents, not an exact count of physical edges.
@ NX_TIMER_CAPTURE_OVERCAPTURE
@ NX_TIMER_CAPTURE_RING_LOSS