30#ifndef OVE_EVENTGROUP_H
31#define OVE_EVENTGROUP_H
34#include "ove_config.h"
35#include "ove/storage.h"
48#define OVE_EG_WAIT_ALL 0x01
58#define OVE_EG_CLEAR_ON_EXIT 0x02
60#ifdef CONFIG_OVE_EVENTGROUP
74 ove_eventgroup_storage_t *storage);
96#ifdef OVE_HEAP_EVENTGROUP
109#elif !defined(__ZIG_CIMPORT__)
111#define ove_eventgroup_create(peg) \
112 ({ static ove_eventgroup_storage_t _ove_stor_; \
113 ove_eventgroup_init((peg), &_ove_stor_); })
114#define ove_eventgroup_destroy(eg) ove_eventgroup_deinit(eg)
170 uint32_t flags, uint32_t timeout_ms,
ove_eventbits_t ove_eventgroup_set_bits_from_isr(ove_eventgroup_t eg, ove_eventbits_t bits)
Set bits in the event group from an ISR.
void ove_eventgroup_deinit(ove_eventgroup_t eg)
Deinitialise a statically-allocated event group.
void ove_eventgroup_destroy(ove_eventgroup_t eg)
Destroy a heap-allocated event group.
ove_eventbits_t ove_eventgroup_clear_bits(ove_eventgroup_t eg, ove_eventbits_t bits)
Clear one or more bits in the event group.
ove_eventbits_t ove_eventgroup_get_bits(ove_eventgroup_t eg)
Read the current bit value of the event group without blocking.
int ove_eventgroup_init(ove_eventgroup_t *eg, ove_eventgroup_storage_t *storage)
Initialise an event group using caller-provided static storage.
int ove_eventgroup_create(ove_eventgroup_t *eg)
Allocate and initialise a heap-backed event group.
int ove_eventgroup_wait_bits(ove_eventgroup_t eg, ove_eventbits_t bits, uint32_t flags, uint32_t timeout_ms, ove_eventbits_t *result)
Block until one or all of the requested bits are set.
ove_eventbits_t ove_eventgroup_set_bits(ove_eventgroup_t eg, ove_eventbits_t bits)
Set one or more bits in the event group from task context.
#define OVE_ERR_NOT_SUPPORTED
The requested feature is not supported by the active backend.
Definition types.h:38
struct ove_eventgroup * ove_eventgroup_t
Opaque handle for an event-group (bit-field) object.
Definition types.h:97
uint32_t ove_eventbits_t
Bit-mask type used by the event-group API.
Definition types.h:153