20#ifndef PROTOCORE_FAILSAFE_H
21#define PROTOCORE_FAILSAFE_H
34 uint32_t last_feed_ms;
40typedef void (*pc_failsafe_cb)(
int id,
const char *name,
void *arg);
52static inline bool pc_lifeline_overdue(uint32_t now, uint32_t last_feed_ms, uint32_t deadline_ms)
54 return (uint32_t)(now - last_feed_ms) > deadline_ms;
62void pc_failsafe_reset(
void);
72int pc_failsafe_register(
const char *name, uint32_t deadline_ms);
73int pc_failsafe_register_at(
const char *name, uint32_t deadline_ms, uint32_t now);
76bool pc_failsafe_feed(
int id);
77bool pc_failsafe_feed_at(
int id, uint32_t now);
80void pc_failsafe_on_breach(pc_failsafe_cb cb,
void *arg);
89uint32_t pc_failsafe_check_at(uint32_t now);
90uint32_t pc_failsafe_check(
void);
93int pc_failsafe_json_at(uint32_t now,
char *out,
size_t cap);
User-facing configuration for ProtoCore.