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 
21 #include "cpu_conf.h"
22 #include "sched.h" /* for SCHED_PRIO_LEVELS */
23 
24 #ifdef __cplusplus
25 extern "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.