From c0df75d7938e10e0916c6a64b1376626de1f7a4f Mon Sep 17 00:00:00 2001 From: barthess Date: Tue, 26 Aug 2014 11:51:53 +0000 Subject: [CPP wrapper] Added unlock functions to Mutex class. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@7199 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/various/cpp_wrappers/ch.cpp | 10 ++++++++++ os/various/cpp_wrappers/ch.hpp | 22 ++++++++++++++++++++++ 2 files changed, 32 insertions(+) (limited to 'os') diff --git a/os/various/cpp_wrappers/ch.cpp b/os/various/cpp_wrappers/ch.cpp index 500db278d..fbc8d1897 100644 --- a/os/various/cpp_wrappers/ch.cpp +++ b/os/various/cpp_wrappers/ch.cpp @@ -529,6 +529,16 @@ namespace chibios_rt { chMtxLockS(&mutex); } + void Mutex::unlock(void) { + + chMtxUnlock(&mutex); + } + + void Mutex::unlockS(void) { + + chMtxLockS(&mutex); + } + #if CH_CFG_USE_CONDVARS /*------------------------------------------------------------------------* * chibios_rt::CondVar * diff --git a/os/various/cpp_wrappers/ch.hpp b/os/various/cpp_wrappers/ch.hpp index 7588e5ee1..b0d5d824f 100644 --- a/os/various/cpp_wrappers/ch.hpp +++ b/os/various/cpp_wrappers/ch.hpp @@ -1215,6 +1215,28 @@ namespace chibios_rt { * @sclass */ void lockS(void); + + /** + * @brief Unlocks the next owned mutex in reverse lock order. + * @pre The invoking thread must have at least one owned mutex. + * @post The mutex is unlocked and removed from the per-thread stack of + * owned mutexes. + * + * @api + */ + void unlock(void); + + /** + * @brief Unlocks the next owned mutex in reverse lock order. + * @pre The invoking thread must have at least one owned mutex. + * @post The mutex is unlocked and removed from the per-thread stack of + * owned mutexes. + * @post This function does not reschedule so a call to a rescheduling + * function must be performed before unlocking the kernel. + * + * @sclass + */ + void unlockS(void); }; #if CH_CFG_USE_CONDVARS || defined(__DOXYGEN__) -- cgit v1.2.3