22#define NX_EXTI_EVENT_LOSS 1u
23#define NX_EXTI_EVENT_COALESCED 2u
53 uint8_t syscall_ceiling);
117 uint8_t syscall_ceiling);
nx_result_t nx_exti_port_read(const nx_exti_port_t *port, nx_exti_event_t *events, size_t capacity, size_t *count)
Read queued EXTI events from an exact static line binding.
nx_result_t nx_exti_port_attach_wake(const nx_exti_port_t *port, const nx_irq_wake_t *wake, uint8_t syscall_ceiling)
Attach or detach an explicit event/loss IRQ wake target.
struct nx_exti_port nx_exti_port_t
nx_result_t nx_exti_port_stop(const nx_exti_port_t *port)
Disable the line source, clear pending and drain its handler.
nx_result_t
Operation result; success at submission means admission only.
Edge facts; timestamp precision and coalescing are provider-specific.
nx_time_us_t timestamp_us
Shared read-only methods using one provider state.
nx_result_t(* attach_wake)(void *context, const nx_irq_wake_t *wake, uint8_t syscall_ceiling)
nx_result_t(* read)(void *context, nx_exti_event_t *events, size_t capacity, size_t *count)
nx_result_t(* stop)(void *context)
Immutable interface pointing to caller-owned state.
const nx_exti_ops_t * ops
Optional immutable wake target borrowed by an IRQ provider.
Absolute monotonic microsecond deadlines and wrap extension.
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.