6#ifndef NEXUS_IO_ADC_OBSERVER_H
7#define NEXUS_IO_ADC_OBSERVER_H
15#define NX_ADC_OBSERVATION_DISCONTINUITY 1U
nx_result_t nx_adc_observer_unbind(nx_adc_observer_t *observer)
Provider-only unbind after all producer/consumer loans join.
nx_result_t nx_adc_observer_initialize(nx_adc_observer_t *observer, nx_adc_observation_t *records, size_t count)
Initialize fresh unborrowed optional observation storage.
nx_result_t nx_adc_observer_bind(nx_adc_observer_t *observer, nx_stream_t *stream, const void *owner, size_t owner_size)
Provider-only cold bind validates every metadata/payload span before the first DMA loan.
nx_result_t nx_adc_observer_record(nx_adc_observer_t *observer, const nx_stream_fill_t *fill, nx_time_us_t observed_at)
Provider-only record before matching release-publication.
nx_result_t nx_adc_observer_read(const nx_adc_observer_t *observer, const nx_stream_block_t *block, nx_adc_observation_t *observation)
Read only a currently acquired block's exact epoch record.
nx_result_t
Operation result; success at submission means admission only.
Bounded caller-owned blocks with explicit producer/consumer loans.
One loan's software observation, never a sample aperture.
Optional caller-owned observer control and exact records.
nx_adc_observation_t * records
Immutable consumer loan, valid until matching release succeeds.
Mutable producer loan; hardware must stop before abort or publish.
Caller-owned stream control, initialized before publication.
Absolute monotonic microsecond deadlines and wrap extension.
uint64_t nx_time_us_t
Microseconds in one boot/clock domain; no wall-clock semantics.