Loading...
Searching...
No Matches
thread_config.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2014-2021 Freie Universität Berlin
3 * SPDX-FileCopyrightText: 2021 Inria
4 * SPDX-FileCopyrightText: 2021 Kaspar Schleiser <kaspar@schleiser.de>
5 * SPDX-License-Identifier: LGPL-2.1-only
6 */
7
8#pragma once
9
20
21#include "cpu_conf.h"
22#include "sched.h" /* for SCHED_PRIO_LEVELS */
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
35#ifndef THREAD_STACKSIZE_DEFAULT
36#error THREAD_STACKSIZE_DEFAULT must be defined per CPU
37#endif
38#ifdef DOXYGEN
39#define THREAD_STACKSIZE_DEFAULT
40#endif
41
49#ifndef THREAD_STACKSIZE_IDLE
50#error THREAD_STACKSIZE_IDLE must be defined per CPU
51#endif
52#ifdef DOXYGEN
53#define THREAD_STACKSIZE_IDLE
54#endif
55
63#ifndef THREAD_EXTRA_STACKSIZE_PRINTF
64#error THREAD_EXTRA_STACKSIZE_PRINTF must be defined per CPU
65#endif
66#ifdef DOXYGEN
67#define THREAD_EXTRA_STACKSIZE_PRINTF
68#endif
69
74#ifndef THREAD_STACKSIZE_MAIN
75#define THREAD_STACKSIZE_MAIN (THREAD_STACKSIZE_DEFAULT + \
76 THREAD_EXTRA_STACKSIZE_PRINTF)
77#endif
78
82#ifndef THREAD_STACKSIZE_LARGE
83#define THREAD_STACKSIZE_LARGE (THREAD_STACKSIZE_MEDIUM * 2)
84#endif
85
89#ifndef THREAD_STACKSIZE_MEDIUM
90#define THREAD_STACKSIZE_MEDIUM THREAD_STACKSIZE_DEFAULT
91#endif
92
96#ifndef THREAD_STACKSIZE_SMALL
97#define THREAD_STACKSIZE_SMALL (THREAD_STACKSIZE_MEDIUM / 2)
98#endif
99
103#ifndef THREAD_STACKSIZE_TINY
104#define THREAD_STACKSIZE_TINY (THREAD_STACKSIZE_MEDIUM / 4)
105#endif
106
110#ifndef THREAD_STACKSIZE_MINIMUM
111#define THREAD_STACKSIZE_MINIMUM (sizeof(thread_t))
112#endif
113
118#define THREAD_PRIORITY_MIN (SCHED_PRIO_LEVELS - 1)
119
124#define THREAD_PRIORITY_IDLE (THREAD_PRIORITY_MIN)
125
130#ifndef THREAD_PRIORITY_MAIN
131#define THREAD_PRIORITY_MAIN (THREAD_PRIORITY_MIN - \
132 (SCHED_PRIO_LEVELS / 2))
133#endif
134
135#ifdef __cplusplus
136}
137#endif
138
Scheduler API definition.