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 SEMAPHORE_H
donatien 0:07f30e7c9897 3 #define SEMAPHORE_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 Semaphore class is used to manage and protect access to a set of shared resources. */
donatien 0:07f30e7c9897 11 class Semaphore {
donatien 0:07f30e7c9897 12 public:
donatien 0:07f30e7c9897 13 /*! Create and Initialize a Semaphore object used for managing resources.
donatien 0:07f30e7c9897 14 \param number of available resources; maximum index value is (count-1).
donatien 0:07f30e7c9897 15 */
donatien 0:07f30e7c9897 16 Semaphore(int32_t count);
donatien 0:07f30e7c9897 17
donatien 0:07f30e7c9897 18 /*! Wait until a Semaphore resource 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 number of available tokens, or -1 in case of incorrect parameters
donatien 0:07f30e7c9897 21 */
donatien 0:07f30e7c9897 22 int32_t wait(uint32_t millisec=osWaitForever);
donatien 0:07f30e7c9897 23
donatien 0:07f30e7c9897 24 /*! Release a Semaphore resource that was obtain with Semaphore::wait.
donatien 0:07f30e7c9897 25 \return status code that indicates the execution status of the function.
donatien 0:07f30e7c9897 26 */
donatien 0:07f30e7c9897 27 osStatus release(void);
donatien 0:07f30e7c9897 28
donatien 0:07f30e7c9897 29 private:
donatien 0:07f30e7c9897 30 osSemaphoreId _osSemaphoreId;
donatien 0:07f30e7c9897 31 osSemaphoreDef_t _osSemaphoreDef;
donatien 0:07f30e7c9897 32 #ifdef CMSIS_OS_RTX
donatien 0:07f30e7c9897 33 uint32_t _semaphore_data[2];
donatien 0:07f30e7c9897 34 #endif
donatien 0:07f30e7c9897 35 };
donatien 0:07f30e7c9897 36
donatien 0:07f30e7c9897 37 }
donatien 0:07f30e7c9897 38 #endif