|
ChibiOS/RT
2.5.1 |
00001 /* 00002 ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, 00003 2011,2012 Giovanni Di Sirio. 00004 00005 This file is part of ChibiOS/RT. 00006 00007 ChibiOS/RT is free software; you can redistribute it and/or modify 00008 it under the terms of the GNU General Public License as published by 00009 the Free Software Foundation; either version 3 of the License, or 00010 (at your option) any later version. 00011 00012 ChibiOS/RT is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU General Public License for more details. 00016 00017 You should have received a copy of the GNU General Public License 00018 along with this program. If not, see <http://www.gnu.org/licenses/>. 00019 */ 00020 00021 /** 00022 * @file ch.h 00023 * @brief ChibiOS/RT main include file. 00024 * @details This header includes all the required kernel headers so it is the 00025 * only kernel header you usually want to include in your application. 00026 * 00027 * @addtogroup kernel_info 00028 * @details Kernel related info. 00029 * @{ 00030 */ 00031 00032 #ifndef _CH_H_ 00033 #define _CH_H_ 00034 00035 /** 00036 * @brief ChibiOS/RT identification macro. 00037 */ 00038 #define _CHIBIOS_RT_ 00039 00040 /** 00041 * @brief Kernel version string. 00042 */ 00043 #define CH_KERNEL_VERSION "2.5.1unstable" 00044 00045 /** 00046 * @name Kernel version 00047 * @{ 00048 */ 00049 /** 00050 * @brief Kernel version major number. 00051 */ 00052 #define CH_KERNEL_MAJOR 2 00053 00054 /** 00055 * @brief Kernel version minor number. 00056 */ 00057 #define CH_KERNEL_MINOR 5 00058 00059 /** 00060 * @brief Kernel version patch number. 00061 */ 00062 #define CH_KERNEL_PATCH 1 00063 /** @} */ 00064 00065 /** 00066 * @name Common constants 00067 */ 00068 /** 00069 * @brief Generic 'false' boolean constant. 00070 */ 00071 #if !defined(FALSE) || defined(__DOXYGEN__) 00072 #define FALSE 0 00073 #endif 00074 00075 /** 00076 * @brief Generic 'true' boolean constant. 00077 */ 00078 #if !defined(TRUE) || defined(__DOXYGEN__) 00079 #define TRUE (!FALSE) 00080 #endif 00081 00082 /** 00083 * @brief Generic success constant. 00084 * @details This constant is functionally equivalent to @p FALSE but more 00085 * readable, it can be used as return value of all those functions 00086 * returning a @p bool_t as a status indicator. 00087 */ 00088 #if !defined(CH_SUCCESS) || defined(__DOXYGEN__) 00089 #define CH_SUCCESS FALSE 00090 #endif 00091 00092 /** 00093 * @brief Generic failure constant. 00094 * @details This constant is functionally equivalent to @p TRUE but more 00095 * readable, it can be used as return value of all those functions 00096 * returning a @p bool_t as a status indicator. 00097 */ 00098 #if !defined(CH_FAILED) || defined(__DOXYGEN__) 00099 #define CH_FAILED TRUE 00100 #endif 00101 /** @} */ 00102 00103 #include "chconf.h" 00104 #include "chtypes.h" 00105 #include "chlists.h" 00106 #include "chcore.h" 00107 #include "chsys.h" 00108 #include "chvt.h" 00109 #include "chschd.h" 00110 #include "chsem.h" 00111 #include "chbsem.h" 00112 #include "chmtx.h" 00113 #include "chcond.h" 00114 #include "chevents.h" 00115 #include "chmsg.h" 00116 #include "chmboxes.h" 00117 #include "chmemcore.h" 00118 #include "chheap.h" 00119 #include "chmempools.h" 00120 #include "chthreads.h" 00121 #include "chdynamic.h" 00122 #include "chregistry.h" 00123 #include "chinline.h" 00124 #include "chqueues.h" 00125 #include "chstreams.h" 00126 #include "chfiles.h" 00127 #include "chdebug.h" 00128 00129 #if !defined(__DOXYGEN__) 00130 extern WORKING_AREA(_idle_thread_wa, PORT_IDLE_THREAD_STACK_SIZE); 00131 #endif 00132 00133 #ifdef __cplusplus 00134 extern "C" { 00135 #endif 00136 void _idle_thread(void *p); 00137 #ifdef __cplusplus 00138 } 00139 #endif 00140 00141 #endif /* _CH_H_ */ 00142 00143 /** @} */