aboutsummaryrefslogtreecommitdiffstats
path: root/os/kernel
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2012-06-17 06:53:49 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2012-06-17 06:53:49 +0000
commitc6914081835f10258d873af8526ae405ffe5b25c (patch)
treeaf4ea4874a9c7c3b982fe14420bfafb4d9351922 /os/kernel
parenta8f01e5c6b04c07d6fbc32fb1ef4de527d1003de (diff)
downloadChibiOS-c6914081835f10258d873af8526ae405ffe5b25c.tar.gz
ChibiOS-c6914081835f10258d873af8526ae405ffe5b25c.tar.bz2
ChibiOS-c6914081835f10258d873af8526ae405ffe5b25c.zip
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@4283 35acf78f-673a-0410-8e92-d51de3d6d3f4
Diffstat (limited to 'os/kernel')
-rw-r--r--os/kernel/include/chdebug.h7
-rw-r--r--os/kernel/src/chdebug.c8
2 files changed, 11 insertions, 4 deletions
diff --git a/os/kernel/include/chdebug.h b/os/kernel/include/chdebug.h
index b899233e4..24dce243e 100644
--- a/os/kernel/include/chdebug.h
+++ b/os/kernel/include/chdebug.h
@@ -77,6 +77,8 @@
/*===========================================================================*/
#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()
@@ -88,6 +90,9 @@
#define dbg_check_leave_isr()
#define chDbgCheckClassI();
#define chDbgCheckClassS();
+#else
+#define dbg_enter_lock() (dbg_lock_cnt = 1)
+#define dbg_leave_lock() (dbg_lock_cnt = 0)
#endif
/*===========================================================================*/
@@ -213,6 +218,8 @@ extern char *dbg_panic_msg;
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);
diff --git a/os/kernel/src/chdebug.c b/os/kernel/src/chdebug.c
index 8d38dcd6e..0bee1b4ea 100644
--- a/os/kernel/src/chdebug.c
+++ b/os/kernel/src/chdebug.c
@@ -108,7 +108,7 @@ void dbg_check_lock(void) {
if ((dbg_isr_cnt != 0) || (dbg_lock_cnt != 0))
chDbgPanic("SV#4");
- dbg_lock_cnt = 1;
+ dbg_enter_lock();
}
/**
@@ -120,7 +120,7 @@ void dbg_check_unlock(void) {
if ((dbg_isr_cnt != 0) || (dbg_lock_cnt <= 0))
chDbgPanic("SV#5");
- dbg_lock_cnt = 0;
+ dbg_leave_lock();
}
/**
@@ -132,7 +132,7 @@ void dbg_check_lock_from_isr(void) {
if ((dbg_isr_cnt <= 0) || (dbg_lock_cnt != 0))
chDbgPanic("SV#6");
- dbg_lock_cnt = 1;
+ dbg_enter_lock();
}
/**
@@ -144,7 +144,7 @@ void dbg_check_unlock_from_isr(void) {
if ((dbg_isr_cnt <= 0) || (dbg_lock_cnt <= 0))
chDbgPanic("SV#7");
- dbg_lock_cnt = 0;
+ dbg_leave_lock();
}
/**