All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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
11#pragma once
12
24#include "cpu_conf.h"
25#include "sched.h" /* for SCHED_PRIO_LEVELS */
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
38#ifndef THREAD_STACKSIZE_DEFAULT
39#error THREAD_STACKSIZE_DEFAULT must be defined per CPU
40#endif
41#ifdef DOXYGEN
42#define THREAD_STACKSIZE_DEFAULT
43#endif
44
52#ifndef THREAD_STACKSIZE_IDLE
53#error THREAD_STACKSIZE_IDLE must be defined per CPU
54#endif
55#ifdef DOXYGEN
56#define THREAD_STACKSIZE_IDLE
57#endif
58
66#ifndef THREAD_EXTRA_STACKSIZE_PRINTF
67#error THREAD_EXTRA_STACKSIZE_PRINTF must be defined per CPU
68#endif
69#ifdef DOXYGEN
70#define THREAD_EXTRA_STACKSIZE_PRINTF
71#endif
72
77#ifndef THREAD_STACKSIZE_MAIN
78#define THREAD_STACKSIZE_MAIN (THREAD_STACKSIZE_DEFAULT + \
79 THREAD_EXTRA_STACKSIZE_PRINTF)
80#endif
81
85#ifndef THREAD_STACKSIZE_LARGE
86#define THREAD_STACKSIZE_LARGE (THREAD_STACKSIZE_MEDIUM * 2)
87#endif
88
92#ifndef THREAD_STACKSIZE_MEDIUM
93#define THREAD_STACKSIZE_MEDIUM THREAD_STACKSIZE_DEFAULT
94#endif
95
99#ifndef THREAD_STACKSIZE_SMALL
100#define THREAD_STACKSIZE_SMALL (THREAD_STACKSIZE_MEDIUM / 2)
101#endif
102
106#ifndef THREAD_STACKSIZE_TINY
107#define THREAD_STACKSIZE_TINY (THREAD_STACKSIZE_MEDIUM / 4)
108#endif
109
113#ifndef THREAD_STACKSIZE_MINIMUM
114#define THREAD_STACKSIZE_MINIMUM (sizeof(thread_t))
115#endif
116
121#define THREAD_PRIORITY_MIN (SCHED_PRIO_LEVELS - 1)
122
127#define THREAD_PRIORITY_IDLE (THREAD_PRIORITY_MIN)
128
133#ifndef THREAD_PRIORITY_MAIN
134#define THREAD_PRIORITY_MAIN (THREAD_PRIORITY_MIN - \
135 (SCHED_PRIO_LEVELS / 2))
136#endif
137
138#ifdef __cplusplus
139}
140#endif
141
Scheduler API definition.