From 8ca74ca641b40428107879b934a0ad4337776f37 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Tue, 6 Jan 2009 11:46:31 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@592 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- demos/ARMCM3-STM32F103-GCC/chconf.h | 2 +- readme.txt | 5 ++++- src/chthreads.c | 3 +++ src/templates/chconf.h | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/demos/ARMCM3-STM32F103-GCC/chconf.h b/demos/ARMCM3-STM32F103-GCC/chconf.h index e329d0bdd..cc2870abd 100644 --- a/demos/ARMCM3-STM32F103-GCC/chconf.h +++ b/demos/ARMCM3-STM32F103-GCC/chconf.h @@ -34,7 +34,7 @@ * @p chSysUnlock() operations is allowed.
* For performance and code size reasons the recommended setting is leave * this option disabled.
- * You can use this option if you need to merge with ChibiOS/RT external + * You can use this option if you need to merge ChibiOS/RT with external * libraries that require nested lock/unlock operations. */ //#define CH_USE_NESTED_LOCKS diff --git a/readme.txt b/readme.txt index a2b7ace52..9a22b706a 100644 --- a/readme.txt +++ b/readme.txt @@ -78,7 +78,10 @@ Win32-MinGW - ChibiOS/RT simulator and demo into a WIN32 process, - NEW: Better separation between the port code and the system APIs, now the an architecture-specific "port driver" contains all the port related code. Port functions are no more directly exposed as APIs to the user code. -- NEW: Added an option for nested system locks/unlocks. +- NEW: Added a configuration option to enable nested system locks/unlocks. + The kernel does not need this feature but some external libraries may need + it since other RTOSes require this. Enabling this feature increases the + memory footprint and decreases the performance, it is off by default. - NEW: Improved the interrupt handlers related code. Now interrupts are handled in a very similar way for every architecture. Added macros and functions that hide the implementation details. diff --git a/src/chthreads.c b/src/chthreads.c index 4b61fe964..c41e3af6b 100644 --- a/src/chthreads.c +++ b/src/chthreads.c @@ -34,6 +34,9 @@ Thread *init_thread(Thread *tp, tprio_t prio) { tp->p_flags = P_MEM_MODE_STATIC; tp->p_prio = prio; tp->p_state = PRSUSPENDED; +#ifdef CH_USE_NESTED_LOCKS + tp->p_locks = 0; +#endif #ifdef CH_USE_MUTEXES /* realprio is the thread's own, non-inherited, priority */ tp->p_realprio = prio; diff --git a/src/templates/chconf.h b/src/templates/chconf.h index 005748b83..7ce208aa0 100644 --- a/src/templates/chconf.h +++ b/src/templates/chconf.h @@ -39,7 +39,7 @@ * @p chSysUnlock() operations is allowed.
* For performance and code size reasons the recommended setting is leave * this option disabled.
- * You can use this option if you need to merge with ChibiOS/RT external + * You can use this option if you need to merge ChibiOS/RT with external * libraries that require nested lock/unlock operations. */ #define CH_USE_NESTED_LOCKS -- cgit v1.2.3