ChibiOS/RT  6.0.3
ch.h
Go to the documentation of this file.
1 /*
2  ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio.
3 
4  This file is part of ChibiOS.
5 
6  ChibiOS is free software; you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation; either version 3 of the License, or
9  (at your option) any later version.
10 
11  ChibiOS is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 /**
21  * @file rt/include/ch.h
22  * @brief ChibiOS/RT main include file.
23  *
24  * @addtogroup kernel_info
25  * @details This header includes all the required kernel headers so it is the
26  * only kernel header you usually want to include in your application.
27  * @details Kernel related info.
28  * @{
29  */
30 
31 #ifndef CH_H
32 #define CH_H
33 
34 /**
35  * @brief ChibiOS/RT identification macro.
36  */
37 #define _CHIBIOS_RT_
38 
39 /**
40  * @brief Stable release flag.
41  */
42 #define CH_KERNEL_STABLE 1
43 
44 /**
45  * @name ChibiOS/RT version identification
46  * @{
47  */
48 /**
49  * @brief Kernel version string.
50  */
51 #define CH_KERNEL_VERSION "6.0.3"
52 
53 /**
54  * @brief Kernel version major number.
55  */
56 #define CH_KERNEL_MAJOR 6
57 
58 /**
59  * @brief Kernel version minor number.
60  */
61 #define CH_KERNEL_MINOR 0
62 
63 /**
64  * @brief Kernel version patch number.
65  */
66 #define CH_KERNEL_PATCH 3
67 /** @} */
68 
69 /**
70  * @name Constants for configuration options
71  */
72 /**
73  * @brief Generic 'false' preprocessor boolean constant.
74  * @note It is meant to be used in configuration files as switch.
75  */
76 #if !defined(FALSE) || defined(__DOXYGEN__)
77 #define FALSE 0
78 #endif
79 
80 /**
81  * @brief Generic 'true' preprocessor boolean constant.
82  * @note It is meant to be used in configuration files as switch.
83  */
84 #if !defined(TRUE) || defined(__DOXYGEN__)
85 #define TRUE 1
86 #endif
87 /** @} */
88 
89 /* Configuration headers, checks and licensing restrictions.*/
90 #include "chconf.h"
91 #include "chchecks.h"
92 #include "chlicense.h"
93 #include "chrestrictions.h"
94 
95 /* Early function prototype required by the following headers.*/
96 #ifdef __cplusplus
97 extern "C" {
98 #endif
99  void chSysHalt(const char *reason);
100 #ifdef __cplusplus
101 }
102 #endif
103 
104 /* Base kernel headers.*/
105 #include "chtypes.h" /* TODO: Rename and rework.*/
106 #include "chsystypes.h"
107 #include "chdebug.h"
108 #include "chtime.h"
109 #include "chalign.h"
110 #include "chcore.h"
111 #include "chtrace.h"
112 #include "chtm.h"
113 #include "chstats.h"
114 #include "chschd.h"
115 #include "chsys.h"
116 #include "chvt.h"
117 #include "chthreads.h"
118 
119 /* Optional subsystems headers.*/
120 #include "chregistry.h"
121 #include "chsem.h"
122 #include "chmtx.h"
123 #include "chcond.h"
124 #include "chevents.h"
125 #include "chmsg.h"
126 
127 /* OSLIB.*/
128 #include "chlib.h"
129 
130 /* Headers dependent on the OSLIB.*/
131 #include "chdynamic.h"
132 
133 #endif /* CH_H */
134 
135 /** @} */
ChibiOS/LIB main include file.
System related macros and structures.
Semaphores macros and structures.
Condition Variables macros and structures.
Configuration file checks header.
Scheduler macros and structures.
Dynamic threads macros and structures.
Messages macros and structures.
Debug support macros and structures.
Mutexes macros and structures.
Configuration file template.
Memory alignment macros and structures.
Time and Virtual Timers module macros and structures.
Events macros and structures.
Statistics module macros and structures.
Time Measurement module macros and structures.
License Module macros and structures.
Threads registry macros and structures.
Threads module macros and structures.
System types header.
Time and intervals macros and structures.
Tracer macros and structures.
void chSysHalt(const char *reason)
Halts the system.
Definition: chsys.c:198
Licensing restrictions header.