30#ifndef OVE_EVENTGROUP_H
31#define OVE_EVENTGROUP_H
34#include "ove_config.h"
49#define OVE_EG_WAIT_ALL 0x01
59#define OVE_EG_CLEAR_ON_EXIT 0x02
61#ifdef CONFIG_OVE_EVENTGROUP
96#ifdef OVE_HEAP_EVENTGROUP
184 uint32_t flags, uint64_t deadline_ns,
259 uint32_t flags, uint64_t timeout_ns,
int ove_eventgroup_wait_bits(ove_eventgroup_t eg, ove_eventbits_t bits, uint32_t flags, uint64_t timeout_ns, ove_eventbits_t *result)
Block until one or all of the requested bits are set.
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.
static int ove_eventgroup_wait_bits_until(ove_eventgroup_t eg, ove_eventbits_t bits, uint32_t flags, uint64_t deadline_ns, ove_eventbits_t *result)
Deadline-based variant of ove_eventgroup_wait_bits.
Definition eventgroup.h:183
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_set_notify(ove_eventgroup_t eg, ove_notify_cb cb, void *user_data)
Register a notify callback fired after every successful set of one or more bits. See set_notify famil...
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.
static uint64_t ove_time_deadline_to_timeout_ns(uint64_t deadline_ns)
Convert a steady-clock deadline to a duration suitable for the existing timeout_ns-taking APIs.
Definition time.h:162
struct ove_eventgroup * ove_eventgroup_t
Opaque handle for an event-group (bit-field) object.
Definition types.h:223
uint32_t ove_eventbits_t
Bit-mask type used by the event-group API.
Definition types.h:279
void(* ove_notify_cb)(void *user_data)
Notify-callback signature used by the _set_notify variants of the comm primitives (stream / queue / e...
Definition types.h:298
@ OVE_ERR_NOT_SUPPORTED
Definition types.h:98