4
mirror of https://gitlab.com/zephray/glider.git synced 2026-07-29 02:40:39 +00:00
Files
glider/fw/User/wake_event_latch.c
2026-07-04 08:41:22 -04:00

32 lines
695 B
C

#include "wake_event_latch.h"
#include <stddef.h>
void wake_event_latch_arm(wake_event_latch_t *latch) {
if (latch == NULL)
return;
latch->pending = false;
latch->armed = true;
}
void wake_event_latch_disarm(wake_event_latch_t *latch) {
if (latch == NULL)
return;
latch->armed = false;
latch->pending = false;
}
void wake_event_latch_signal(wake_event_latch_t *latch) {
if ((latch != NULL) && latch->armed)
latch->pending = true;
}
bool wake_event_latch_take(wake_event_latch_t *latch) {
if ((latch == NULL) || !latch->armed)
return false;
bool pending = latch->pending;
latch->pending = false;
return pending;
}