Loading...
Searching...
No Matches
thread_config.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2014-21 Freie Universität Berlin
3 * 2021 Inria
4 * 2021 Kaspar Schleiser <kaspar@schleiser.de>
5 *
6 * This file is subject to the terms and conditions of the GNU Lesser
7 * General Public License v2.1. See the file LICENSE in the top level
8 * directory for more details.
9 */
10
22#ifndef THREAD_CONFIG_H
23#define THREAD_CONFIG_H
24
25#include "cpu_conf.h"
26#include "sched.h" /* for SCHED_PRIO_LEVELS */
27
28#ifdef __cplusplus
29extern "C" {
30#endif
31
39#ifndef THREAD_STACKSIZE_DEFAULT
40#error THREAD_STACKSIZE_DEFAULT must be defined per CPU
41#endif
42#ifdef DOXYGEN
43#define THREAD_STACKSIZE_DEFAULT
44#endif
45
53#ifndef THREAD_STACKSIZE_IDLE
54#error THREAD_STACKSIZE_IDLE must be defined per CPU
55#endif
56#ifdef DOXYGEN
57#define THREAD_STACKSIZE_IDLE
58#endif
59
67#ifndef THREAD_EXTRA_STACKSIZE_PRINTF
68#error THREAD_EXTRA_STACKSIZE_PRINTF must be defined per CPU
69#endif
70#ifdef DOXYGEN
71#define THREAD_EXTRA_STACKSIZE_PRINTF
72#endif
73
78#ifndef THREAD_STACKSIZE_MAIN
79#define THREAD_STACKSIZE_MAIN (THREAD_STACKSIZE_DEFAULT + \
80 THREAD_EXTRA_STACKSIZE_PRINTF)
81#endif
82
86#ifndef THREAD_STACKSIZE_LARGE
87#define THREAD_STACKSIZE_LARGE (THREAD_STACKSIZE_MEDIUM * 2)
88#endif
89
93#ifndef THREAD_STACKSIZE_MEDIUM
94#define THREAD_STACKSIZE_MEDIUM THREAD_STACKSIZE_DEFAULT
95#endif
96
100#ifndef THREAD_STACKSIZE_SMALL
101#define THREAD_STACKSIZE_SMALL (THREAD_STACKSIZE_MEDIUM / 2)
102#endif
103
107#ifndef THREAD_STACKSIZE_TINY
108#define THREAD_STACKSIZE_TINY (THREAD_STACKSIZE_MEDIUM / 4)
109#endif
110
114#ifndef THREAD_STACKSIZE_MINIMUM
115#define THREAD_STACKSIZE_MINIMUM (sizeof(thread_t))
116#endif
117
122#define THREAD_PRIORITY_MIN (SCHED_PRIO_LEVELS - 1)
123
128#define THREAD_PRIORITY_IDLE (THREAD_PRIORITY_MIN)
129
134#ifndef THREAD_PRIORITY_MAIN
135#define THREAD_PRIORITY_MAIN (THREAD_PRIORITY_MIN - \
136 (SCHED_PRIO_LEVELS / 2))
137#endif
138
139#ifdef __cplusplus
140}
141#endif
142
143#endif /* THREAD_CONFIG_H */
Scheduler API definition.