22#ifndef PROTOCORE_GUARDRAILS_H
23#define PROTOCORE_GUARDRAILS_H
29#if PC_ENABLE_GUARDRAILS
35 uint32_t min_free_heap;
36 uint32_t largest_free_block;
44 static constexpr uint8_t PC_BREACH_NONE = 0;
45 static constexpr uint8_t PC_BREACH_HEAP = 1;
46 static constexpr uint8_t PC_BREACH_FRAG = 2;
47 static constexpr uint8_t PC_BREACH_STACK = 4;
55uint8_t pc_guardrail_eval(
const pc_health *h, uint32_t heap_min, uint32_t frag_min_block, uint32_t stack_min);
61int pc_health_json(
const pc_health *h,
char *out,
size_t cap);
68void pc_guardrails_sample(pc_health *h);
71typedef void (*pc_breach_fn)(uint8_t breaches,
const pc_health *h);
74void pc_guardrails_begin(pc_breach_fn cb);
80uint8_t pc_guardrails_check(
void);
User-facing configuration for ProtoCore.