35#ifndef PROTOCORE_POWER_MGMT_H
36#define PROTOCORE_POWER_MGMT_H
40#if PROTOCORE_ENABLE_POWER_MGMT
70 uint32_t since_boot_ms;
77 const PowerPlan *plan;
112 PowerPlanArgs plan_args;
113 PowerOutArgs out_args;
120#if PROTOCORE_HAS_VENDOR_PM
122#if PROTOCORE_HAS_VENDOR_BT
127extern PowerVars PowerV;
132 void (*
const defaults)(uint8_t *work);
133 void (*
const decide)(uint8_t *work);
134 void (*
const json)(uint8_t *work);
135 void (*
const brownout)(uint8_t *work);
136 void (*
const die_temp)(uint8_t *work);
137 void (*
const cpu_mhz)(uint8_t *work);
138 void (*
const apply)(uint8_t *work);
139 void (*
const gate_bt)(uint8_t *work);
144void protocore_power_defaults(uint8_t *work);
145void protocore_power_decide(uint8_t *work);
146void protocore_power_json(uint8_t *work);
147#if PROTOCORE_HAS_VENDOR_PM
148void protocore_power_brownout(uint8_t *work);
149void protocore_power_die_temp(uint8_t *work);
150void protocore_power_cpu_mhz(uint8_t *work);
151void protocore_power_apply(uint8_t *work);
153#if PROTOCORE_HAS_VENDOR_BT
154void protocore_power_gate_bt(uint8_t *work);
161static const PowerMgmtNs Power __attribute__((unused)) = {
162 .defaults = protocore_power_defaults,
163 .decide = protocore_power_decide,
164 .json = protocore_power_json,
165#if PROTOCORE_HAS_VENDOR_PM
166 .brownout = protocore_power_brownout,
167 .die_temp = protocore_power_die_temp,
168 .cpu_mhz = protocore_power_cpu_mhz,
169 .apply = protocore_power_apply,
171#if PROTOCORE_HAS_VENDOR_BT
172 .gate_bt = protocore_power_gate_bt,
185uint8_t *protocore_power_mgmt_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