Loading...
Searching...
No Matches
thread.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2020 Kaspar Schleiser <kaspar@schleiser.de>
3 * SPDX-FileCopyrightText: 2020 Freie Universität Berlin
4 * SPDX-FileCopyrightText: 2020 Inria
5 * SPDX-License-Identifier: LGPL-2.1-only
6 */
7
8#pragma once
9
77
78#include <stddef.h>
79
80#include "event.h"
81
82#ifdef __cplusplus
83extern "C" {
84#endif
85
98void event_thread_init_multi(event_queue_t *queues, size_t queues_numof,
99 char *stack, size_t stack_size,
100 unsigned priority);
101
110static inline void event_thread_init(event_queue_t *queue,
111 char *stack, size_t stack_size,
112 unsigned priority)
113{
114 event_thread_init_multi(queue, 1, stack, stack_size, priority);
115}
116
124enum {
129};
130
131extern event_queue_t event_thread_queues[EVENT_QUEUE_PRIO_NUMOF];
132
136#define EVENT_PRIO_HIGHEST (&event_thread_queues[EVENT_QUEUE_PRIO_HIGHEST])
140#define EVENT_PRIO_MEDIUM (&event_thread_queues[EVENT_QUEUE_PRIO_MEDIUM])
144#define EVENT_PRIO_LOWEST (&event_thread_queues[EVENT_QUEUE_PRIO_LOWEST])
145
146#ifdef __cplusplus
147}
148#endif
struct PTRTAG event_queue_t
event queue structure
@ EVENT_QUEUE_PRIO_LOWEST
Lowest event queue priority.
Definition thread.h:127
@ EVENT_QUEUE_PRIO_NUMOF
Number of event queue priorities.
Definition thread.h:128
@ EVENT_QUEUE_PRIO_MEDIUM
Medium event queue priority.
Definition thread.h:126
@ EVENT_QUEUE_PRIO_HIGHEST
Highest event queue priority.
Definition thread.h:125
static void event_thread_init(event_queue_t *queue, char *stack, size_t stack_size, unsigned priority)
Convenience function for initializing an event queue thread.
Definition thread.h:110
void event_thread_init_multi(event_queue_t *queues, size_t queues_numof, char *stack, size_t stack_size, unsigned priority)
Convenience function for initializing an event queue thread handling multiple queues.