From 864bd1180237c952beefda21266c3f76f288b99a Mon Sep 17 00:00:00 2001 From: "mbbill@gmail.com" Date: Sun, 12 Jun 2011 10:01:48 +0000 Subject: Add reentrance check. Put kernel debug switch together. git-svn-id: https://rt-thread.googlecode.com/svn/trunk@1494 bbd45198-f89e-11dd-88c7-29a3b14d5316 --- include/rtthread.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'include/rtthread.h') diff --git a/include/rtthread.h b/include/rtthread.h index 7793663873..95ab191397 100644 --- a/include/rtthread.h +++ b/include/rtthread.h @@ -21,6 +21,7 @@ #define __RT_THREAD_H__ #include +#include #ifdef __cplusplus extern "C" { @@ -48,6 +49,24 @@ void rt_object_detach_sethook(void (*hook)(struct rt_object* object)); void rt_object_trytake_sethook(void (*hook)(struct rt_object* object)); void rt_object_take_sethook(void (*hook)(struct rt_object* object)); void rt_object_put_sethook(void (*hook)(struct rt_object* object)); +#define RT_OBJECT_HOOK_CALL(hookfunc)\ + do{\ + register rt_base_t temp;\ + temp = rt_hw_interrupt_disable();\ + RT_DEBUG_REENT_IN\ + if (hookfunc != RT_NULL) hookfunc();\ + RT_DEBUG_REENT_OUT\ + rt_hw_interrupt_enable(temp);\ + }while(0) +#define RT_OBJECT_HOOK_CALL2(hookfunc,...)\ + do{\ + register rt_base_t temp;\ + temp = rt_hw_interrupt_disable();\ + RT_DEBUG_REENT_IN\ + if (hookfunc != RT_NULL) hookfunc(__VA_ARGS__);\ + RT_DEBUG_REENT_OUT\ + rt_hw_interrupt_enable(temp);\ + }while(0) #endif /*@}*/ -- cgit v1.3.1