/** * @file * @brief RTOS mutex implementation. */ #ifndef STA_RTOS_MUTEX_HPP #define STA_RTOS_MUTEX_HPP #include #include namespace sta { /** * @brief Implementation of Mutex interface using CMSIS RTOS2. * * @ingroup STA_RTOS_API */ class RtosMutex : public Mutex { public: /** * @param handle CMSIS RTOS2 mutex */ RtosMutex(osMutexId_t * handle); void acquire() override; void acquire(uint32_t timeout) override; void release() override; private: osMutexId_t * handle_; /**< CMSIS RTOS2 mutex */ }; } // namespace sta #endif // STA_RTOS_MUTEX_HPP