RTOS configured for use with Networking libraries

Dependents:   EthernetHTTPClientTest

Committer:
donatien
Date:
Thu May 24 08:56:51 2012 +0000
Revision:
0:07f30e7c9897
[mbed] converted /VodafoneK3770Lib/rtos

Who changed what in which revision?

UserRevisionLine numberNew contents of line
donatien 0:07f30e7c9897 1 /* Copyright (c) 2012 mbed.org */
donatien 0:07f30e7c9897 2 #ifndef MUTEX_H
donatien 0:07f30e7c9897 3 #define MUTEX_H
donatien 0:07f30e7c9897 4
donatien 0:07f30e7c9897 5 #include <stdint.h>
donatien 0:07f30e7c9897 6 #include "cmsis_os.h"
donatien 0:07f30e7c9897 7
donatien 0:07f30e7c9897 8 namespace rtos {
donatien 0:07f30e7c9897 9
donatien 0:07f30e7c9897 10 /*! The Mutex class is used to synchronise the execution of threads.
donatien 0:07f30e7c9897 11 This is for example used to protect access to a shared resource.
donatien 0:07f30e7c9897 12 */
donatien 0:07f30e7c9897 13 class Mutex {
donatien 0:07f30e7c9897 14 public:
donatien 0:07f30e7c9897 15 /*! Create and Initialize a Mutex object */
donatien 0:07f30e7c9897 16 Mutex();
donatien 0:07f30e7c9897 17
donatien 0:07f30e7c9897 18 /*! Wait until a Mutex becomes available.
donatien 0:07f30e7c9897 19 \param millisec timeout value or 0 in case of no time-out. (default: osWaitForever)
donatien 0:07f30e7c9897 20 \return status code that indicates the execution status of the function.
donatien 0:07f30e7c9897 21 */
donatien 0:07f30e7c9897 22 osStatus lock(uint32_t millisec=osWaitForever);
donatien 0:07f30e7c9897 23
donatien 0:07f30e7c9897 24 /*! Try to lock the mutex, and return immediately
donatien 0:07f30e7c9897 25 \return true if the mutex was acquired, false otherwise.
donatien 0:07f30e7c9897 26 */
donatien 0:07f30e7c9897 27 bool trylock();
donatien 0:07f30e7c9897 28
donatien 0:07f30e7c9897 29 /*! Unlock the mutex that has previously been locked by the same thread
donatien 0:07f30e7c9897 30 \return status code that indicates the execution status of the function.
donatien 0:07f30e7c9897 31 */
donatien 0:07f30e7c9897 32 osStatus unlock();
donatien 0:07f30e7c9897 33
donatien 0:07f30e7c9897 34 private:
donatien 0:07f30e7c9897 35 osMutexId _osMutexId;
donatien 0:07f30e7c9897 36 osMutexDef_t _osMutexDef;
donatien 0:07f30e7c9897 37 #ifdef CMSIS_OS_RTX
donatien 0:07f30e7c9897 38 int32_t _mutex_data[3];
donatien 0:07f30e7c9897 39 #endif
donatien 0:07f30e7c9897 40 };
donatien 0:07f30e7c9897 41
donatien 0:07f30e7c9897 42 }
donatien 0:07f30e7c9897 43 #endif