28#ifndef RTE_CROSS_COMPARATOR_H
29#define RTE_CROSS_COMPARATOR_H
82#define RTE_CROSS_COMPARATOR_MAX_MESSAGE_SIZE 256U
92 uint32_t registered_count;
93 uint32_t total_disagreements;
171 void *out_data,
size_t *out_size);
223 const void *local_data,
const void *peer_data,
226 void *out_data,
size_t *out_size);
241 uint32_t *healthy_count,
242 uint32_t *total_disagreements);
rte_safestate_level_t
Safe-state severity levels (ADR-004 section 2.1).
uint16_t rte_safestate_reason_t
Diagnostic reason code accompanying a safe-state transition.
rte_status_t
Common result/status codes.
rte_channel_storage_t rte_channel_t
Opaque handle to a vital channel instance.
rte_status_t rte_cross_comparator_register_channel(rte_cross_comparator_t *cmp, rte_channel_t *channel)
Registers one already-initialized channel (channel A, then B).
rte_status_t rte_cross_comparator_execute(rte_cross_comparator_t *cmp, size_t data_size, rte_voting_result_t *result, void *out_data, size_t *out_size)
Receives from both registered channels and compares them.
rte_status_t rte_cross_comparator_init(rte_cross_comparator_storage_t *storage, const rte_cross_comparator_config_t *config)
Initializes a cross-comparator with zero registered channels.
rte_cross_comparator_storage_t rte_cross_comparator_t
Opaque handle to a cross-comparator instance.
rte_status_t rte_cross_comparator_get_aggregated_health(const rte_cross_comparator_t *cmp, uint32_t *healthy_count, uint32_t *total_disagreements)
Aggregated health across both registered channels.
rte_status_t rte_cross_comparator_execute_buffers(rte_cross_comparator_t *cmp, const void *local_data, const void *peer_data, size_t data_size, rte_voting_result_t *result, void *out_data, size_t *out_size)
Compares two already-in-hand data buffers directly, with the same on_disagreement-then-unconditional-...
rte_status_t rte_cross_comparator_destroy(rte_cross_comparator_t *cmp)
Destroys a cross-comparator instance.
rte_voting_result_t
Outcome of one rte_voter_receive() call.
bool(*) rte_voter_compare_fn(const void *a, const void *b, size_t size, void *user_ctx)
Optional custom comparison callback.
A single redundant "channel": an opaque transport handle plus send/receive callbacks,...
Safe-state transitions and checked assertions (ADR-004).
Common status/error codes returned by every Safe API Framework function. Shared across all OS Abstrac...
N-way voting across registered rte_channel_t links (2oo2/2oo3/NMR).
Configuration for rte_cross_comparator_init().
uint32_t channel_timeout_ms
rte_safestate_reason_t safestate_reason
void * disagreement_context
rte_voter_compare_fn compare
void(*) on_disagreement(void *context, rte_voting_result_t result)
rte_safestate_level_t safestate_level
Storage for one cross-comparator instance (opaque to caller). No dynamic memory.