From 84e044f176cee7c6946b24c36c90f63534b5b369 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Fri, 19 Jul 2013 12:22:31 +0000 Subject: Renamed Thread to thread_t. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/kernel_3_dev@5995 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/kernel/include/chdebug.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'os/kernel/include/chdebug.h') diff --git a/os/kernel/include/chdebug.h b/os/kernel/include/chdebug.h index 4a75474e2..33363cbca 100644 --- a/os/kernel/include/chdebug.h +++ b/os/kernel/include/chdebug.h @@ -105,7 +105,7 @@ */ typedef struct { systime_t se_time; /**< @brief Time of the switch event. */ - Thread *se_tp; /**< @brief Switched in thread. */ + thread_t *se_tp; /**< @brief Switched in thread. */ void *se_wtobjp; /**< @brief Object where going to sleep.*/ uint8_t se_state; /**< @brief Switched out thread state. */ } ch_swc_event_t; @@ -232,7 +232,7 @@ extern "C" { #endif #if CH_DBG_ENABLE_TRACE || defined(__DOXYGEN__) void _trace_init(void); - void dbg_trace(Thread *otp); + void dbg_trace(thread_t *otp); #endif #if CH_DBG_ENABLED extern const char *dbg_panic_msg; -- cgit v1.2.3 From 649decd10516a30886d05f5afca3d425d836db0e Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sat, 10 Aug 2013 10:17:45 +0000 Subject: Cleanup debug module. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/kernel_3_dev@6120 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/kernel/include/chdebug.h | 180 ++++++++++++++++++++++++-------------------- 1 file changed, 98 insertions(+), 82 deletions(-) (limited to 'os/kernel/include/chdebug.h') diff --git a/os/kernel/include/chdebug.h b/os/kernel/include/chdebug.h index 33363cbca..0f4083c84 100644 --- a/os/kernel/include/chdebug.h +++ b/os/kernel/include/chdebug.h @@ -29,34 +29,30 @@ #ifndef _CHDEBUG_H_ #define _CHDEBUG_H_ -#if CH_DBG_ENABLE_ASSERTS || CH_DBG_ENABLE_CHECKS || \ - CH_DBG_ENABLE_STACK_CHECK || CH_DBG_SYSTEM_STATE_CHECK -#define CH_DBG_ENABLED TRUE -#else -#define CH_DBG_ENABLED FALSE -#endif - -#define __QUOTE_THIS(p) #p +/*===========================================================================*/ +/* Module constants. */ +/*===========================================================================*/ /*===========================================================================*/ +/* Module pre-compile time settings. */ +/*===========================================================================*/ + /** * @name Debug related settings * @{ */ -/*===========================================================================*/ - /** * @brief Trace buffer entries. */ -#ifndef CH_TRACE_BUFFER_SIZE -#define CH_TRACE_BUFFER_SIZE 64 +#ifndef CH_DBG_TRACE_BUFFER_SIZE +#define CH_DBG_TRACE_BUFFER_SIZE 64 #endif /** * @brief Fill value for thread stack area in debug mode. */ -#ifndef CH_STACK_FILL_VALUE -#define CH_STACK_FILL_VALUE 0x55 +#ifndef CH_DBG_STACK_FILL_VALUE +#define CH_DBG_STACK_FILL_VALUE 0x55 #endif /** @@ -66,37 +62,24 @@ * a debugger. A uninitialized field is not an error in itself but it * better to know it. */ -#ifndef CH_THREAD_FILL_VALUE -#define CH_THREAD_FILL_VALUE 0xFF +#ifndef CH_DBG_THREAD_FILL_VALUE +#define CH_DBG_THREAD_FILL_VALUE 0xFF #endif - /** @} */ /*===========================================================================*/ -/* System state checker related code and variables. */ +/* Derived constants and error checks. */ /*===========================================================================*/ -#if !CH_DBG_SYSTEM_STATE_CHECK -#define dbg_enter_lock() -#define dbg_leave_lock() -#define dbg_check_disable() -#define dbg_check_suspend() -#define dbg_check_enable() -#define dbg_check_lock() -#define dbg_check_unlock() -#define dbg_check_lock_from_isr() -#define dbg_check_unlock_from_isr() -#define dbg_check_enter_isr() -#define dbg_check_leave_isr() -#define chDbgCheckClassI(); -#define chDbgCheckClassS(); +#if CH_DBG_ENABLE_ASSERTS || CH_DBG_ENABLE_CHECKS || \ + CH_DBG_ENABLE_STACK_CHECK || CH_DBG_SYSTEM_STATE_CHECK +#define CH_DBG_ENABLED TRUE #else -#define dbg_enter_lock() (dbg_lock_cnt = 1) -#define dbg_leave_lock() (dbg_lock_cnt = 0) +#define CH_DBG_ENABLED FALSE #endif /*===========================================================================*/ -/* Trace related structures and macros. */ +/* Module data structures and types. */ /*===========================================================================*/ #if CH_DBG_ENABLE_TRACE || defined(__DOXYGEN__) @@ -104,43 +87,89 @@ * @brief Trace buffer record. */ typedef struct { - systime_t se_time; /**< @brief Time of the switch event. */ - thread_t *se_tp; /**< @brief Switched in thread. */ - void *se_wtobjp; /**< @brief Object where going to sleep.*/ - uint8_t se_state; /**< @brief Switched out thread state. */ + /** + * @brief Time of the switch event. + */ + systime_t se_time; + /** + * @brief Switched in thread. + */ + thread_t *se_tp; + /** + * @brief Object where going to sleep. + */ + void *se_wtobjp; + /** + * @brief Switched out thread state. + */ + uint8_t se_state; } ch_swc_event_t; /** * @brief Trace buffer header. */ typedef struct { - unsigned tb_size; /**< @brief Trace buffer size (entries).*/ - ch_swc_event_t *tb_ptr; /**< @brief Pointer to the buffer front.*/ - /** @brief Ring buffer.*/ - ch_swc_event_t tb_buffer[CH_TRACE_BUFFER_SIZE]; + /** + * @brief Trace buffer size (entries). + */ + unsigned tb_size; + /** + * @brief Pointer to the buffer front. + */ + ch_swc_event_t *tb_ptr; + /** + * @brief Ring buffer. + */ + ch_swc_event_t tb_buffer[CH_DBG_TRACE_BUFFER_SIZE]; } ch_trace_buffer_t; +#endif /* CH_DBG_ENABLE_TRACE */ + +/*===========================================================================*/ +/* Module macros. */ +/*===========================================================================*/ -#if !defined(__DOXYGEN__) -extern ch_trace_buffer_t dbg_trace_buffer; +#define __QUOTE_THIS(p) #p + +#if CH_DBG_SYSTEM_STATE_CHECK +#define _dbg_enter_lock() (ch.dbg_lock_cnt = 1) +#define _dbg_leave_lock() (ch.dbg_lock_cnt = 0) #endif -#endif /* CH_DBG_ENABLE_TRACE */ +/* When the state checker feature is disabled then the following functions + are replaced by an empty macro.*/ +#if !CH_DBG_SYSTEM_STATE_CHECK +#define _dbg_enter_lock() +#define _dbg_leave_lock() +#define _dbg_check_disable() +#define _dbg_check_suspend() +#define _dbg_check_enable() +#define _dbg_check_lock() +#define _dbg_check_unlock() +#define _dbg_check_lock_from_isr() +#define _dbg_check_unlock_from_isr() +#define _dbg_check_enter_isr() +#define _dbg_check_leave_isr() +#define chDbgCheckClassI() +#define chDbgCheckClassS() +#endif -#if !CH_DBG_ENABLE_TRACE /* When the trace feature is disabled this function is replaced by an empty macro.*/ -#define dbg_trace(otp) +#if !CH_DBG_ENABLE_TRACE +#define _dbg_trace(otp) #endif -/*===========================================================================*/ -/* Parameters checking related macros. */ -/*===========================================================================*/ +/* When the debug features are disabled this function is replaced by an empty + macro.*/ +#if !CH_DBG_ENABLED +#define chDbgPanic(msg) {} +#endif -#if CH_DBG_ENABLE_CHECKS || defined(__DOXYGEN__) /** * @name Macro Functions * @{ */ +#if CH_DBG_ENABLE_CHECKS || defined(__DOXYGEN__) /** * @brief Function parameters check. * @details If the condition check fails then the kernel panics and halts. @@ -158,22 +187,14 @@ extern ch_trace_buffer_t dbg_trace_buffer; chDbgPanic(__QUOTE_THIS(func)"()"); \ } #endif /* !defined(chDbgCheck) */ -/** @} */ + #else /* !CH_DBG_ENABLE_CHECKS */ #define chDbgCheck(c, func) { \ (void)(c), (void)__QUOTE_THIS(func)"()"; \ } #endif /* !CH_DBG_ENABLE_CHECKS */ -/*===========================================================================*/ -/* Assertions related macros. */ -/*===========================================================================*/ - #if CH_DBG_ENABLE_ASSERTS || defined(__DOXYGEN__) -/** - * @name Macro Functions - * @{ - */ /** * @brief Condition assertion. * @details If the condition check fails then the kernel panics with the @@ -197,51 +218,46 @@ extern ch_trace_buffer_t dbg_trace_buffer; chDbgPanic(m); \ } #endif /* !defined(chDbgAssert) */ -/** @} */ #else /* !CH_DBG_ENABLE_ASSERTS */ #define chDbgAssert(c, m, r) {(void)(c);} #endif /* !CH_DBG_ENABLE_ASSERTS */ +/** @} */ /*===========================================================================*/ -/* Panic related macros. */ +/* External declarations. */ /*===========================================================================*/ -#if !CH_DBG_ENABLED -/* When the debug features are disabled this function is replaced by an empty - macro.*/ -#define chDbgPanic(msg) {} -#endif - #ifdef __cplusplus extern "C" { #endif #if CH_DBG_SYSTEM_STATE_CHECK - extern cnt_t dbg_isr_cnt; - extern cnt_t dbg_lock_cnt; - void dbg_check_disable(void); - void dbg_check_suspend(void); - void dbg_check_enable(void); - void dbg_check_lock(void); - void dbg_check_unlock(void); - void dbg_check_lock_from_isr(void); - void dbg_check_unlock_from_isr(void); - void dbg_check_enter_isr(void); - void dbg_check_leave_isr(void); + void _dbg_check_disable(void); + void _dbg_check_suspend(void); + void _dbg_check_enable(void); + void _dbg_check_lock(void); + void _dbg_check_unlock(void); + void _dbg_check_lock_from_isr(void); + void _dbg_check_unlock_from_isr(void); + void _dbg_check_enter_isr(void); + void _dbg_check_leave_isr(void); void chDbgCheckClassI(void); void chDbgCheckClassS(void); #endif #if CH_DBG_ENABLE_TRACE || defined(__DOXYGEN__) void _trace_init(void); - void dbg_trace(thread_t *otp); + void _dbg_trace(thread_t *otp); #endif #if CH_DBG_ENABLED - extern const char *dbg_panic_msg; void chDbgPanic(const char *msg); #endif #ifdef __cplusplus } #endif +/*===========================================================================*/ +/* Module inline functions. */ +/*===========================================================================*/ + #endif /* _CHDEBUG_H_ */ /** @} */ -- cgit v1.2.3 From eb7a1a15b23341693864c6fc13ac5eab5c1d6122 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sat, 10 Aug 2013 14:50:32 +0000 Subject: Removed 2nd parameter to assertion and check macros. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/kernel_3_dev@6122 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/kernel/include/chdebug.h | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) (limited to 'os/kernel/include/chdebug.h') diff --git a/os/kernel/include/chdebug.h b/os/kernel/include/chdebug.h index 0f4083c84..836645f07 100644 --- a/os/kernel/include/chdebug.h +++ b/os/kernel/include/chdebug.h @@ -177,49 +177,43 @@ typedef struct { * is specified in @p chconf.h else the macro does nothing. * * @param[in] c the condition to be verified to be true - * @param[in] func the undecorated function name * * @api */ #if !defined(chDbgCheck) -#define chDbgCheck(c, func) { \ +#define chDbgCheck(c) { \ if (!(c)) \ - chDbgPanic(__QUOTE_THIS(func)"()"); \ + chDbgPanic("C:"__QUOTE_THIS(__FUNCTION__)":"__QUOTE_THIS(__LINE__)); \ } #endif /* !defined(chDbgCheck) */ #else /* !CH_DBG_ENABLE_CHECKS */ -#define chDbgCheck(c, func) { \ - (void)(c), (void)__QUOTE_THIS(func)"()"; \ -} +#define chDbgCheck(c) {(void)(c);} #endif /* !CH_DBG_ENABLE_CHECKS */ #if CH_DBG_ENABLE_ASSERTS || defined(__DOXYGEN__) /** * @brief Condition assertion. - * @details If the condition check fails then the kernel panics with the - * specified message and halts. + * @details If the condition check fails then the kernel panics with a + * message and halts. * @note The condition is tested only if the @p CH_DBG_ENABLE_ASSERTS switch * is specified in @p chconf.h else the macro does nothing. - * @note The convention for the message is the following:
- * @(), #@ * @note The remark string is not currently used except for putting a * comment in the code about the assertion. * * @param[in] c the condition to be verified to be true - * @param[in] m the text message * @param[in] r a remark string * * @api */ #if !defined(chDbgAssert) -#define chDbgAssert(c, m, r) { \ +#define chDbgAssert(c, r) { \ if (!(c)) \ - chDbgPanic(m); \ + chDbgPanic("A:"__QUOTE_THIS(__FUNCTION__)":"__QUOTE_THIS(__LINE__)); \ } #endif /* !defined(chDbgAssert) */ #else /* !CH_DBG_ENABLE_ASSERTS */ -#define chDbgAssert(c, m, r) {(void)(c);} +#define chDbgAssert(c, r) {(void)(c);} #endif /* !CH_DBG_ENABLE_ASSERTS */ /** @} */ -- cgit v1.2.3 From a1435e018bfc9919cb76b1356509ecc883767fb4 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Sat, 10 Aug 2013 14:51:16 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/branches/kernel_3_dev@6123 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/kernel/include/chdebug.h | 257 -------------------------------------------- 1 file changed, 257 deletions(-) delete mode 100644 os/kernel/include/chdebug.h (limited to 'os/kernel/include/chdebug.h') diff --git a/os/kernel/include/chdebug.h b/os/kernel/include/chdebug.h deleted file mode 100644 index 836645f07..000000000 --- a/os/kernel/include/chdebug.h +++ /dev/null @@ -1,257 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006,2007,2008,2009,2010, - 2011,2012,2013 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT 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/RT 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 chdebug.h - * @brief Debug macros and structures. - * - * @addtogroup debug - * @{ - */ - -#ifndef _CHDEBUG_H_ -#define _CHDEBUG_H_ - -/*===========================================================================*/ -/* Module constants. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Module pre-compile time settings. */ -/*===========================================================================*/ - -/** - * @name Debug related settings - * @{ - */ -/** - * @brief Trace buffer entries. - */ -#ifndef CH_DBG_TRACE_BUFFER_SIZE -#define CH_DBG_TRACE_BUFFER_SIZE 64 -#endif - -/** - * @brief Fill value for thread stack area in debug mode. - */ -#ifndef CH_DBG_STACK_FILL_VALUE -#define CH_DBG_STACK_FILL_VALUE 0x55 -#endif - -/** - * @brief Fill value for thread area in debug mode. - * @note The chosen default value is 0xFF in order to make evident which - * thread fields were not initialized when inspecting the memory with - * a debugger. A uninitialized field is not an error in itself but it - * better to know it. - */ -#ifndef CH_DBG_THREAD_FILL_VALUE -#define CH_DBG_THREAD_FILL_VALUE 0xFF -#endif -/** @} */ - -/*===========================================================================*/ -/* Derived constants and error checks. */ -/*===========================================================================*/ - -#if CH_DBG_ENABLE_ASSERTS || CH_DBG_ENABLE_CHECKS || \ - CH_DBG_ENABLE_STACK_CHECK || CH_DBG_SYSTEM_STATE_CHECK -#define CH_DBG_ENABLED TRUE -#else -#define CH_DBG_ENABLED FALSE -#endif - -/*===========================================================================*/ -/* Module data structures and types. */ -/*===========================================================================*/ - -#if CH_DBG_ENABLE_TRACE || defined(__DOXYGEN__) -/** - * @brief Trace buffer record. - */ -typedef struct { - /** - * @brief Time of the switch event. - */ - systime_t se_time; - /** - * @brief Switched in thread. - */ - thread_t *se_tp; - /** - * @brief Object where going to sleep. - */ - void *se_wtobjp; - /** - * @brief Switched out thread state. - */ - uint8_t se_state; -} ch_swc_event_t; - -/** - * @brief Trace buffer header. - */ -typedef struct { - /** - * @brief Trace buffer size (entries). - */ - unsigned tb_size; - /** - * @brief Pointer to the buffer front. - */ - ch_swc_event_t *tb_ptr; - /** - * @brief Ring buffer. - */ - ch_swc_event_t tb_buffer[CH_DBG_TRACE_BUFFER_SIZE]; -} ch_trace_buffer_t; -#endif /* CH_DBG_ENABLE_TRACE */ - -/*===========================================================================*/ -/* Module macros. */ -/*===========================================================================*/ - -#define __QUOTE_THIS(p) #p - -#if CH_DBG_SYSTEM_STATE_CHECK -#define _dbg_enter_lock() (ch.dbg_lock_cnt = 1) -#define _dbg_leave_lock() (ch.dbg_lock_cnt = 0) -#endif - -/* When the state checker feature is disabled then the following functions - are replaced by an empty macro.*/ -#if !CH_DBG_SYSTEM_STATE_CHECK -#define _dbg_enter_lock() -#define _dbg_leave_lock() -#define _dbg_check_disable() -#define _dbg_check_suspend() -#define _dbg_check_enable() -#define _dbg_check_lock() -#define _dbg_check_unlock() -#define _dbg_check_lock_from_isr() -#define _dbg_check_unlock_from_isr() -#define _dbg_check_enter_isr() -#define _dbg_check_leave_isr() -#define chDbgCheckClassI() -#define chDbgCheckClassS() -#endif - -/* When the trace feature is disabled this function is replaced by an empty - macro.*/ -#if !CH_DBG_ENABLE_TRACE -#define _dbg_trace(otp) -#endif - -/* When the debug features are disabled this function is replaced by an empty - macro.*/ -#if !CH_DBG_ENABLED -#define chDbgPanic(msg) {} -#endif - -/** - * @name Macro Functions - * @{ - */ -#if CH_DBG_ENABLE_CHECKS || defined(__DOXYGEN__) -/** - * @brief Function parameters check. - * @details If the condition check fails then the kernel panics and halts. - * @note The condition is tested only if the @p CH_DBG_ENABLE_CHECKS switch - * is specified in @p chconf.h else the macro does nothing. - * - * @param[in] c the condition to be verified to be true - * - * @api - */ -#if !defined(chDbgCheck) -#define chDbgCheck(c) { \ - if (!(c)) \ - chDbgPanic("C:"__QUOTE_THIS(__FUNCTION__)":"__QUOTE_THIS(__LINE__)); \ -} -#endif /* !defined(chDbgCheck) */ - -#else /* !CH_DBG_ENABLE_CHECKS */ -#define chDbgCheck(c) {(void)(c);} -#endif /* !CH_DBG_ENABLE_CHECKS */ - -#if CH_DBG_ENABLE_ASSERTS || defined(__DOXYGEN__) -/** - * @brief Condition assertion. - * @details If the condition check fails then the kernel panics with a - * message and halts. - * @note The condition is tested only if the @p CH_DBG_ENABLE_ASSERTS switch - * is specified in @p chconf.h else the macro does nothing. - * @note The remark string is not currently used except for putting a - * comment in the code about the assertion. - * - * @param[in] c the condition to be verified to be true - * @param[in] r a remark string - * - * @api - */ -#if !defined(chDbgAssert) -#define chDbgAssert(c, r) { \ - if (!(c)) \ - chDbgPanic("A:"__QUOTE_THIS(__FUNCTION__)":"__QUOTE_THIS(__LINE__)); \ -} -#endif /* !defined(chDbgAssert) */ -#else /* !CH_DBG_ENABLE_ASSERTS */ -#define chDbgAssert(c, r) {(void)(c);} -#endif /* !CH_DBG_ENABLE_ASSERTS */ -/** @} */ - -/*===========================================================================*/ -/* External declarations. */ -/*===========================================================================*/ - -#ifdef __cplusplus -extern "C" { -#endif -#if CH_DBG_SYSTEM_STATE_CHECK - void _dbg_check_disable(void); - void _dbg_check_suspend(void); - void _dbg_check_enable(void); - void _dbg_check_lock(void); - void _dbg_check_unlock(void); - void _dbg_check_lock_from_isr(void); - void _dbg_check_unlock_from_isr(void); - void _dbg_check_enter_isr(void); - void _dbg_check_leave_isr(void); - void chDbgCheckClassI(void); - void chDbgCheckClassS(void); -#endif -#if CH_DBG_ENABLE_TRACE || defined(__DOXYGEN__) - void _trace_init(void); - void _dbg_trace(thread_t *otp); -#endif -#if CH_DBG_ENABLED - void chDbgPanic(const char *msg); -#endif -#ifdef __cplusplus -} -#endif - -/*===========================================================================*/ -/* Module inline functions. */ -/*===========================================================================*/ - -#endif /* _CHDEBUG_H_ */ - -/** @} */ -- cgit v1.2.3