cloud-sat/kissat-inc/src/reluctant.h
2023-03-26 19:15:17 +08:00

37 lines
666 B
C

#ifndef _reluctant_h_INCLUDED
#define _reluctant_h_INCLUDED
#include <stdbool.h>
#include <stdint.h>
typedef struct reluctant reluctant;
struct reluctant
{
bool limited;
bool trigger;
uint64_t period;
uint64_t wait;
uint64_t u, v;
uint64_t limit;
};
void kissat_enable_reluctant (reluctant *, uint64_t period, uint64_t limit);
void kissat_disable_reluctant (reluctant *);
void kissat_tick_reluctant (reluctant *);
static inline bool
kissat_reluctant_triggered (reluctant * reluctant)
{
if (!reluctant->trigger)
return false;
reluctant->trigger = false;
return true;
}
struct kissat;
void kissat_init_reluctant (struct kissat *);
#endif