kernel: add support for event objects

Threads may wait on an event object such that any events posted to
that event object may wake a waiting thread if the posting satisfies
the waiting threads' event conditions.

The configuration option CONFIG_EVENTS is used to control the inclusion
of events in a system as their use increases the size of
'struct k_thread'.

Signed-off-by: Peter Mitsis <peter.mitsis@intel.com>
This commit is contained in:
Peter Mitsis 2021-09-20 14:14:32 -04:00 committed by Anas Nashif
commit ae394bff7c
13 changed files with 546 additions and 2 deletions

View file

@ -408,6 +408,19 @@
sys_trace_k_timer_status_sync_blocking(timer)
#define sys_port_trace_k_timer_status_sync_exit(timer, result) \
sys_trace_k_timer_status_sync_exit(timer, result)
#define sys_port_trace_k_event_init(event) sys_trace_k_event_init(event)
#define sys_port_trace_k_event_post_enter(event, events, accumulate) \
sys_trace_k_event_post_enter(event, events, accumulate)
#define sys_port_trace_k_event_post_exit(event, events, accumulate) \
sys_trace_k_event_post_exit(event, events, accumulate)
#define sys_port_trace_k_event_wait_enter(event, events, options, timeout) \
sys_trace_k_event_wait_enter(event, events, options, timeout)
#define sys_port_trace_k_event_wait_blocking(event, events, options, timeout) \
sys_trace_k_event_wait_blocking(event, events, options, timeout)
#define sys_port_trace_k_event_wait_exit(event, events, ret) \
sys_trace_k_event_wait_exit(event, events, ret)
#define sys_port_trace_k_thread_abort_exit(thread) sys_trace_k_thread_abort_exit(thread)
#define sys_port_trace_k_thread_abort_enter(thread) sys_trace_k_thread_abort_enter(thread)
@ -660,4 +673,6 @@ void sys_trace_k_timer_stop(struct k_timer *timer);
void sys_trace_k_timer_status_sync_blocking(struct k_timer *timer);
void sys_trace_k_timer_status_sync_exit(struct k_timer *timer, uint32_t result);
void sys_trace_k_event_init(struct k_event *event);
#endif /* ZEPHYR_TRACE_TEST_H */