24#ifndef PROTOCORE_MDNS_ADAPTIVE_H
25#define PROTOCORE_MDNS_ADAPTIVE_H
29#if PROTOCORE_ENABLE_MDNS_ADAPTIVE
59} MdnsContentionWindow;
67 uint32_t max_interval_ms;
69 uint16_t hi_contention;
77} MdnsAdaptiveRefreshIntervalArgs;
86} MdnsAdaptiveBeaconInitArgs;
93} MdnsAdaptiveBeaconAdaptArgs;
101} MdnsAdaptiveBeaconDueArgs;
110} MdnsAdaptiveBeaconPresleepDueArgs;
115 MdnsContentionWindow *w;
119} MdnsAdaptiveContentionInitArgs;
124 MdnsContentionWindow *w;
128} MdnsAdaptiveContentionSampleArgs;
133 const MdnsAdaptiveCfg *cfg;
134} MdnsAdaptiveBeginArgs;
177 MdnsAdaptiveRefreshIntervalArgs refresh_interval_args;
178 MdnsAdaptiveBeaconInitArgs beacon_init_args;
179 MdnsAdaptiveBeaconAdaptArgs beacon_adapt_args;
180 MdnsAdaptiveBeaconDueArgs beacon_due_args;
181 MdnsAdaptiveBeaconPresleepDueArgs beacon_presleep_due_args;
182 MdnsAdaptiveContentionInitArgs contention_init_args;
183 MdnsAdaptiveContentionSampleArgs contention_sample_args;
184 MdnsAdaptiveBeginArgs begin_args;
191extern MdnsAdaptiveVars MdnsAdaptiveV;
196 void (*
const refresh_interval)(uint8_t *work);
197 void (*
const beacon_init)(uint8_t *work);
198 void (*
const beacon_adapt)(uint8_t *work);
199 void (*
const beacon_due)(uint8_t *work);
200 void (*
const beacon_presleep_due)(uint8_t *work);
201 void (*
const contention_init)(uint8_t *work);
202 void (*
const contention_sample)(uint8_t *work);
203 void (*
const begin)(uint8_t *work);
204 void (*
const tick)(uint8_t *work);
205 void (*
const end)(uint8_t *work);
206 void (*
const interval_ms)(uint8_t *work);
207 void (*
const contention)(uint8_t *work);
208 void (*
const announces)(uint8_t *work);
213void protocore_mdns_adaptive_refresh_interval(uint8_t *work);
214void protocore_mdns_adaptive_beacon_init(uint8_t *work);
215void protocore_mdns_adaptive_beacon_adapt(uint8_t *work);
216void protocore_mdns_adaptive_beacon_due(uint8_t *work);
217void protocore_mdns_adaptive_beacon_presleep_due(uint8_t *work);
218void protocore_mdns_adaptive_contention_init(uint8_t *work);
219void protocore_mdns_adaptive_contention_sample(uint8_t *work);
220void protocore_mdns_adaptive_begin(uint8_t *work);
221void protocore_mdns_adaptive_tick(uint8_t *work);
222void protocore_mdns_adaptive_end(uint8_t *work);
223void protocore_mdns_adaptive_interval_ms(uint8_t *work);
224void protocore_mdns_adaptive_contention(uint8_t *work);
225void protocore_mdns_adaptive_announces(uint8_t *work);
231static const MdnsAdaptiveNs MdnsAdaptive __attribute__((unused)) = {
232 .refresh_interval = protocore_mdns_adaptive_refresh_interval,
233 .beacon_init = protocore_mdns_adaptive_beacon_init,
234 .beacon_adapt = protocore_mdns_adaptive_beacon_adapt,
235 .beacon_due = protocore_mdns_adaptive_beacon_due,
236 .beacon_presleep_due = protocore_mdns_adaptive_beacon_presleep_due,
237 .contention_init = protocore_mdns_adaptive_contention_init,
238 .contention_sample = protocore_mdns_adaptive_contention_sample,
239 .begin = protocore_mdns_adaptive_begin,
240 .tick = protocore_mdns_adaptive_tick,
241 .end = protocore_mdns_adaptive_end,
242 .interval_ms = protocore_mdns_adaptive_interval_ms,
243 .contention = protocore_mdns_adaptive_contention,
244 .announces = protocore_mdns_adaptive_announces,
256uint8_t *protocore_mdns_adaptive_span(
void);
#define PROTOCORE_BEGIN_DECLS
Give a header's declarations C linkage, so their symbol names carry no parameter types.
_Bool proto_bool
The truth value.
#define PROTOCORE_END_DECLS