From 074e213e8f48ebb660af1531b7d116c497b1f444 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Tue, 13 Mar 2018 09:02:55 +0000 Subject: Unified OS Library header, preparation for separate subsystem. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@11718 110e8d01-0319-4d1e-a829-52ad28d1bb01 --- os/common/oslib/include/chlib.h | 184 ++++++++++++++++++++++++++++++++++++ os/common/oslib/include/chpreempt.h | 106 --------------------- 2 files changed, 184 insertions(+), 106 deletions(-) create mode 100644 os/common/oslib/include/chlib.h delete mode 100644 os/common/oslib/include/chpreempt.h (limited to 'os/common/oslib/include') diff --git a/os/common/oslib/include/chlib.h b/os/common/oslib/include/chlib.h new file mode 100644 index 000000000..30ba56b72 --- /dev/null +++ b/os/common/oslib/include/chlib.h @@ -0,0 +1,184 @@ +/* + ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio. + + This file is part of ChibiOS. + + ChibiOS is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @file chlib.h + * @brief ChibiOS/LIB main include file. + * @details This header includes all the required library headers. This file + * is meant do be included by @p ch.h not directly by user. + * + * @addtogroup library_info + * @details OS Library related info. + * @{ + */ + +#ifndef CHLIB_H +#define CHLIB_H + +/* Tmeporary hack.*/ +#if !defined(_CHIBIOS_RT_CONF_VER_5_0_) && !defined(_CHIBIOS_NIL_CONF_VER_3_0_) +#include "chlibconf.h" +#else +#define _CHIBIOS_LIB_CONF_ +#define _CHIBIOS_LIB_CONF_VER_1_0_ +#endif +#include "chlicense.h" + +/*===========================================================================*/ +/* Module constants. */ +/*===========================================================================*/ + +/** + * @brief ChibiOS/LIB identification macro. + */ +#define _CHIBIOS_LIB_ + +/** + * @brief Stable release flag. + */ +#define CH_OSLIB_STABLE 0 + +/** + * @name ChibiOS/LIB version identification + * @{ + */ +/** + * @brief OS Library version string. + */ +#define CH_OSLIB_VERSION "1.0.0" + +/** + * @brief Kernel version major number. + */ +#define CH_OSLIB_MAJOR 1 + +/** + * @brief Kernel version minor number. + */ +#define CH_OSLIB_MINOR 0 + +/** + * @brief Kernel version patch number. + */ +#define CH_OSLIB_PATCH 0 +/** @} */ + +/*===========================================================================*/ +/* Module pre-compile time settings. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Derived constants and error checks. */ +/*===========================================================================*/ + +/* Host OS checks.*/ +#if !defined(_CHIBIOS_RT_) && !defined(_CHIBIOS_NIL_) +#error "OS check failed, must be included after ch.h" +#endif + +/* Configuration file checks.*/ +#if !defined(_CHIBIOS_LIB_CONF_) +#error "invalid configuration file" +#endif + +#if !defined(_CHIBIOS_LIB_CONF_VER_1_0_) +#error "obsolete or unknown configuration file" +#endif + +#if !defined(CH_CFG_USE_SEMAPHORES) +#error "CH_CFG_USE_SEMAPHORES not defined in chconf.h" +#endif + +#if !defined(CH_CFG_USE_MAILBOXES) +#error "CH_CFG_USE_MAILBOXES not defined in chlibconf.h" +#endif + +#if !defined(CH_CFG_USE_MEMCORE) +#error "CH_CFG_USE_MEMCORE not defined in chlibconf.h" +#endif + +#if !defined(CH_CFG_USE_HEAP) +#error "CH_CFG_USE_HEAP not defined in chlibconf.h" +#endif + +#if !defined(CH_CFG_USE_MEMPOOLS) +#error "CH_CFG_USE_MEMPOOLS not defined in chlibconf.h" +#endif + +#if !defined(CH_CFG_USE_OBJ_FIFOS) +#error "CH_CFG_USE_OBJ_FIFOS not defined in chlibconf.h" +#endif + +/* Objects factory options checks.*/ +#if !defined(CH_CFG_USE_FACTORY) +#error "CH_CFG_USE_FACTORY not defined in chlibconf.h" +#endif + +#if !defined(CH_CFG_FACTORY_MAX_NAMES_LENGTH) +#error "CH_CFG_FACTORY_MAX_NAMES_LENGTH not defined in chlibconf.h" +#endif + +#if !defined(CH_CFG_FACTORY_OBJECTS_REGISTRY) +#error "CH_CFG_FACTORY_OBJECTS_REGISTRY not defined in chlibconf.h" +#endif + +#if !defined(CH_CFG_FACTORY_GENERIC_BUFFERS) +#error "CH_CFG_FACTORY_GENERIC_BUFFERS not defined in chlibconf.h" +#endif + +#if !defined(CH_CFG_FACTORY_SEMAPHORES) +#error "CH_CFG_FACTORY_SEMAPHORES not defined in chlibconf.h" +#endif + +#if !defined(CH_CFG_FACTORY_MAILBOXES) +#error "CH_CFG_FACTORY_MAILBOXES not defined in chlibconf.h" +#endif + +#if !defined(CH_CFG_FACTORY_OBJ_FIFOS) +#error "CH_CFG_FACTORY_OBJ_FIFOS not defined in chlibconf.h" +#endif + +/*===========================================================================*/ +/* Module data structures and types. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Module macros. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* External declarations. */ +/*===========================================================================*/ + +/*===========================================================================*/ +/* Late inclusions. */ +/*===========================================================================*/ + +/* OS Library headers.*/ +#include "chbsem.h" +#include "chmboxes.h" +#include "chmemcore.h" +#include "chheap.h" +#include "chmempools.h" +#include "chfifo.h" +#include "chfactory.h" + +#endif /* CHLIB_H */ + +/** @} */ diff --git a/os/common/oslib/include/chpreempt.h b/os/common/oslib/include/chpreempt.h deleted file mode 100644 index 87e2a029a..000000000 --- a/os/common/oslib/include/chpreempt.h +++ /dev/null @@ -1,106 +0,0 @@ -/* - ChibiOS - Copyright (C) 2006..2018 Giovanni Di Sirio. - - This file is part of ChibiOS. - - ChibiOS is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - ChibiOS is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -/** - * @file chpreempt.h - * @brief Preemption enforcement structures and macros. - * - * @addtogroup preemption_enforcement - * @{ - */ - -#ifndef CHPREEMPT_H -#define CHPREEMPT_H - -/* This header is included from chconf.h and that can be included by asm - modules.*/ -#if !defined(_FROM_ASM_) - -/*===========================================================================*/ -/* Module constants. */ -/*===========================================================================*/ - -/** - * @brief Hooks function @p chSchIsPreemptionRequired(). - */ -#define CH_SCH_IS_PREEMPTION_REQUIRED_HOOKED - -/** - * @brief Hooks function @p chSchDoReschedule(). - */ -#define CH_SCH_DO_RESCHEDULE_HOOKED - -/*===========================================================================*/ -/* Module pre-compile time settings. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Derived constants and error checks. */ -/*===========================================================================*/ - -#if !defined(CH_CFG_ROUND_ROBIN_QUANTUM) -#error "CH_CFG_ROUND_ROBIN_QUANTUM not defined in chconf.h" -#endif - -#if CH_CFG_ROUND_ROBIN_QUANTUM <= 0 -#error "CH_CFG_ROUND_ROBIN_QUANTUM must be greater than zero" -#endif - -#if CH_CFG_TIME_QUANTUM > 0 -#error "CH_CFG_ROUND_ROBIN_QUANTUM is not compatible with CH_CFG_TIME_QUANTUM > 0" -#endif - -/*===========================================================================*/ -/* Module data structures and types. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Module macros. */ -/*===========================================================================*/ - -/** - * @brief Fields to be added to the @p ch_system_t structure. - * - * @notapi - */ -#define CH_PREEMPT_SYSTEM_FIELDS \ - virtual_timer_t preempt_vt; - -/*===========================================================================*/ -/* External declarations. */ -/*===========================================================================*/ - -#ifdef __cplusplus -extern "C" { -#endif - void ch_preempt_system_init(void); - void ch_preempt_thread_switch(void); -#ifdef __cplusplus -} -#endif - -/*===========================================================================*/ -/* Module inline functions. */ -/*===========================================================================*/ - -#endif /* !defined(_FROM_ASM_) */ - -#endif /* CHPREEMPT_H */ - -/** @} */ -- cgit v1.2.3