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 THREAD_H
donatien 0:07f30e7c9897 3 #define THREAD_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 Thread class allow defining, creating, and controlling thread functions in the system. */
donatien 0:07f30e7c9897 11 class Thread {
donatien 0:07f30e7c9897 12 public:
donatien 0:07f30e7c9897 13 /*! Create a new thread, and start it executing the specified function.
donatien 0:07f30e7c9897 14 \param task function to be executed by this thread.
donatien 0:07f30e7c9897 15 \param argument pointer that is passed to the thread function as start argument. (default: NULL).
donatien 0:07f30e7c9897 16 \param priority initial priority of the thread function. (default: osPriorityNormal).
donatien 0:07f30e7c9897 17 \param stacksz stack size (in bytes) requirements for the thread function. (default: DEFAULT_STACK_SIZE).
donatien 0:07f30e7c9897 18 */
donatien 0:07f30e7c9897 19 Thread(void (*task)(void const *argument),
donatien 0:07f30e7c9897 20 void *argument=NULL,
donatien 0:07f30e7c9897 21 osPriority priority=osPriorityNormal,
donatien 0:07f30e7c9897 22 uint32_t stacksize=DEFAULT_STACK_SIZE);
donatien 0:07f30e7c9897 23
donatien 0:07f30e7c9897 24 /*! Terminate execution of a thread and remove it from Active Threads
donatien 0:07f30e7c9897 25 \return status code that indicates the execution status of the function.
donatien 0:07f30e7c9897 26 */
donatien 0:07f30e7c9897 27 osStatus terminate();
donatien 0:07f30e7c9897 28
donatien 0:07f30e7c9897 29 /*! Set priority of an active thread
donatien 0:07f30e7c9897 30 \param priority new priority value for the thread function.
donatien 0:07f30e7c9897 31 \return status code that indicates the execution status of the function.
donatien 0:07f30e7c9897 32 */
donatien 0:07f30e7c9897 33 osStatus set_priority(osPriority priority);
donatien 0:07f30e7c9897 34
donatien 0:07f30e7c9897 35 /*! Get priority of an active thread
donatien 0:07f30e7c9897 36 \ return current priority value of the thread function.
donatien 0:07f30e7c9897 37 */
donatien 0:07f30e7c9897 38 osPriority get_priority();
donatien 0:07f30e7c9897 39
donatien 0:07f30e7c9897 40 /*! Set the specified Signal Flags of an active thread.
donatien 0:07f30e7c9897 41 \param signals specifies the signal flags of the thread that should be set.
donatien 0:07f30e7c9897 42 \return previous signal flags of the specified thread or 0x80000000 in case of incorrect parameters.
donatien 0:07f30e7c9897 43 */
donatien 0:07f30e7c9897 44 int32_t signal_set(int32_t signals);
donatien 0:07f30e7c9897 45
donatien 0:07f30e7c9897 46 /*! Wait for one or more Signal Flags to become signaled for the current RUNNING thread.
donatien 0:07f30e7c9897 47 \param signals wait until all specified signal flags set or 0 for any single signal flag.
donatien 0:07f30e7c9897 48 \param millisec timeout value or 0 in case of no time-out. (default: osWaitForever).
donatien 0:07f30e7c9897 49 \return event flag information or error code.
donatien 0:07f30e7c9897 50 */
donatien 0:07f30e7c9897 51 static osEvent signal_wait(int32_t signals, uint32_t millisec=osWaitForever);
donatien 0:07f30e7c9897 52
donatien 0:07f30e7c9897 53
donatien 0:07f30e7c9897 54 /*! Wait for a specified time period in millisec:
donatien 0:07f30e7c9897 55 \param millisec time delay value
donatien 0:07f30e7c9897 56 \return status code that indicates the execution status of the function.
donatien 0:07f30e7c9897 57 */
donatien 0:07f30e7c9897 58 static osStatus wait(uint32_t millisec);
donatien 0:07f30e7c9897 59
donatien 0:07f30e7c9897 60 /*! Pass control to next thread that is in state READY.
donatien 0:07f30e7c9897 61 \return status code that indicates the execution status of the function.
donatien 0:07f30e7c9897 62 */
donatien 0:07f30e7c9897 63 static osStatus yield();
donatien 0:07f30e7c9897 64
donatien 0:07f30e7c9897 65 /*! Get the thread id of the current running thread.
donatien 0:07f30e7c9897 66 \return thread ID for reference by other functions or NULL in case of error.
donatien 0:07f30e7c9897 67 */
donatien 0:07f30e7c9897 68 static osThreadId gettid();
donatien 0:07f30e7c9897 69
donatien 0:07f30e7c9897 70 private:
donatien 0:07f30e7c9897 71 osThreadId _tid;
donatien 0:07f30e7c9897 72 osThreadDef_t _thread_def;
donatien 0:07f30e7c9897 73 };
donatien 0:07f30e7c9897 74
donatien 0:07f30e7c9897 75 }
donatien 0:07f30e7c9897 76 #endif